nit: confusing punctuation
[sgt/putty] / windows / window.c
index 8046774..40c69e5 100644 (file)
@@ -166,8 +166,6 @@ static HPALETTE pal;
 static LPLOGPALETTE logpal;
 static RGBTRIPLE defpal[NALLCOLOURS];
 
-static HWND hwnd;
-
 static HBITMAP caretbm;
 
 static int dbltime, lasttime, lastact;
@@ -301,6 +299,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
     int guess_width, guess_height;
 
     hinst = inst;
+    hwnd = NULL;
     flags = FLAG_VERBOSE | FLAG_INTERACTIVE;
 
     sk_init();
@@ -342,13 +341,13 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
         if (p && p >= r) r = p+1;
         q = strrchr(b, ':');
         if (q && q >= r) r = q+1;
-        strcpy(r, "putty.hlp");
+        strcpy(r, PUTTY_HELP_FILE);
         if ( (fp = fopen(b, "r")) != NULL) {
             help_path = dupstr(b);
             fclose(fp);
         } else
             help_path = NULL;
-        strcpy(r, "putty.cnt");
+        strcpy(r, PUTTY_HELP_CONTENTS);
         if ( (fp = fopen(b, "r")) != NULL) {
             help_has_contents = TRUE;
             fclose(fp);
@@ -438,23 +437,42 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
                    i++;               /* skip next argument */
                } else if (ret == 1) {
                    continue;          /* nothing further needs doing */
-               } else if (!strcmp(p, "-cleanup")) {
+               } else if (!strcmp(p, "-cleanup") ||
+                          !strcmp(p, "-cleanup-during-uninstall")) {
                    /*
                     * `putty -cleanup'. Remove all registry
                     * entries associated with PuTTY, and also find
                     * and delete the random seed file.
                     */
                    char *s1, *s2;
-                   s1 = dupprintf("This procedure will remove ALL Registry\n"
-                                  "entries associated with %s, and will\n"
-                                  "also remove the random seed file.\n"
-                                  "\n"
-                                  "THIS PROCESS WILL DESTROY YOUR SAVED\n"
-                                  "SESSIONS. Are you really sure you want\n"
-                                  "to continue?", appname);
-                   s2 = dupprintf("%s Warning", appname);
-                   if (MessageBox(NULL, s1, s2,
-                                  MB_YESNO | MB_ICONWARNING) == IDYES) {
+                   /* Are we being invoked from an uninstaller? */
+                   if (!strcmp(p, "-cleanup-during-uninstall")) {
+                       s1 = dupprintf("Remove saved sessions and random seed file?\n"
+                                      "\n"
+                                      "If you hit Yes, ALL Registry entries associated\n"
+                                      "with %s will be removed, as well as the\n"
+                                      "random seed file. THIS PROCESS WILL\n"
+                                      "DESTROY YOUR SAVED SESSIONS.\n"
+                                      "(This only affects the currently logged-in user.)\n"
+                                      "\n"
+                                      "If you hit No, uninstallation will proceed, but\n"
+                                      "saved sessions etc will be left on the machine.",
+                                      appname);
+                       s2 = dupprintf("%s Uninstallation", appname);
+                   } else {
+                       s1 = dupprintf("This procedure will remove ALL Registry entries\n"
+                                      "associated with %s, and will also remove\n"
+                                      "the random seed file. (This only affects the\n"
+                                      "currently logged-in user.)\n"
+                                      "\n"
+                                      "THIS PROCESS WILL DESTROY YOUR SAVED SESSIONS.\n"
+                                      "Are you really sure you want to continue?",
+                                      appname);
+                       s2 = dupprintf("%s Warning", appname);
+                   }
+                   if (message_box(s1, s2,
+                                   MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2,
+                                   HELPCTXID(option_cleanup)) == IDYES) {
                        cleanup_all();
                    }
                    sfree(s1);
@@ -599,8 +617,6 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
        RegisterClass(&wndclass);
     }
 
-    hwnd = NULL;
-
     memset(&ucsdata, 0, sizeof(ucsdata));
 
     cfgtopalette();
@@ -1862,7 +1878,7 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
            if (!cfg.warn_on_close || session_closed ||
                MessageBox(hwnd,
                           "Are you sure you want to close this session?",
-                          str, MB_ICONWARNING | MB_OKCANCEL | MB_DEFBUTTON2)
+                          str, MB_ICONWARNING | MB_OKCANCEL | MB_DEFBUTTON1)
                == IDOK)
                DestroyWindow(hwnd);
            sfree(str);