]> git.lyx.org Git - features.git/commitdiff
fix do_popen for cygwin
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 8 Feb 2002 11:23:58 +0000 (11:23 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 8 Feb 2002 11:23:58 +0000 (11:23 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3510 a592a061-630c-0410-9148-cb99ea01b6c8

src/support/ChangeLog
src/support/filetools.C

index f81d1cc6fffce689b277b16f1967cd315ce0e4f5..70ec20926e07baaa8ddc6443b9cb20086ec4b1b8 100644 (file)
@@ -1,10 +1,15 @@
+2002-02-08  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
+
+       * filetools.C (do_popen): fix for cygwin compatibility (from Claus
+       Hentschel). This code should maybe be moved to os:: class.
+
 2002-02-08  Herbert Voss  <voss@perce.de>
 
-       * filetools.[C]: (unzipFile) fix typo
+       * filetools.C: (unzipFile) fix typo
 
 2002-02-06  Herbert Voss  <voss@perce.de>
 
-       * filetools.[Ch]: fix sume bugs for detecting zipped files 
+       * filetools.[Ch]: fix some bugs for detecting zipped files 
        adding unzipFile()
 
 2002-02-04  Herbert Voss  <voss@perce.de>
index 515e2ea8e163ac31dae7083bb50ce6b973158ff3..37aab49fc7e617c97a0ef717f8779de2f631014a 100644 (file)
@@ -1134,7 +1134,18 @@ cmdret const do_popen(string const & cmd)
        // of course the best would be to have a
        // pstream (process stream), with the
        // variants ipstream, opstream
-       FILE * inf = ::popen(cmd.c_str(), "r");
+
+       // CYGWIN needs 'b', but linux only works without it
+#ifdef __CYGWIN__
+       FILE * inf = ::popen(cmd.c_str(), "rb");
+#else
+        FILE * inf = ::popen(cmd.c_str(), "r");
+#endif
+
+       // (Claus Hentschel) Check if popen was succesful ;-)
+       if (!inf)
+               return make_pair(-1, string());
+       
        string ret;
        int c = fgetc(inf);
        while (c != EOF) {