]> git.lyx.org Git - lyx.git/blobdiff - src/support/Systemcall.h
Use more informative descriptions fro Springer layouts
[lyx.git] / src / support / Systemcall.h
index fcd836c0db99088ae25796e5d285ea4aff9a06e0..d3d2189d51900d956581f8bbfd7c4021b72c1c9a 100644 (file)
@@ -34,16 +34,38 @@ class Systemcall {
 public:
        /// whether to wait for completion
        enum Starttype {
-               Wait, //< wait for completion before returning from startscript()
-               DontWait //< don't wait for completion
+               Wait,     //< wait for completion before returning from startscript()
+               WaitLoop, //< wait, but check occasionally for cancellation
+               DontWait  //< don't wait for completion
        };
 
+       // enum values chosen hopefully not to conflict with ordinary return values
+       enum ReturnValue {
+               OK = 0,
+               NOSTART = 1001,
+               ERROR = 2001,
+               TIMEOUT = 4001,
+               KILLED = 9001
+       };
+
+
+       // Kill the process which is running at time being
+       static void killscript();
+
        /** Start child process.
         *  The string "what" contains a commandline with arguments separated
-        *  by spaces. Unset "process_events" in case UI should be blocked while
-        *  processing the external command.
+        *  by spaces and encoded in the filesystem encoding. "$$s" will be
+        *  replaced accordingly by commandPrep(). The string "path" contains
+        *  the path to be prepended to the TEXINPUTS environment variable
+        *  encoded in utf-8. Similarly for the string "lpath" that, if not
+        *  empty, specifies an additional directory to be added to TEXINPUTS
+        *  but after "path". Unset "process_events" in case UI should be
+        *  blocked while  processing the external command.
         */
-       int startscript(Starttype how, std::string const & what, bool process_events = true);
+       int startscript(Starttype how, std::string const & what,
+                       std::string const & path = empty_string(),
+                       std::string const & lpath = empty_string(),
+                       bool process_events = false);
 };
 
 } // namespace support