mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-03-16 03:53:01 -05:00
Patch to enable >512-character command lines. Thanks to Thomas Halling.
[originally from svn r1567]
This commit is contained in:
parent
6e1ac92194
commit
a05d76fb1f
39
plink.c
39
plink.c
@ -422,25 +422,32 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
int len = sizeof(cfg.remote_cmd) - 1;
|
char *command;
|
||||||
char *cp = cfg.remote_cmd;
|
int cmdlen, cmdsize;
|
||||||
int len2;
|
cmdlen = cmdsize = 0;
|
||||||
|
command = NULL;
|
||||||
|
|
||||||
strncpy(cp, p, len);
|
while (argc) {
|
||||||
cp[len] = '\0';
|
while (*p) {
|
||||||
len2 = strlen(cp);
|
if (cmdlen >= cmdsize) {
|
||||||
len -= len2;
|
cmdsize = cmdlen + 512;
|
||||||
cp += len2;
|
command = srealloc(command, cmdsize);
|
||||||
while (--argc) {
|
}
|
||||||
if (len > 0)
|
command[cmdlen++]=*p++;
|
||||||
len--, *cp++ = ' ';
|
}
|
||||||
strncpy(cp, *++argv, len);
|
if (cmdlen >= cmdsize) {
|
||||||
cp[len] = '\0';
|
cmdsize = cmdlen + 512;
|
||||||
len2 = strlen(cp);
|
command = srealloc(command, cmdsize);
|
||||||
len -= len2;
|
}
|
||||||
cp += len2;
|
command[cmdlen++]=' '; /* always add trailing space */
|
||||||
|
if (--argc) p = *++argv;
|
||||||
}
|
}
|
||||||
|
if (cmdlen) command[--cmdlen]='\0';
|
||||||
|
/* change trailing blank to NUL */
|
||||||
|
cfg.remote_cmd_ptr = command;
|
||||||
|
cfg.remote_cmd_ptr2 = NULL;
|
||||||
cfg.nopty = TRUE; /* command => no terminal */
|
cfg.nopty = TRUE; /* command => no terminal */
|
||||||
|
|
||||||
break; /* done with cmdline */
|
break; /* done with cmdline */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user