OSDN Git Service

* spawn.cc (find_exec): Stop relying on the ability to set retval to a fixed
authorcgf <cgf>
Sat, 1 Aug 2009 03:27:49 +0000 (03:27 +0000)
committercgf <cgf>
Sat, 1 Aug 2009 03:27:49 +0000 (03:27 +0000)
path_conv buffer and set it on the fly instead.

winsup/cygwin/ChangeLog
winsup/cygwin/spawn.cc

index 69acf32..b839099 100644 (file)
@@ -1,3 +1,8 @@
+2009-07-31  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * spawn.cc (find_exec): Stop relying on the ability to set retval to a
+       fixed path_conv buffer and set it on the fly instead.
+
 2009-07-30  Corinna Vinschen  <corinna@vinschen.de>
 
        * path.h (cstrdup): Fix declaration.
index 09b9cd8..06bf1e0 100644 (file)
@@ -109,7 +109,7 @@ find_exec (const char *name, path_conv& buf, const char *mywinenv,
 {
   const char *suffix = "";
   debug_printf ("find_exec (%s)", name);
-  const char *retval = buf.get_win32 ();
+  const char *retval;
   tmp_pathbuf tp;
   char *tmp = tp.c_get ();
   const char *posix = (opt & FE_NATIVE) ? NULL : name;
@@ -129,6 +129,7 @@ find_exec (const char *name, path_conv& buf, const char *mywinenv,
          strcpy (tmp + 2, name);
          posix = tmp;
        }
+      retval = buf.get_win32 ();
       goto out;
     }
 
@@ -198,10 +199,13 @@ find_exec (const char *name, path_conv& buf, const char *mywinenv,
      Take the appropriate action based on null_if_not_found. */
   if (opt & FE_NNF)
     retval = NULL;
-  else if (opt & FE_NATIVE)
-    buf.check (name);
-  else
+  else if (!(opt & FE_NATIVE))
     retval = name;
+  else
+    {
+      buf.check (name);
+      retval = buf.get_win32 ();
+    }
 
  out:
   if (posix)