aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/ChangeLog7
-rw-r--r--g10/keyedit.c26
2 files changed, 28 insertions, 5 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 64d45d6ea..109ec874d 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,10 @@
+2004-06-23 David Shaw <[email protected]>
+
+ * keyedit.c (sign_uids): Properly handle remaking a self-sig on
+ revoked or expired user IDs. Also, once we've established that a
+ given uid cannot or will not be signed, don't continue to ask
+ about each sig.
+
2004-06-18 David Shaw <[email protected]>
* status.h, status.c (get_status_string), plaintext.c
diff --git a/g10/keyedit.c b/g10/keyedit.c
index a1516e2ab..b7e2c2518 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -361,7 +361,9 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified,
{
tty_printf(_("User ID \"%s\" is revoked."),user);
- if(opt.expert)
+ if(selfsig)
+ tty_printf("\n");
+ else if(opt.expert)
{
tty_printf("\n");
/* No, so remove the mark and continue */
@@ -369,11 +371,15 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified,
_("Are you sure you "
"still want to sign "
"it? (y/N) ")))
- uidnode->flag &= ~NODFLG_MARK_A;
+ {
+ uidnode->flag &= ~NODFLG_MARK_A;
+ uidnode=NULL;
+ }
}
else
{
uidnode->flag &= ~NODFLG_MARK_A;
+ uidnode=NULL;
tty_printf(_(" Unable to sign.\n"));
}
}
@@ -381,7 +387,9 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified,
{
tty_printf(_("User ID \"%s\" is expired."),user);
- if(opt.expert)
+ if(selfsig)
+ tty_printf("\n");
+ else if(opt.expert)
{
tty_printf("\n");
/* No, so remove the mark and continue */
@@ -389,11 +397,15 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified,
_("Are you sure you "
"still want to sign "
"it? (y/N) ")))
- uidnode->flag &= ~NODFLG_MARK_A;
+ {
+ uidnode->flag &= ~NODFLG_MARK_A;
+ uidnode=NULL;
+ }
}
else
{
uidnode->flag &= ~NODFLG_MARK_A;
+ uidnode=NULL;
tty_printf(_(" Unable to sign.\n"));
}
}
@@ -410,11 +422,15 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified,
_("Are you sure you "
"still want to sign "
"it? (y/N) ")))
- uidnode->flag &= ~NODFLG_MARK_A;
+ {
+ uidnode->flag &= ~NODFLG_MARK_A;
+ uidnode=NULL;
+ }
}
else
{
uidnode->flag &= ~NODFLG_MARK_A;
+ uidnode=NULL;
tty_printf(_(" Unable to sign.\n"));
}
}