Mercurial > hg > xemacs-beta
diff src/callproc.c @ 384:bbff43aa5eb7 r21-2-7
Import from CVS: tag r21-2-7
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:08:24 +0200 |
parents | 8626e4521993 |
children | 4af0ddfb7c5b |
line wrap: on
line diff
--- a/src/callproc.c Mon Aug 13 11:07:40 2007 +0200 +++ b/src/callproc.c Mon Aug 13 11:08:24 2007 +0200 @@ -823,13 +823,12 @@ init_callproc (void) { /* This function can GC */ - REGISTER char *sh; - Vprocess_environment = Qnil; - /* jwz: always initialize Vprocess_environment, so that egetenv() works - in temacs. */ { + /* jwz: always initialize Vprocess_environment, so that egetenv() + works in temacs. */ char **envp; + Vprocess_environment = Qnil; for (envp = environ; envp && *envp; envp++) { Vprocess_environment = Fcons (build_ext_string (*envp, FORMAT_OS), @@ -837,32 +836,18 @@ } } + { + /* Initialize shell-file-name from environment variables or best guess. */ #ifdef WINDOWSNT - /* Sync with FSF Emacs 19.34.6 note: this is not in 19.34.6. --marcpa */ - /* - ** If NT then we look at COMSPEC for the shell program. - */ - sh = egetenv ("COMSPEC"); - /* - ** If COMSPEC has been set, then convert the - ** DOS formatted name into a UNIX format. Then - ** create a LISP object. - */ - if (sh) - Vshell_file_name = build_string (sh); - /* - ** Odd, no COMSPEC, so let's default to our - ** best guess for NT. - */ - else - Vshell_file_name = build_string ("\\WINNT\\system32\\cmd.exe"); + CONST char *shell = egetenv ("COMSPEC"); + if (!shell) shell = "\\WINNT\\system32\\cmd.exe"; +#else /* not WINDOWSNT */ + CONST char *shell = egetenv ("SHELL"); + if (!shell) shell = "/bin/sh"; +#endif -#else /* not WINDOWSNT */ - - sh = (char *) egetenv ("SHELL"); - Vshell_file_name = build_string (sh ? sh : "/bin/sh"); - -#endif + Vshell_file_name = build_string (shell); + } } #if 0