4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Asger Alstrup
9 * Interface cleaned up by
10 * \author Angus Leeming
12 * Full author contact details are available in file CREDITS.
24 * An instance of Class Systemcall represents a single child process.
26 * Class Systemcall uses system() to launch the child process.
27 * The user can choose to wait or not wait for the process to complete, but no
28 * callback is invoked upon completion of the child.
30 * The child process is not killed when the Systemcall instance goes out of
35 /// whether to wait for completion
37 Wait, //< wait for completion before returning from startscript()
38 WaitLoop, //< wait, but check occasionally for cancellation
39 DontWait //< don't wait for completion
42 // enum values chosen hopefully not to conflict with ordinary return values
52 // Kill the process which is running at time being
53 static void killscript();
55 /** Start child process.
56 * The string "what" contains a commandline with arguments separated
57 * by spaces and encoded in the filesystem encoding. "$$s" will be
58 * replaced accordingly by commandPrep(). The string "path" contains
59 * the path to be prepended to the TEXINPUTS environment variable
60 * encoded in utf-8. Similarly for the string "lpath" that, if not
61 * empty, specifies an additional directory to be added to TEXINPUTS
62 * but after "path". Unset "process_events" in case UI should be
63 * blocked while processing the external command.
65 int startscript(Starttype how, std::string const & what,
66 std::string const & path = empty_string(),
67 std::string const & lpath = empty_string(),
68 bool process_events = false);
71 } // namespace support
74 #endif // SYSTEMCALL_H