WNDCLASS wndclass;
MSG msg;
+ /*
+ * First bomb out totally if we are already running.
+ */
+ if (FindWindow("Pageant", "Pageant")) {
+ MessageBox(NULL, "Pageant is already running", "Pageant Error",
+ MB_ICONERROR | MB_OK);
+ return 0;
+ }
+
instance = inst;
if (!prev) {
/*
* 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);
}
}