]> git.eshelyaron.com Git - emacs.git/commitdiff
(sys_subshell) [MSDOS]: If PWD is set in the
authorEli Zaretskii <eliz@gnu.org>
Mon, 4 Mar 2002 20:08:37 +0000 (20:08 +0000)
committerEli Zaretskii <eliz@gnu.org>
Mon, 4 Mar 2002 20:08:37 +0000 (20:08 +0000)
environment, pass it down with corrected value.

src/ChangeLog
src/sysdep.c

index fb15705c69706822e9d3668820eddad18f67ae61..fe39168e5b0eb62f4980cc06bc0a7bfa4d433034 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-04  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * sysdep.c (sys_subshell) [MSDOS]: If PWD is set in the
+       environment, pass it down with corrected value.
+
 2002-03-04  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
 
        * lread.c (read_filtered_event): Do not call start_hourglass
index f560e9d7cf2cea7ea07110dbb8e7f3c34b117916..ef5000eeb09f780948399bfac3e17cf975cbf717 100644 (file)
@@ -850,8 +850,22 @@ sys_subshell ()
 #endif
 
 #ifdef MSDOS    /* Demacs 1.1.2 91/10/20 Manabu Higashida */
-      st = system (sh);
-      chdir (oldwd);
+      {
+       char *old_pwd = getenv ("PWD");
+
+       /* If PWD is set, pass it with corrected value.  */
+       if (old_pwd)
+         {
+           old_pwd = xstrdup (old_pwd);
+           if (str[len - 1] == '/')
+             str[len - 1] = '\0';
+           setenv ("PWD", str, 1);
+         }
+       st = system (sh);
+       chdir (oldwd);
+       if (old_pwd)
+         putenv (old_pwd);     /* restore previous value */
+      }
 #if 0  /* This is also reported if last command executed in subshell failed, KFS */
       if (st)
        report_file_error ("Can't execute subshell", Fcons (build_string (sh), Qnil));