Support for Windows PuTTY connecting straight to a local serial port
[u/mdw/putty] / windows / winplink.c
index 16351ae..562d26a 100644 (file)
@@ -319,7 +319,7 @@ int main(int argc, char **argv)
                errors = 1;
            }
        } else if (*p) {
-           if (!*cfg.host) {
+           if (!cfg_launchable(&cfg)) {
                char *q = p;
                /*
                 * If the hostname starts with "telnet:", set the
@@ -392,7 +392,7 @@ int main(int argc, char **argv)
                    {
                        Config cfg2;
                        do_defaults(host, &cfg2);
-                       if (loaded_session || cfg2.host[0] == '\0') {
+                       if (loaded_session || !cfg_launchable(&cfg2)) {
                            /* No settings for this host; use defaults */
                            /* (or session was already loaded with -load) */
                            strncpy(cfg.host, host, sizeof(cfg.host) - 1);
@@ -446,7 +446,7 @@ int main(int argc, char **argv)
     if (errors)
        return 1;
 
-    if (!*cfg.host) {
+    if (!cfg_launchable(&cfg)) {
        usage();
     }
 
@@ -459,7 +459,7 @@ int main(int argc, char **argv)
     }
 
     /* See if host is of the form user@host */
-    if (cfg.host[0] != '\0') {
+    if (cfg_launchable(&cfg)) {
        char *atsign = strrchr(cfg.host, '@');
        /* Make sure we're not overflowing the user field */
        if (atsign) {
@@ -536,6 +536,9 @@ int main(int argc, char **argv)
        return 1;
     }
 
+    logctx = log_init(NULL, &cfg);
+    console_provide_logctx(logctx);
+
     /*
      * Start up the connection.
      */
@@ -553,9 +556,7 @@ int main(int argc, char **argv)
            fprintf(stderr, "Unable to open connection:\n%s", error);
            return 1;
        }
-       logctx = log_init(NULL, &cfg);
        back->provide_logctx(backhandle, logctx);
-       console_provide_logctx(logctx);
        sfree(realhost);
     }
     connopen = 1;
@@ -577,8 +578,8 @@ int main(int argc, char **argv)
      * (The input one we leave until we're through the
      * authentication process.)
      */
-    stdout_handle = handle_output_new(outhandle, stdouterr_sent, NULL);
-    stderr_handle = handle_output_new(errhandle, stdouterr_sent, NULL);
+    stdout_handle = handle_output_new(outhandle, stdouterr_sent, NULL, 0);
+    stderr_handle = handle_output_new(errhandle, stdouterr_sent, NULL, 0);
 
     main_thread_id = GetCurrentThreadId();
 
@@ -593,7 +594,8 @@ int main(int argc, char **argv)
        DWORD ticks;
 
        if (!sending && back->sendok(backhandle)) {
-           stdin_handle = handle_input_new(inhandle, stdin_gotdata, NULL);
+           stdin_handle = handle_input_new(inhandle, stdin_gotdata, NULL,
+                                           0);
            sending = TRUE;
        }