r7265 broke the legacy `putty @sessionname' construction, which I
[u/mdw/putty] / windows / window.c
index 824827a..cb11064 100644 (file)
@@ -299,6 +299,7 @@ static void close_session(void)
        back->free(backhandle);
        backhandle = NULL;
        back = NULL;
+        term_provide_resize_fn(term, NULL, NULL);
        update_specials_menu(NULL);
     }
 
@@ -396,6 +397,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
            if (!cfg_launchable(&cfg) && !do_config()) {
                cleanup_exit(0);
            }
+           loaded_session = TRUE;     /* allow it to be launched directly */
        } else if (*p == '&') {
            /*
             * An initial & means we've been given a command line
@@ -538,7 +540,8 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
 
        cmdline_run_saved(&cfg);
 
-       if (!cfg_launchable(&cfg) && !do_config()) {
+       if ((!loaded_session || !cfg_launchable(&cfg)) &&
+           !do_config()) {
            cleanup_exit(0);
        }
 
@@ -815,9 +818,8 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
            sfree(handles);
            if (must_close_session)
                close_session();
-       }
-
-       sfree(handles);
+       } else
+           sfree(handles);
 
        while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
            if (msg.message == WM_QUIT)