1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-02-03 21:52:24 +00:00

RDB's patch to allow the `-c' option to Pageant to take a command

_with arguments_. Duh, should have thought of that myself.

[originally from svn r1467]
This commit is contained in:
Simon Tatham 2001-12-10 17:50:03 +00:00
parent 51bd9e8128
commit 3c24104a7d

View File

@ -1418,10 +1418,10 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
/* /*
* Fork and Exec the command in cmdline. [DBW] * Fork and Exec the command in cmdline. [DBW]
*/ */
void spawn_cmd(char *cmdline, int show) void spawn_cmd(char *cmdline, char * args, int show)
{ {
if (ShellExecute(NULL, _T("open"), cmdline, if (ShellExecute(NULL, _T("open"), cmdline,
NULL, NULL, show) <= (HINSTANCE) 32) { args, NULL, show) <= (HINSTANCE) 32) {
TCHAR sMsg[140]; TCHAR sMsg[140];
sprintf(sMsg, _T("Failed to run \"%.100s\", Error: %d"), cmdline, sprintf(sMsg, _T("Failed to run \"%.100s\", Error: %d"), cmdline,
(int)GetLastError()); (int)GetLastError());
@ -1583,8 +1583,18 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
*/ */
forget_passphrases(); forget_passphrases();
if (command) if (command) {
spawn_cmd(command, show); char *args;
if (command[0] == '"')
args = strchr(++command, '"');
else
args = strchr(command, ' ');
if (args) {
*args++ = 0;
while(*args && isspace(*args)) args++;
}
spawn_cmd(command, args, show);
}
/* /*
* If Pageant was already running, we leave now. If we haven't * If Pageant was already running, we leave now. If we haven't