From 8c42f28c3cdeae6d882e5b8eff465ef6e6cc3d1a Mon Sep 17 00:00:00 2001 From: simon Date: Mon, 25 Sep 2000 10:55:00 +0000 Subject: [PATCH] Pageant now allows filenames with spaces on cmdline. Thanks to Brian Coogan git-svn-id: svn://svn.tartarus.org/sgt/putty@623 cda61777-01e9-0310-a592-d414129be87e --- pageant.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/pageant.c b/pageant.c index 09ef17e1..16197490 100644 --- a/pageant.c +++ b/pageant.c @@ -608,16 +608,28 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) { /* * Process the command line and add RSA keys as listed on it. - * FIXME: we don't support spaces in filenames here. We should. */ { - char *p = cmdline; + char *p; + int inquotes = 0; + p = cmdline; while (*p) { while (*p && isspace(*p)) p++; if (*p && !isspace(*p)) { - char *q = p; - while (*p && !isspace(*p)) p++; - if (*p) *p++ = '\0'; + char *q = p, *pp = p; + while (*p && (inquotes || !isspace(*p))) + { + if (*p == '"') { + inquotes = !inquotes; + p++; + continue; + } + *pp++ = *p++; + } + if (*pp) { + if (*p) p++; + *pp++ = '\0'; + } add_keyfile(q); } } -- 2.11.0