]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - windows/winutils.c
first pass
[PuTTY.git] / windows / winutils.c
index 2e0183d37493817ae8e8bdb350a6358b02114361..31b98d18620a055e1d9bbf05fe5a25c640ad2861 100644 (file)
@@ -94,7 +94,7 @@ void filereq_free(filereq *state)
 /* Callback function to launch context help. */
 static VOID CALLBACK message_box_help_callback(LPHELPINFO lpHelpInfo)
 {
-    char *context = NULL;
+    const char *context = NULL;
 #define CHECK_CTX(name) \
     do { \
        if (lpHelpInfo->dwContextId == WINHELP_CTXID_ ## name) \
@@ -142,10 +142,12 @@ void pgp_fingerprints(void)
                "one. See the manual for more information.\n"
                "(Note: these fingerprints have nothing to do with SSH!)\n"
                "\n"
-               "PuTTY Master Key (RSA), 1024-bit:\n"
-               "  " PGP_RSA_MASTER_KEY_FP "\n"
-               "PuTTY Master Key (DSA), 1024-bit:\n"
-               "  " PGP_DSA_MASTER_KEY_FP,
+                "PuTTY Master Key as of 2015 (RSA, 4096-bit):\n"
+                "  " PGP_MASTER_KEY_FP "\n\n"
+                "Original PuTTY Master Key (RSA, 1024-bit):\n"
+                "  " PGP_RSA_MASTER_KEY_FP "\n"
+                "Original PuTTY Master Key (DSA, 1024-bit):\n"
+                "  " PGP_DSA_MASTER_KEY_FP,
                "PGP fingerprints", MB_ICONINFORMATION | MB_OK,
                HELPCTXID(pgp_fingerprints));
 }
@@ -170,12 +172,12 @@ char *GetDlgItemText_alloc(HWND hwnd, int id)
 }
 
 /*
- * Split a complete command line into argc/argv, attempting to do
- * it exactly the same way Windows itself would do it (so that
- * console utilities, which receive argc and argv from Windows,
- * will have their command lines processed in the same way as GUI
- * utilities which get a whole command line and must break it
- * themselves).
+ * Split a complete command line into argc/argv, attempting to do it
+ * exactly the same way the Visual Studio C library would do it (so
+ * that our console utilities, which receive argc and argv already
+ * broken apart by the C library, will have their command lines
+ * processed in the same way as the GUI utilities which get a whole
+ * command line and must call this function).
  * 
  * Does not modify the input command line.
  * 
@@ -196,7 +198,17 @@ void split_into_argv(char *cmdline, int *argc, char ***argv,
     int outputargc;
 
     /*
-     * At first glance the rules appeared to be:
+     * These argument-breaking rules apply to Visual Studio 7, which
+     * is currently the compiler expected to be used for PuTTY. Visual
+     * Studio 10 has different rules, lacking the curious mod 3
+     * behaviour of consecutive quotes described below; I presume they
+     * fixed a bug. As and when we migrate to a newer compiler, we'll
+     * have to adjust this to match; however, for the moment we
+     * faithfully imitate in our GUI utilities what our CLI utilities
+     * can't be prevented from doing.
+     *
+     * When I investigated this, at first glance the rules appeared to
+     * be:
      *
      *  - Single quotes are not special characters.
      *
@@ -353,7 +365,7 @@ void split_into_argv(char *cmdline, int *argc, char ***argv,
 
                    if (quotes > 0) {
                        /* Outside a quote segment, a quote starts one. */
-                       if (!quote) quotes--, quote = 1;
+                       if (!quote) quotes--;
 
                        /* Now we produce (n+1)/3 literal quotes... */
                        for (i = 3; i <= quotes+1; i += 3) *q++ = '"';