summaryrefslogtreecommitdiffstats
path: root/g10/keyedit.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>1999-06-10 14:24:42 +0200
committerWerner Koch <wk@gnupg.org>1999-06-10 14:24:42 +0200
commitb5f36dd0dd6af6ce30f8a51a71b382e90677fd97 (patch)
tree4a0f77aefb7766ab9064a985325990133610204c /g10/keyedit.c
parentSee ChangeLog: Tue Jun 8 13:36:25 CEST 1999 Werner Koch (diff)
downloadgnupg2-b5f36dd0dd6af6ce30f8a51a71b382e90677fd97.tar.xz
gnupg2-b5f36dd0dd6af6ce30f8a51a71b382e90677fd97.zip
See ChangeLog: Thu Jun 10 14:18:23 CEST 1999 Werner Koch
Diffstat (limited to 'g10/keyedit.c')
-rw-r--r--g10/keyedit.c35
1 files changed, 22 insertions, 13 deletions
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 5777e7181..6035f7d2b 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -111,7 +111,7 @@ get_keyblock_byname( KBNODE *keyblock, KBPOS *kbpos, const char *username )
static int
print_and_check_one_sig( KBNODE keyblock, KBNODE node,
int *inv_sigs, int *no_key, int *oth_err,
- int *is_selfsig )
+ int *is_selfsig, int print_without_key )
{
PKT_signature *sig = node->pkt->pkt.signature;
int rc, sigrc;
@@ -141,7 +141,7 @@ print_and_check_one_sig( KBNODE keyblock, KBNODE node,
++*oth_err;
break;
}
- if( sigrc != '?' ) {
+ if( sigrc != '?' || print_without_key ) {
tty_printf("%s%c %08lX %s ",
is_rev? "rev":"sig",
sigrc, sig->keyid[1], datestr_from_sig(sig));
@@ -205,7 +205,7 @@ check_all_keysigs( KBNODE keyblock, int only_selected )
int selfsig;
if( print_and_check_one_sig( keyblock, node, &inv_sigs,
- &no_key, &oth_err, &selfsig ) ) {
+ &no_key, &oth_err, &selfsig, 0 ) ) {
if( selfsig )
has_selfsig = 1;
}
@@ -1275,24 +1275,33 @@ menu_delsig( KBNODE pub_keyblock )
uid = (node->flag & NODFLG_SELUID)? node->pkt->pkt.user_id : NULL;
}
else if( uid && node->pkt->pkttype == PKT_SIGNATURE ) {
- int okay, valid, selfsig;
+ int okay, valid, selfsig, inv_sig, no_key, other_err;
tty_printf("uid ");
tty_print_string( uid->name, uid->len );
tty_printf("\n");
+ okay = inv_sig = no_key = other_err = 0;
valid = print_and_check_one_sig( pub_keyblock, node,
- NULL, NULL, NULL, &selfsig );
-
- okay = valid ? cpr_get_answer_yes_no_quit(
- "keyedit.delsig.valid",
- _("Delete this good signature? (y/N/q)"))
- : cpr_get_answer_yes_no_quit(
- "keyedit.delsig.invalid",
- _("Delete this invalid signature? (y/N/q)"));
+ &inv_sig, &no_key, &other_err,
+ &selfsig, 1 );
+
+ if( valid )
+ okay = cpr_get_answer_yes_no_quit(
+ "keyedit.delsig.valid",
+ _("Delete this good signature? (y/N/q)"));
+ else if( inv_sig || other_err )
+ okay = cpr_get_answer_yes_no_quit(
+ "keyedit.delsig.invalid",
+ _("Delete this invalid signature? (y/N/q)"));
+ else if( no_key )
+ okay = cpr_get_answer_yes_no_quit(
+ "keyedit.delsig.unknown",
+ _("Delete this unknown signature? (y/N/q)"));
+
if( okay == -1 )
break;
- if( okay && !cpr_get_answer_is_yes(
+ if( okay && selfsig && !cpr_get_answer_is_yes(
"keyedit.delsig.selfsig",
_("Really delete this self-signature? (y/N)") ))
okay = 0;