summaryrefslogtreecommitdiff
path: root/nt/cmdproxy.c
diff options
context:
space:
mode:
authorGeoff Voelker <voelker@cs.washington.edu>1998-11-10 21:07:13 +0000
committerGeoff Voelker <voelker@cs.washington.edu>1998-11-10 21:07:13 +0000
commit8de1edce6aa5c394c5b20168d9e4c1cd3205e1fd (patch)
treea9064dd22c4109f038ab1b939cdc69a389ac5060 /nt/cmdproxy.c
parent5dbd225734d2d112b94f3509877b9c2c72fdd13d (diff)
downloademacs-8de1edce6aa5c394c5b20168d9e4c1cd3205e1fd.tar.gz
(main): Set environment size only when running
command.com.
Diffstat (limited to 'nt/cmdproxy.c')
-rw-r--r--nt/cmdproxy.c18
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);
}
}