View | Details | Raw Unified | Return to bug 47437
Collapse All | Expand All

(-)./Makefile (-6 / +4 lines)
Lines 178-187 Link Here
178
LIB_DEPENDS+=	sasl.8:${PORTSDIR}/security/cyrus-sasl
178
LIB_DEPENDS+=	sasl.8:${PORTSDIR}/security/cyrus-sasl
179
.endif
179
.endif
180
.if defined(WITH_MUTT_PGP_PATCH)
180
.if defined(WITH_MUTT_PGP_PATCH)
181
.error The WITH_MUTT_PGP_PATCH option is currently not available
181
SGML_NEEDED=	yes
182
#SGML_NEEDED=	yes
182
pre-configure::
183
#pre-configure::
183
	${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-pgp-dw
184
#	${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-pgp-dw
185
.endif
184
.endif
186
.if defined(WITHOUT_MUTT_SMIME_OUTLOOK_COMPAT)
185
.if defined(WITHOUT_MUTT_SMIME_OUTLOOK_COMPAT)
187
pre-configure::
186
pre-configure::
Lines 234-241 Link Here
234
SGML_NEEDED=	yes
233
SGML_NEEDED=	yes
235
.endif
234
.endif
236
.if defined(WITH_MUTT_MBOX_HOOK_PATCH)
235
.if defined(WITH_MUTT_MBOX_HOOK_PATCH)
237
.error The WITH_MUTT_MBOX_HOOK_PATCH option is currently not available
236
PATCHFILES+=	p0-patch-${PATCH_VERSION}.dw.mbox-hook.1:dw
238
#PATCHFILES+=	patch-${PATCH_VERSION}.dw.mbox-hook.1:dw
239
.endif
237
.endif
240
238
241
WRKSRC=		${WRKDIR}/${DISTNAME:S/i$//}
239
WRKSRC=		${WRKDIR}/${DISTNAME:S/i$//}
(-)./distinfo (+1 lines)
Lines 6-8 Link Here
6
MD5 (mutt/patch-1.5.3.cd.edit_threads.9.3) = 753a19d8efdece04cd521c3a3079dc9f
6
MD5 (mutt/patch-1.5.3.cd.edit_threads.9.3) = 753a19d8efdece04cd521c3a3079dc9f
7
MD5 (mutt/patch-1.5.3.cd.signatures_menu.2.1) = 6db636f0004e73ee2d9f577acd4ed380
7
MD5 (mutt/patch-1.5.3.cd.signatures_menu.2.1) = 6db636f0004e73ee2d9f577acd4ed380
8
MD5 (mutt/patch-1.5.3.cd.ifdef.1) = 01b47e075364834b82da053cac4eb69f
8
MD5 (mutt/patch-1.5.3.cd.ifdef.1) = 01b47e075364834b82da053cac4eb69f
9
MD5 (mutt/p0-patch-1.5.3.dw.mbox-hook.1) = e7a0a57023cfdfd909f6040e632fff1f
(-)./files/extra-patch-pgp-dw (-100 / +115 lines)
Lines 1-23 Link Here
1
Base: http://home.woolridge.ca/mutt/patches/patch-1.5.1.dw.pgp-hook.3
1
Base: http://home.woolridge.ca/mutt/patches/patch-1.5.3.dw.confirm-crypt-hook.1
2
--- PATCHES	24 Jan 2002 12:10:47 -0000	3.0
2
      http://home.woolridge.ca/mutt/patches/patch-1.5.3.dw.multiple-crypt-hook.1
3
+++ PATCHES	31 Aug 2002 22:01:56 -0000
3
      http://home.woolridge.ca/mutt/patches/patch-1.5.3.dw.crypt-autoselectkey.1
4
@@ -0,0 +1 @@
4
5
+patch-1.5.1.dw.pgp-hook.3
5
--- PATCHES	Tue Dec 17 10:47:20 2002
6
--- hook.c	5 Feb 2002 21:30:31 -0000	3.3
6
+++ PATCHES	Fri Jan 24 11:27:21 2003
7
+++ hook.c	31 Aug 2002 22:01:56 -0000
7
@@ -0,0 +1,3 @@
8
@@ -118,7 +118,11 @@ int mutt_parse_hook (BUFFER *buf, BUFFER
8
+patch-1.5.3.dw.crypt-autoselectkey.1
9
+patch-1.5.3.dw.confirm-crypt-hook.1
10
+patch-1.5.3.dw.multiple-crypt-hook.1
11
--- doc/manual.sgml.head	Tue Dec 17 10:36:42 2002
12
+++ doc/manual.sgml.head	Fri Jan 24 11:26:59 2003
13
@@ -1423,7 +1423,9 @@
14
 or because, for some reasons, you need to override the key Mutt would
15
 normally use.  The crypt-hook command provides a method by which you can
16
 specify the ID of the public key to be used when encrypting messages to
17
-a certain recipient.
18
+a certain recipient.  You may use multiple pgp-hook's with the same
19
+pattern; multiple matching pgp-hook's result in the use of multiple
20
+keyids for recipient.
21
 
22
 <sect1>Adding key sequences to the keyboard buffer<label id="push">
23
 <p>
24
--- doc/muttrc.man.head	Mon Sep  9 21:28:35 2002
25
+++ doc/muttrc.man.head	Fri Jan 24 11:26:59 2003
26
@@ -287 +287,3 @@
27
-to a certain recipient.
28
+to a certain recipient.  You may use multiple \fBpgp-hook\fPs with the
29
+same \fIpattern\fP; multiple matching \fBpgp-hook\fPs result in the use
30
+of multiple \fIkey-id\fPs for recipient.
31
--- hook.c	Wed Dec 11 16:13:11 2002
32
+++ hook.c	Fri Jan 24 11:26:59 2003
33
@@ -118,7 +118,11 @@
9
 	ptr->rx.not == not &&
34
 	ptr->rx.not == not &&
10
 	!mutt_strcmp (pattern.data, ptr->rx.pattern))
35
 	!mutt_strcmp (pattern.data, ptr->rx.pattern))
11
     {
36
     {
12
+#ifdef M_CRYPTHOOK
37
+#ifdef M_CRYPTHOOK
13
+      if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | M_CRYPTHOOK))
38
+      if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | M_REPLYHOOK | M_CRYPTHOOK))
14
+#else
39
+#else
15
       if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK))
40
       if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | M_REPLYHOOK))
16
+#endif /* M_CRYPTHOOK */
41
+#endif
17
       {
42
       {
18
 	/* these hooks allow multiple commands with the same
43
 	/* these hooks allow multiple commands with the same
19
 	 * pattern, so if we've already seen this pattern/command pair, just
44
 	 * pattern, so if we've already seen this pattern/command pair, just
20
@@ -445,9 +449,25 @@ char *mutt_iconv_hook (const char *chs)
45
@@ -445,9 +449,25 @@
21
 }
46
 }
22
 
47
 
23
 #if defined(HAVE_PGP) || defined(HAVE_SMIME)
48
 #if defined(HAVE_PGP) || defined(HAVE_SMIME)
Lines 45-53 Link Here
45
 }
70
 }
46
 #endif /* HAVE_PGP */
71
 #endif /* HAVE_PGP */
47
 
72
 
48
--- init.h	25 Apr 2002 13:26:26 -0000	3.15
73
--- init.h	Mon Dec  9 19:09:21 2002
49
+++ init.h	31 Aug 2002 22:01:57 -0000
74
+++ init.h	Fri Jan 24 11:27:21 2003
50
@@ -1180,6 +1180,16 @@ struct option_t MuttVars[] = {
75
@@ -1195,6 +1195,16 @@
51
 
76
 
52
 #if defined(HAVE_PGP) || defined(HAVE_SMIME)
77
 #if defined(HAVE_PGP) || defined(HAVE_SMIME)
53
 # ifdef HAVE_PGP
78
 # ifdef HAVE_PGP
Lines 58-70 Link Here
58
+  ** .pp
83
+  ** .pp
59
+  ** If set, then a list of keys is not presented for selection when only
84
+  ** If set, then a list of keys is not presented for selection when only
60
+  ** one matching key is available.  This may be useful in conjunction with
85
+  ** one matching key is available.  This may be useful in conjunction with
61
+  ** the \fIcrypt-hook\fP command (with ``$$crypt_confirmhook'' set).
86
+  ** the \fIcrypt-hook\fP command.
62
+  */
87
+  */
63
+# ifdef HAVE_PGP
88
+# ifdef HAVE_PGP
64
   { "pgp_autosign", 	DT_SYN,  R_NONE, UL "crypt_autosign", 0 },
89
   { "pgp_autosign", 	DT_SYN,  R_NONE, UL "crypt_autosign", 0 },
65
 # endif  
90
 # endif  
66
   { "crypt_autosign",	DT_BOOL, R_NONE, OPTCRYPTAUTOSIGN, 0 },
91
   { "crypt_autosign",	DT_BOOL, R_NONE, OPTCRYPTAUTOSIGN, 0 },
67
@@ -1205,6 +1215,17 @@ struct option_t MuttVars[] = {
92
@@ -1220,6 +1230,17 @@
68
   ** requested as well.  IF ``$$smime_is_default'' is set, then
93
   ** requested as well.  IF ``$$smime_is_default'' is set, then
69
   ** OpenSSL is used instead to create S/MIME messages and settings can
94
   ** OpenSSL is used instead to create S/MIME messages and settings can
70
   ** be overridden by use of the \fIsmime-menu\fP.
95
   ** be overridden by use of the \fIsmime-menu\fP.
Lines 82-90 Link Here
82
   */
107
   */
83
 #ifdef HAVE_PGP
108
 #ifdef HAVE_PGP
84
   { "pgp_ignore_subkeys", DT_BOOL, R_NONE, OPTPGPIGNORESUB, 1},
109
   { "pgp_ignore_subkeys", DT_BOOL, R_NONE, OPTPGPIGNORESUB, 1},
85
--- mutt.h	20 Apr 2002 08:11:13 -0000	3.8
110
--- mutt.h	Fri Dec  6 17:37:21 2002
86
+++ mutt.h	31 Aug 2002 22:01:58 -0000
111
+++ mutt.h	Fri Jan 24 11:27:21 2003
87
@@ -422,6 +422,7 @@ enum
112
@@ -431,6 +431,7 @@
88
   /* PGP options */
113
   /* PGP options */
89
   
114
   
90
 #if defined(HAVE_PGP) || defined(HAVE_SMIME)
115
 #if defined(HAVE_PGP) || defined(HAVE_SMIME)
Lines 92-98 Link Here
92
   OPTCRYPTAUTOSIGN,
117
   OPTCRYPTAUTOSIGN,
93
   OPTCRYPTAUTOENCRYPT,
118
   OPTCRYPTAUTOENCRYPT,
94
   OPTCRYPTREPLYENCRYPT,
119
   OPTCRYPTREPLYENCRYPT,
95
@@ -433,6 +434,7 @@ enum
120
@@ -442,6 +443,7 @@
96
   OPTASKCERTLABEL,
121
   OPTASKCERTLABEL,
97
   OPTSDEFAULTDECRYPTKEY,
122
   OPTSDEFAULTDECRYPTKEY,
98
 #endif
123
 #endif
Lines 100-108 Link Here
100
 #ifdef HAVE_PGP
125
 #ifdef HAVE_PGP
101
   OPTPGPIGNORESUB,
126
   OPTPGPIGNORESUB,
102
   OPTPGPLONGIDS,
127
   OPTPGPLONGIDS,
103
--- pgp.c	4 Apr 2002 06:50:12 -0000	3.13
128
--- pgp.c	Mon Dec 16 16:27:26 2002
104
+++ pgp.c	31 Aug 2002 22:01:58 -0000
129
+++ pgp.c	Fri Jan 24 11:27:04 2003
105
@@ -1037,6 +1037,8 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS
130
@@ -1051,6 +1051,8 @@
106
   char *keyID, *keylist = NULL, *t;
131
   char *keyID, *keylist = NULL, *t;
107
   size_t keylist_size = 0;
132
   size_t keylist_size = 0;
108
   size_t keylist_used = 0;
133
   size_t keylist_used = 0;
Lines 111-117 Link Here
111
   ADDRESS *tmp = NULL, *addr = NULL;
136
   ADDRESS *tmp = NULL, *addr = NULL;
112
   ADDRESS **last = &tmp;
137
   ADDRESS **last = &tmp;
113
   ADDRESS *p, *q;
138
   ADDRESS *p, *q;
114
@@ -1070,62 +1072,88 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS
139
@@ -1084,70 +1086,96 @@
115
     char buf[LONG_STRING];
140
     char buf[LONG_STRING];
116
 
141
 
117
     q = p;
142
     q = p;
Lines 134-148 Link Here
134
+
159
+
135
+      if (hook)
160
+      if (hook)
136
       {
161
       {
137
-	/* check for e-mail address */
162
-	if (is_numerical_keyid (keyID))
138
-	if ((t = strchr (keyID, '@')) && 
139
-	    (addr = rfc822_parse_adrlist (NULL, keyID)))
140
+	keyID = (char *)hook->data;
163
+	keyID = (char *)hook->data;
141
+	snprintf (buf, sizeof (buf), _("Use keyID = \"%s\" for %s?"), keyID, p->mailbox);
164
+	snprintf (buf, sizeof (buf), _("Use keyID = \"%s\" for %s?"), keyID, p->mailbox);
142
+	if (!option(OPTCRYPTCONFIRMHOOK) || (r = mutt_yesorno (buf, M_YES)) == M_YES)
165
+      if (!option(OPTCRYPTCONFIRMHOOK) || (r = mutt_yesorno (buf, M_YES)) == M_YES)
143
 	{
166
 	{
144
-	  if (fqdn) rfc822_qualify (addr, fqdn);
167
-	  if (strncmp (keyID, "0x", 2) == 0)
145
-	  q = addr;
168
-	    keyID += 2;
169
-	  goto bypass_selection;		/* you don't see this. */
170
+	  if (is_numerical_keyid (keyID))
171
+	  {
172
+	    if (strncmp (keyID, "0x", 2) == 0)
173
+	      keyID += 2;
174
+	    goto bypass_selection;		/* you don't see this. */
175
+	  }
176
+
146
+	  /* check for e-mail address */
177
+	  /* check for e-mail address */
147
+	  if ((t = strchr (keyID, '@')) && 
178
+	  if ((t = strchr (keyID, '@')) && 
148
+	      (addr = rfc822_parse_adrlist (NULL, keyID)))
179
+	      (addr = rfc822_parse_adrlist (NULL, keyID)))
Lines 152-164 Link Here
152
+	  }
183
+	  }
153
+	  else
184
+	  else
154
+	    k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING);
185
+	    k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING);
155
+	}
186
 	}
187
-	
188
-	/* check for e-mail address */
189
-	if ((t = strchr (keyID, '@')) && 
190
-	    (addr = rfc822_parse_adrlist (NULL, keyID)))
156
+	else if (r == -1)
191
+	else if (r == -1)
157
+	{
192
 	{
193
-	  if (fqdn) rfc822_qualify (addr, fqdn);
194
-	  q = addr;
158
+	  /*
195
+	  /*
159
+	   * yes, this implies that if one key fails they all do
196
+	   * yes, this implies that if one key fails they all do
160
+	   */
197
+	   */
161
+	  safe_free ((void **) &keylist);
198
+	  FREE (&keylist);
162
+	  rfc822_free_address (&tmp);
199
+	  rfc822_free_address (&tmp);
163
+	  rfc822_free_address (&addr);
200
+	  rfc822_free_address (&addr);
164
+	  mutt_free_list (&hook_list);
201
+	  mutt_free_list (&hook_list);
Lines 166-180 Link Here
166
 	}
203
 	}
167
-	else
204
-	else
168
-	  k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING);
205
-	  k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING);
169
       }
206
-      }
170
-      else if (r == -1)
207
-      else if (r == -1)
171
+
208
-      {
209
-	FREE (&keylist);
210
-	rfc822_free_address (&tmp);
211
-	rfc822_free_address (&addr);
212
-	return NULL;
213
       }
214
-    }
215
-
216
-    if (k_info == NULL)
217
-      pgp_invoke_getkeys (q);
218
 
219
-    if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL)
220
-    {
221
-      snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox);
172
+      if (k_info == NULL)
222
+      if (k_info == NULL)
173
+	pgp_invoke_getkeys (q);
223
+	pgp_invoke_getkeys (q);
174
+
224
 
225
-      if ((key = pgp_ask_for_key (buf, q->mailbox,
226
-				  KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL)
175
+      if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL)
227
+      if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL)
176
       {
228
       {
177
-	safe_free ((void **) &keylist);
229
-	FREE (&keylist);
178
-	rfc822_free_address (&tmp);
230
-	rfc822_free_address (&tmp);
179
-	rfc822_free_address (&addr);
231
-	rfc822_free_address (&addr);
180
-	return NULL;
232
-	return NULL;
Lines 183-189 Link Here
183
+	if ((key = pgp_ask_for_key (buf, q->mailbox,
235
+	if ((key = pgp_ask_for_key (buf, q->mailbox,
184
+				    KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL)
236
+				    KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL)
185
+	{
237
+	{
186
+	  safe_free ((void **)&keylist);
238
+	  FREE (&keylist);
187
+	  rfc822_free_address (&tmp);
239
+	  rfc822_free_address (&tmp);
188
+	  rfc822_free_address (&addr);
240
+	  rfc822_free_address (&addr);
189
+	  mutt_free_list (&hook_list);
241
+	  mutt_free_list (&hook_list);
Lines 191-236 Link Here
191
+	}
243
+	}
192
       }
244
       }
193
-    }
245
-    }
246
-    else
247
-      key = k_info;
194
+      else
248
+      else
195
+	key = k_info;
249
+	key = k_info;
196
 
250
 
197
-    if (k_info == NULL)
251
-    keyID = pgp_keyid (key);
198
-      pgp_invoke_getkeys (q);
199
+      keyID = pgp_keyid (key);
252
+      keyID = pgp_keyid (key);
200
+      
253
     
254
   bypass_selection:
255
-    keylist_size += mutt_strlen (keyID) + 4;
256
-    safe_realloc ((void **)&keylist, keylist_size);
257
-    sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "",	/* __SPRINTF_CHECKED__ */
258
-	     keyID);
259
-    keylist_used = mutt_strlen (keylist);
201
+      keylist_size += mutt_strlen (keyID) + 4;
260
+      keylist_size += mutt_strlen (keyID) + 4;
202
+      safe_realloc ((void **)&keylist, keylist_size);
261
+      safe_realloc ((void **)&keylist, keylist_size);
203
+      sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "",	/* __SPRINTF_CHECKED__ */
262
+      sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "",	/* __SPRINTF_CHECKED__ */
204
+	       keyID);
263
+	       keyID);
205
+      keylist_used = mutt_strlen (keylist);
264
+      keylist_used = mutt_strlen (keylist);
206
 
265
+
207
-    if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL)
208
-    {
209
-      snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox);
210
+      pgp_free_key (&key);
266
+      pgp_free_key (&key);
211
+      rfc822_free_address (&addr);
267
+      rfc822_free_address (&addr);
212
 
268
+
213
-      if ((key = pgp_ask_for_key (buf, q->mailbox,
214
-				  KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL)
215
-      {
216
-	safe_free ((void **)&keylist);
217
-	rfc822_free_address (&tmp);
218
-	rfc822_free_address (&addr);
219
-	return NULL;
220
-      }
221
-    }
222
-    else
223
-      key = k_info;
224
+      if (!hook_list)
269
+      if (!hook_list)
225
+	break;
270
+	break;
226
 
271
+
227
-    keyID = pgp_keyid (key);
228
-    
229
-    keylist_size += mutt_strlen (keyID) + 4;
230
-    safe_realloc ((void **)&keylist, keylist_size);
231
-    sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "",	/* __SPRINTF_CHECKED__ */
232
-	     keyID);
233
-    keylist_used = mutt_strlen (keylist);
234
+      hook = hook->next;
272
+      hook = hook->next;
235
+      if (!hook)
273
+      if (!hook)
236
+	break;
274
+	break;
Lines 242-250 Link Here
242
 
280
 
243
   }
281
   }
244
   rfc822_free_address (&tmp);
282
   rfc822_free_address (&tmp);
245
--- pgpkey.c	24 Jan 2002 12:10:51 -0000	3.0
283
diff -ru work.orig/mutt-1.5.3/pgpkey.c work/mutt-1.5.3/pgpkey.c
246
+++ pgpkey.c	31 Aug 2002 22:01:58 -0000
284
--- pgpkey.c	Wed Dec 11 12:20:05 2002
247
@@ -435,6 +435,11 @@ static int pgp_id_matches_addr (ADDRESS 
285
+++ pgpkey.c	Fri Jan 24 11:27:21 2003
286
@@ -435,6 +435,11 @@
248
   return rv;
287
   return rv;
249
 }
288
 }
250
 
289
 
Lines 256-262 Link Here
256
 static pgp_key_t *pgp_select_key (pgp_key_t *keys,
295
 static pgp_key_t *pgp_select_key (pgp_key_t *keys,
257
 				  ADDRESS * p, const char *s)
296
 				  ADDRESS * p, const char *s)
258
 {
297
 {
259
@@ -450,6 +455,7 @@ static pgp_key_t *pgp_select_key (pgp_ke
298
@@ -450,6 +455,7 @@
260
   pgp_uid_t *a;
299
   pgp_uid_t *a;
261
   int (*f) (const void *, const void *);
300
   int (*f) (const void *, const void *);
262
 
301
 
Lines 264-270 Link Here
264
   int unusable = 0;
303
   int unusable = 0;
265
 
304
 
266
   keymax = 0;
305
   keymax = 0;
267
@@ -479,6 +485,7 @@ static pgp_key_t *pgp_select_key (pgp_ke
306
@@ -479,6 +485,7 @@
268
       
307
       
269
       KeyTable[i++] = a;
308
       KeyTable[i++] = a;
270
     }
309
     }
Lines 272-278 Link Here
272
   }
311
   }
273
 
312
 
274
   if (!i && unusable)
313
   if (!i && unusable)
275
@@ -487,6 +494,21 @@ static pgp_key_t *pgp_select_key (pgp_ke
314
@@ -487,6 +494,21 @@
276
     mutt_sleep (1);
315
     mutt_sleep (1);
277
     return NULL;
316
     return NULL;
278
   }
317
   }
Lines 294-300 Link Here
294
 
333
 
295
   switch (PgpSortKeys & SORT_MASK)
334
   switch (PgpSortKeys & SORT_MASK)
296
   {
335
   {
297
@@ -597,9 +619,7 @@ static pgp_key_t *pgp_select_key (pgp_ke
336
@@ -597,9 +619,7 @@
298
 	  break;
337
 	  break;
299
 	}
338
 	}
300
       
339
       
Lines 305-313 Link Here
305
       {
344
       {
306
 	char *s = "";
345
 	char *s = "";
307
 	char buff[LONG_STRING];
346
 	char buff[LONG_STRING];
308
--- protos.h	29 Apr 2002 17:12:00 -0000	3.7
347
--- protos.h	Wed Dec 11 23:31:25 2002
309
+++ protos.h	31 Aug 2002 22:01:59 -0000
348
+++ protos.h	Fri Jan 24 11:26:59 2003
310
@@ -130,7 +130,7 @@ char *mutt_get_body_charset (char *, siz
349
@@ -130,7 +130,7 @@
311
 char *mutt_get_name (ADDRESS *);
350
 char *mutt_get_name (ADDRESS *);
312
 char *mutt_get_parameter (const char *, PARAMETER *);
351
 char *mutt_get_parameter (const char *, PARAMETER *);
313
 #if defined(HAVE_PGP) || defined(HAVE_SMIME)
352
 #if defined(HAVE_PGP) || defined(HAVE_SMIME)
Lines 316-342 Link Here
316
 #endif /* HAVE_PGP */
355
 #endif /* HAVE_PGP */
317
 char *mutt_make_date (char *, size_t);
356
 char *mutt_make_date (char *, size_t);
318
 
357
 
319
--- doc/manual.sgml.head	25 Apr 2002 13:28:23 -0000	3.3
320
+++ doc/manual.sgml.head	31 Aug 2002 22:02:00 -0000
321
@@ -1388,7 +1388,9 @@ recipient's public key can't be deduced 
322
 or because, for some reasons, you need to override the key Mutt would
323
 normally use.  The pgp-hook command provides a method by which you can
324
 specify the ID of the public key to be used when encrypting messages to
325
-a certain recipient.
326
+a certain recipient.  You may use multiple pgp-hook's with the same
327
+pattern; multiple matching pgp-hook's result in the use of multiple
328
+keyids for recipient.
329
 
330
 <sect1>Adding key sequences to the keyboard buffer<label id="push">
331
 <p>
332
--- doc/muttrc.man.head.orig2	Mon Sep  2 17:36:11 2002
333
+++ doc/muttrc.man.head	Mon Sep  2 17:37:22 2002
334
@@ -272,5 +272,7 @@
335
 The pgp-hook command provides a method by which you can
336
 specify the ID of the public key to be used when encrypting messages
337
-to a certain recipient.
338
+to a certain recipient.  You may use multiple \fBpgp-hook\fPs with the
339
+same \fIpattern\fP; multiple matching \fBpgp-hook\fPs result in the use
340
+of multiple \fIkey-id\fPs for recipient.
341
 .PP
342
 .nf

Return to bug 47437