Trim trailing whitespace off saved session names on the command line
[u/mdw/putty] / window.c
index 822cb01..74339b4 100644 (file)
--- a/window.c
+++ b/window.c
@@ -14,6 +14,7 @@
 
 #define PUTTY_DO_GLOBALS                      /* actually _define_ globals */
 #include "putty.h"
+#include "winstuff.h"
 #include "storage.h"
 #include "win_res.h"
 
@@ -107,7 +108,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) {
     MSG msg;
     int guess_width, guess_height;
 
-    putty_inst = inst;
+    hinst = inst;
     flags = FLAG_VERBOSE | FLAG_INTERACTIVE;
 
     winsock_ver = MAKEWORD(1, 1);
@@ -126,6 +127,10 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) {
 
     InitCommonControls();
 
+    /* Ensure a Maximize setting in Explorer doesn't maximise the
+     * config box. */
+    defuse_showwindow();
+
     /*
      * Process the command line.
      */
@@ -193,6 +198,10 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) {
         * An initial @ means to activate a saved session.
         */
        if (*p == '@') {
+           int i = strlen(p);
+           while (i > 1 && isspace(p[i-1]))
+               i--;
+           p[i] = '\0';
            do_defaults (p+1, &cfg);
            if (!*cfg.host && !do_config()) {
                WSACleanup();
@@ -650,6 +659,9 @@ static void enact_pending_netevent(void) {
          case WSAECONNRESET:
            sprintf(buf, "Connection reset by peer");
            break;
+         case WSAECONNABORTED:
+           sprintf(buf, "Connection aborted");
+           break;
          default:
            sprintf(buf, "Unexpected network error %d", -i);
            break;