diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/armor.c | 20 | ||||
-rw-r--r-- | g10/gpg.c | 5 | ||||
-rw-r--r-- | g10/options.h | 6 |
3 files changed, 25 insertions, 6 deletions
diff --git a/g10/armor.c b/g10/armor.c index 9a43389cf..efdc92ebc 100644 --- a/g10/armor.c +++ b/g10/armor.c @@ -1077,10 +1077,24 @@ armor_filter( void *opaque, int control, iobuf_writestr(a, head_strings[afx->what] ); iobuf_writestr(a, "-----" ); iobuf_writestr(a,afx->eol); - if( !opt.no_version ) + if (opt.emit_version) { - iobuf_writestr(a, "Version: "GNUPG_NAME" v" VERSION " (" - PRINTABLE_OS_NAME ")" ); + iobuf_writestr (a, "Version: "GNUPG_NAME" v"); + for (s=VERSION; *s && *s != '.'; s++) + iobuf_writebyte (a, *s); + if (opt.emit_version > 1 && *s) + { + iobuf_writebyte (a, *s++); + for (; *s && *s != '.'; s++) + iobuf_writebyte (a, *s); + if (opt.emit_version > 2) + { + for (; *s && *s != '-' && !spacep (s); s++) + iobuf_writebyte (a, *s); + if (opt.emit_version > 3) + iobuf_writestr (a, " (" PRINTABLE_OS_NAME ")"); + } + } iobuf_writestr(a,afx->eol); } @@ -2013,6 +2013,7 @@ main (int argc, char **argv) opt.def_cert_expire = "0"; set_homedir (default_homedir ()); opt.passphrase_repeat = 1; + opt.emit_version = 1; /* Limit to the major number. */ /* Check whether we have a config file on the command line. */ orig_argc = argc; @@ -2318,8 +2319,8 @@ main (int argc, char **argv) case oQuickRandom: gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); break; - case oEmitVersion: opt.no_version=0; break; - case oNoEmitVersion: opt.no_version=1; break; + case oEmitVersion: opt.emit_version++; break; + case oNoEmitVersion: opt.emit_version=0; break; case oCompletesNeeded: opt.completes_needed = pargs.r.ret_int; break; case oMarginalsNeeded: opt.marginals_needed = pargs.r.ret_int; break; case oMaxCertDepth: opt.max_cert_depth = pargs.r.ret_int; break; diff --git a/g10/options.h b/g10/options.h index d44d7a14b..f9878bdc3 100644 --- a/g10/options.h +++ b/g10/options.h @@ -91,7 +91,11 @@ struct int def_cert_level; int min_cert_level; int ask_cert_level; - int no_version; + int emit_version; /* 0 = none, + 1 = major only, + 2 = major and minor, + 3 = full version, + 4 = full version plus OS string. */ int marginals_needed; int completes_needed; int max_cert_depth; |