diff options
| author | Werner Koch <[email protected]> | 2012-03-27 10:35:13 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2012-03-27 10:38:49 +0000 |
| commit | de01c51ecb3918f427aa76281351749c8ad07ed6 (patch) | |
| tree | 944740e90c45a6bea9a0c539b5dab77d0142ec03 /g10/gpg.c | |
| parent | Update the maintenance instructions. (diff) | |
| download | gnupg-de01c51ecb3918f427aa76281351749c8ad07ed6.tar.gz gnupg-de01c51ecb3918f427aa76281351749c8ad07ed6.zip | |
Print warning for arguments not considered an option.
GnuPG requires that options are given before other arguments. This
can sometimes be confusing. We now print a warning if we found an
argument looking alike a long option without being preceded by the
stop option. This is bug#1343.
* common/argparse.h (ARGPARSE_FLAG_STOP_SEEN): New.
* common/argparse.c (arg_parse): Set new flag.
* g10/gpg.c (main): Print the warning.
* agent/gpg-agent.c (main): Ditto.
* dirmngr/dirmngr.c (main): Ditto.
* g13/g13.c (main): Ditto.
* scd/scdaemon.c (main): Ditto.
* sm/gpgsm.c (main): Ditto.
* tools/gpg-connect-agent.c (main): Ditto.
* tools/gpgconf.c (main): Ditto.
Diffstat (limited to 'g10/gpg.c')
| -rw-r--r-- | g10/gpg.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -2018,7 +2018,7 @@ main (int argc, char **argv) orig_argv = argv; pargs.argc = &argc; pargs.argv = &argv; - pargs.flags= 1|(1<<6); /* do not remove the args, ignore version */ + pargs.flags= (ARGPARSE_FLAG_KEEP | ARGPARSE_FLAG_NOVERSION); while( arg_parse( &pargs, opts) ) { if( pargs.r_opt == oDebug || pargs.r_opt == oDebugAll ) parse_debug++; @@ -2094,7 +2094,7 @@ main (int argc, char **argv) argv = orig_argv; pargs.argc = &argc; pargs.argv = &argv; - pargs.flags= 1; /* do not remove the args */ + pargs.flags= ARGPARSE_FLAG_KEEP; /* By this point we have a homedir, and cannot change it. */ check_permissions(opt.homedir,0); @@ -3093,6 +3093,16 @@ main (int argc, char **argv) log_printf ("\n"); } + /* Print a warning if an argument looks like an option. */ + if (!opt.quiet && !(pargs.flags & ARGPARSE_FLAG_STOP_SEEN)) + { + int i; + + for (i=0; i < argc; i++) + if (argv[i][0] == '-' && argv[i][1] == '-') + log_info (_("NOTE: `%s' is not considered an option\n"), argv[i]); + } + gcry_control (GCRYCTL_RESUME_SECMEM_WARN); |
