(* Lanceur TeXmacs pour Windows+Cygwin On passe eventuellement en argument le nom du fichier texmacs, sous forme windows (C:\.TeXmacs\texts\...). A compiler avec ocamlc -custom -o lanceur-TeXmacs str.cma unix.cma lanceur.ml ensuite cp lanceur-TeXmacs.exe /usr/local/bin *) (* lit un flux *) let lit cin = let s = ref "" in (try (while true do let c= input_char cin in s:=(!s)^(String.make 1 c); done; ()) with _->()); !s; ;; let lanceur () = let file=Sys.argv.(1) in (* on commence par convertir en path unix *) let (cin0,cout0)=Unix.open_process ("cygpath -u \""^file^"\"") in let file1 = lit cin0 in Unix.close_process(cin0,cout0); (* on met a jour PATH *) Unix.putenv "PATH" ("/usr/local/bin:/cygwin/bin:/usr/X11R6/bin:"^(Unix.getenv "PATH")); (* on regarde si le serveur X est lance *) let (cin1,cout1)=Unix.open_process ("ps") in let s = lit cin1 in Unix.close_process(cin1,cout1); if (try (let i=Str.search_forward (Str.regexp "XWin") s 0 in false) with _ -> true) then (let (cin2,cout2)=Unix.open_process ("XWin&") in let (cin3,cout3)=Unix.open_process ("fvwm2&") in flush(stdout);); Sys.command("texmacs "^file1^" &"); ;; (* On lance le bouzin *) lanceur();;