private String processFileExternal()
   {
      String output_str = "";
      Process cmd_proc;

      final String cmdline = settings.cur_processor.path + " "
              + settings.cur_processor.options + " "
              + markdown_file.getAbsolutePath();

      try
      {
         cmd_proc = Runtime.getRuntime().exec(cmdline);
      }
      catch (IOException exc)
      {
         mp_handler.xhtmlFailure(exc.getMessage());
         return "<p>Error: " + UIStrings.ERROR_INVALID_PROCESSOR_PATH + "</p>";
      }

      if (cmd_proc != null)
      {
         BufferedReader error_reader = new BufferedReader(new InputStreamReader(cmd_proc.getErrorStream()));
         BufferedReader output_reader = new BufferedReader(new InputStreamReader(cmd_proc.getInputStream()));
         output_str = readStringFromReader(output_reader);
         String error_str = readStringFromReader(error_reader);
         if (error_str.length() > 0)
         {
            JOptionPane.showMessageDialog(null, error_str, "Error", JOptionPane.ERROR_MESSAGE);
         }
      }

      return output_str;
   }