diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/gpg.c | 6 | ||||
-rw-r--r-- | g10/keyedit.c | 9 | ||||
-rw-r--r-- | g10/options.h | 2 |
3 files changed, 12 insertions, 5 deletions
@@ -435,6 +435,7 @@ enum cmd_and_opt_values oIncludeKeyBlock, oNoIncludeKeyBlock, oChUid, + oForceSignKey, oNoop }; @@ -886,7 +887,7 @@ static gpgrt_opt_t opts[] = { ARGPARSE_s_s (oPassphraseFile, "passphrase-file", "@"), ARGPARSE_s_i (oPassphraseRepeat,"passphrase-repeat", "@"), ARGPARSE_s_s (oPinentryMode, "pinentry-mode", "@"), - + ARGPARSE_s_n (oForceSignKey, "force-sign-key", "@"), ARGPARSE_header (NULL, N_("Other options")), @@ -2778,6 +2779,9 @@ main (int argc, char **argv) case oAnswerYes: opt.answer_yes = 1; break; case oAnswerNo: opt.answer_no = 1; break; + + case oForceSignKey: opt.flags.force_sign_key = 1; break; + case oKeyring: append_to_strlist( &nrings, pargs.r.ret_str); break; case oPrimaryKeyring: sl = append_to_strlist (&nrings, pargs.r.ret_str); diff --git a/g10/keyedit.c b/g10/keyedit.c index c8a127551..d07ec6526 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -751,10 +751,11 @@ sign_uids (ctrl_t ctrl, estream_t fp, _("\"%s\" was already signed by key %s\n"), user, keystr_from_pk (pk)); - if (opt.expert && !quick - && cpr_get_answer_is_yes ("sign_uid.dupe_okay", - _("Do you want to sign it " - "again anyway? (y/N) "))) + if (opt.flags.force_sign_key + || (opt.expert && !quick + && cpr_get_answer_is_yes ("sign_uid.dupe_okay", + _("Do you want to sign it " + "again anyway? (y/N) ")))) { /* Don't delete the old sig here since this is an --expert thing. */ diff --git a/g10/options.h b/g10/options.h index 61118314e..f502ace61 100644 --- a/g10/options.h +++ b/g10/options.h @@ -252,6 +252,8 @@ struct * another card. */ unsigned int use_only_openpgp_card:1; unsigned int full_timestrings:1; + /* Force signing keys even if a key signature already exists. */ + unsigned int force_sign_key:1; } flags; /* Linked list of ways to find a key if the key isn't on the local |