* g10.c (main): Handle --strict and --no-strict from the command line
[gnupg.git] / g10 / g10.c
index 0cf7d09..c2e095b 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -300,6 +300,8 @@ enum cmd_and_opt_values { aNull = 0,
     oLCctype,
     oLCmessages,
     oGroup,
+    oStrict,
+    oNoStrict,
 aTest };
 
 
@@ -588,6 +590,8 @@ static ARGPARSE_OPTS opts[] = {
     { oLCctype,    "lc-ctype",    2, "@" },
     { oLCmessages, "lc-messages", 2, "@" },
     { oGroup,      "group",       2, "@" },
+    { oStrict,     "strict",      0, "@" },
+    { oNoStrict,   "no-strict",   0, "@" },
 {0} };
 
 
@@ -1162,6 +1166,16 @@ main( int argc, char **argv )
            set_homedir ( pargs.r.ret_str );
        else if( pargs.r_opt == oNoPermissionWarn )
            opt.no_perm_warn=1;
+       else if (pargs.r_opt == oStrict )
+         {
+           opt.strict=1;
+           log_set_strict(1);
+         }
+       else if (pargs.r_opt == oNoStrict )
+         {
+           opt.strict=0;
+           log_set_strict(0);
+         }
       #ifdef USE_SHM_COPROCESSING
        else if( pargs.r_opt == oRunAsShmCP ) {
            /* does not make sense in a options file, we do it here,
@@ -1693,6 +1707,8 @@ main( int argc, char **argv )
           case oLCctype: opt.lc_ctype = pargs.r.ret_str; break;
           case oLCmessages: opt.lc_messages = pargs.r.ret_str; break;
          case oGroup: add_group(pargs.r.ret_str); break;
+         case oStrict: opt.strict=1; log_set_strict(1); break;
+         case oNoStrict: opt.strict=0; log_set_strict(0); break;
          default : pargs.err = configfp? 1:2; break;
        }
     }
@@ -1800,9 +1816,20 @@ main( int argc, char **argv )
                  }
                else if(cmd==aSym)
                  {
+                   /* This only sets IDEA for symmetric encryption
+                      since it is set via select_algo_from_prefs for
+                      pk encryption. */
                    m_free(def_cipher_string);
                    def_cipher_string = m_strdup("idea");
                  }
+
+               /* PGP2 can't handle the output from the textmode
+                  filter, so we disable it for anything that could
+                  create a literal packet (only encryption and
+                  symmetric encryption, since we disable signing
+                  above). */
+               if(!unusable)
+                 opt.textmode=0;
              }
 
            if(unusable)