diff options
author | Geoff Voelker <voelker@cs.washington.edu> | 1998-11-10 21:07:13 +0000 |
---|---|---|
committer | Geoff Voelker <voelker@cs.washington.edu> | 1998-11-10 21:07:13 +0000 |
commit | 8de1edce6aa5c394c5b20168d9e4c1cd3205e1fd (patch) | |
tree | a9064dd22c4109f038ab1b939cdc69a389ac5060 /nt | |
parent | 5dbd225734d2d112b94f3509877b9c2c72fdd13d (diff) | |
download | emacs-8de1edce6aa5c394c5b20168d9e4c1cd3205e1fd.tar.gz |
(main): Set environment size only when running
command.com.
Diffstat (limited to 'nt')
-rw-r--r-- | nt/cmdproxy.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/nt/cmdproxy.c b/nt/cmdproxy.c index 312d6f6b3cb..ce72ba129c9 100644 --- a/nt/cmdproxy.c +++ b/nt/cmdproxy.c @@ -583,6 +583,7 @@ main (int argc, char ** argv) { char * p; int extra_arg_space = 0; + int run_command_dot_com; progname = getenv ("COMSPEC"); if (!progname) @@ -594,6 +595,10 @@ main (int argc, char ** argv) if (progname == NULL || strchr (progname, '\\') == NULL) fail ("error: the program %s could not be found.\n", getenv ("COMSPEC")); + /* Need to set environment size when running command.com. */ + run_command_dot_com = + (stricmp (strrchr (progname, '\\'), "command.com") == 0); + /* Work out how much extra space is required for pass_through_args. */ for (argv = pass_through_args; *argv != NULL; ++argv) @@ -620,8 +625,7 @@ main (int argc, char ** argv) for (argv = pass_through_args; *argv != NULL; ++argv) p += wsprintf (p, " %s", *argv); - if (GetVersion () & 0x80000000) - /* Set environment size to something reasonable on Windows 95. */ + if (run_command_dot_com) wsprintf(p, " /e:%d /c %s", envsize, cmdline); else wsprintf(p, " /c %s", cmdline); @@ -629,12 +633,10 @@ main (int argc, char ** argv) } else { - if (GetVersion () & 0x80000000) + if (run_command_dot_com) { /* Provide dir arg expected by command.com when first - started interactively (the "command search path"). - cmd.exe does not require it, but accepts it silently - - presumably other DOS compatible shells do the same. To + started interactively (the "command search path"). To avoid potential problems with spaces in command dir (which cannot be quoted - command.com doesn't like it), we always use the 8.3 form. */ @@ -644,7 +646,6 @@ main (int argc, char ** argv) *(++p) = '\0'; } else - /* Dir arg not needed on NT. */ path[0] = '\0'; cmdline = p = alloca (strlen (progname) + extra_arg_space + @@ -658,8 +659,7 @@ main (int argc, char ** argv) for (argv = pass_through_args; *argv != NULL; ++argv) p += wsprintf (p, " %s", *argv); - if (GetVersion () & 0x80000000) - /* Set environment size to something reasonable on Windows 95. */ + if (run_command_dot_com) wsprintf (p, " /e:%d", envsize); } } |