On Sat, Aug 07, 2004 at 08:09:24AM +0200, Thomas Roessler wrote: > On 2004-08-07 05:12:34 +0200, Adeodato Simó wrote: > > > well, that's a separate issue. the specific issue we are > > talking about, and for which there seems to be some agreement > > (among the ones who talked, though) is just the toggleness of > > the crypt options. > > I guess I'm basically convinced. Also, S/MIME and PGP key menus > should certainly behave the same way. :) With my patch, they do (at least I think so, see below). > One frequently heared criticism of the old behavior concerned the > fact that it takes two key presses to come from "both" to "sign > only" or to "encrypt only." What do you guys think -- should the > "encrypt" option disable signing, and should "sign" disable > encryption, with "both" (or "encrypt" followed by "sign as") being > the only way to get both security functions? Yes, definitely. This always was the point of all of the bug reports (both mine and the others), and I believe it is the reason behind the recent behavior change. This behavior saves keystrokes, and as such I think it is the right way to go. The attached patch should solve all of the afforementioned problems, and should apply against the current CVS. I can't thoroughly test the S/MIME stuff since I don't use it, but the PGP menu tested out ok. Now, any chance I can also convince you to commit my pgp-auto-decode patch? ;-) -- Derek D. Martin http://www.pizzashack.org/ GPG Key ID: 0xDFBEAD02 -=-=-=-=- This message is posted from an invalid address. Replying to it will result in undeliverable mail. Sorry for the inconvenience. Thank the spammers.
diff -ru mutt/pgp.c mutt.ddm/pgp.c
--- mutt/pgp.c 2004-07-20 06:41:43.000000000 +0900
+++ mutt.ddm/pgp.c 2004-08-07 19:18:08.000000000 +0900
@@ -1462,15 +1462,15 @@
if (!(WithCrypto & APPLICATION_PGP))
return msg->security;
- switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth,
(i)nline, or (f)orget it? "),
- _("esabif")))
+ switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth,
(i)nline [toggle], or (c)lear? "),
+ _("esabic")))
{
case 1: /* (e)ncrypt */
- msg->security ^= ENCRYPT;
+ msg->security = (msg->security & INLINE) | ENCRYPT;
break;
case 2: /* (s)ign */
- msg->security ^= SIGN;
+ msg->security = (msg->security & INLINE) | SIGN;
break;
case 3: /* sign (a)s */
@@ -1496,10 +1496,7 @@
break;
case 4: /* (b)oth */
- if ((msg->security & (ENCRYPT | SIGN)) == (ENCRYPT | SIGN))
- msg->security = 0;
- else
- msg->security |= (ENCRYPT | SIGN);
+ msg->security = (msg->security & INLINE) | ENCRYPT | SIGN;
break;
case 5: /* (i)nline */
@@ -1509,7 +1506,7 @@
msg->security &= ~INLINE;
break;
- case 6: /* (f)orget it */
+ case 6: /* (c)lear */
msg->security = 0;
break;
}
diff -ru mutt/smime.c mutt.ddm/smime.c
--- mutt/smime.c 2004-06-18 05:39:20.000000000 +0900
+++ mutt.ddm/smime.c 2004-08-07 19:20:52.000000000 +0900
@@ -1940,18 +1940,19 @@
if (!(WithCrypto & APPLICATION_SMIME))
return msg->security;
- switch (mutt_multi_choice (_("S/MIME (e)ncrypt, (s)ign, encrypt (w)ith, sign
(a)s, (b)oth, or (f)orget it? "),
- _("eswabf")))
+ switch (mutt_multi_choice (_("S/MIME (e)ncrypt, (s)ign, encrypt (w)ith, sign
+(a)s, (b)oth, or (c)lear? "),
+ _("eswabc")))
{
case 1: /* (e)ncrypt */
- msg->security ^= ENCRYPT;
+ msg->security = ENCRYPT;
break;
case 3: /* encrypt (w)ith */
- msg->security |= ENCRYPT;
+ msg->security = ENCRYPT;
switch (mutt_multi_choice (_("1: DES, 2: Triple-DES, 3: RC2-40,"
- " 4: RC2-64, 5: RC2-128, or (f)orget it? "),
- _("12345f"))) {
+ " 4: RC2-64, 5: RC2-128, or (c)lear? "),
+ _("12345c"))) {
case 1:
mutt_str_replace (&SmimeCryptAlg, "des");
break;
@@ -1967,7 +1968,7 @@
case 5:
mutt_str_replace (&SmimeCryptAlg, "rc2-128");
break;
- case 6: /* forget it */
+ case 6: /* clear */
break;
}
break;
@@ -1977,7 +1978,7 @@
if(!SmimeDefaultKey)
mutt_message("Can\'t sign: No key specified. use sign(as).");
else
- msg->security ^= SIGN;
+ msg->security = SIGN;
break;
case 4: /* sign (a)s */
@@ -1998,10 +1999,10 @@
break;
case 5: /* (b)oth */
- msg->security |= (ENCRYPT | SIGN);
+ msg->security = (ENCRYPT | SIGN);
break;
- case 6: /* (f)orget it */
+ case 6: /* (c)lear */
msg->security = 0;
break;
}
Attachment:
pgp3VB5DZ7weJ.pgp
Description: PGP signature