2008-06-18 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Wed, 18 Jun 2008 14:49:54 +0000 (14:49 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Wed, 18 Jun 2008 14:49:54 +0000 (14:49 +0000)
* gpg.c (enum cmd_and_opt_values): New option
oEnableW32HandleTranslation.
(opts): New option --enable-w32-handle-translation.
(main): New variable w32_handle_translation to keep track of
option.

g10/ChangeLog
g10/gpg.c

index ed14995..bc2475f 100644 (file)
@@ -1,3 +1,11 @@
+2008-06-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpg.c (enum cmd_and_opt_values): New option
+       oEnableW32HandleTranslation.
+       (opts): New option --enable-w32-handle-translation.
+       (main): New variable w32_handle_translation to keep track of
+       option.
+
 2008-06-16  Werner Koch  <wk@g10code.com>
 
        * keygen.c (output_control_s): Add ASK_PASSPHRASE.
index adb4c36..a568bb9 100644 (file)
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -300,6 +300,7 @@ enum cmd_and_opt_values
     oNoAllowFreeformUID,
     oAllowSecretKeyImport,                      
     oEnableSpecialFilenames,
+    oEnableW32HandleTranslation,
     oNoLiteral,
     oSetFilesize,
     oHonorHttpProxy,
@@ -664,6 +665,7 @@ static ARGPARSE_OPTS opts[] = {
     { oAllowSecretKeyImport, "allow-secret-key-import", 0, "@" },
     { oTryAllSecrets,  "try-all-secrets", 0, "@" },
     { oEnableSpecialFilenames, "enable-special-filenames", 0, "@" },
+    { oEnableW32HandleTranslation, "enable-w32-handle-translation", 0, "@" },
     { oNoExpensiveTrustChecks, "no-expensive-trust-checks", 0, "@" },
     { aDeleteSecretAndPublicKeys, "delete-secret-and-public-keys",256, "@" },
     { aRebuildKeydbCaches, "rebuild-keydb-caches", 256, "@"},
@@ -1876,6 +1878,7 @@ main (int argc, char **argv)
     int eyes_only=0;
     int multifile=0;
     int pwfd = -1;
+    int w32_handle_translation = 0;
     int with_fpr = 0; /* make an option out of --fingerprint */
     int any_explicit_recipient = 0;
     int require_secmem=0,got_secmem=0;
@@ -1991,6 +1994,15 @@ main (int argc, char **argv)
          {
            /* Not used */
          }
+       else if (pargs.r_opt == oEnableW32HandleTranslation )
+         {
+           /* We must initialize handle translation before parsing
+              the options.  */
+           if (! w32_handle_translation)
+             translate_table_init ();
+            w32_handle_translation = 1;
+            break;
+         }
     }
 
 #ifdef HAVE_DOSISH_SYSTEM
@@ -2769,6 +2781,7 @@ main (int argc, char **argv)
           case oEnableSpecialFilenames:
             iobuf_enable_special_filenames (1);
             break;
+          case oEnableW32HandleTranslation: break;
           case oNoExpensiveTrustChecks: opt.no_expensive_trust_checks=1; break;
           case oAutoCheckTrustDB: opt.no_auto_check_trustdb=0; break;
           case oNoAutoCheckTrustDB: opt.no_auto_check_trustdb=1; break;
@@ -3333,6 +3346,7 @@ main (int argc, char **argv)
     if( pwfd != -1 )  /* Read the passphrase now. */
        read_passphrase_from_fd( pwfd );
 
+
     fname = argc? *argv : NULL;
 
     if(fname && utf8_strings)