View | Details | Raw Unified | Return to bug 208641 | Differences between
and this patch

Collapse All | Expand All

(-)./Makefile (-19 / +13 lines)
Lines 2-11 Link Here
2
# $FreeBSD: head/mail/mutt/Makefile 412348 2016-04-01 14:16:16Z mat $
2
# $FreeBSD: head/mail/mutt/Makefile 412348 2016-04-01 14:16:16Z mat $
3
3
4
PORTNAME=	mutt
4
PORTNAME=	mutt
5
PORTVERSION=	1.5.24
5
PORTVERSION=	1.6.0
6
PORTREVISION?=	6
6
PORTREVISION?=	0
7
CATEGORIES+=	mail ipv6
7
CATEGORIES+=	mail ipv6
8
MASTER_SITES=	ftp://ftp.mutt.org/mutt/ \
8
MASTER_SITES=	ftp://ftp.mutt.org/pub/mutt/ \
9
		ftp://ftp.fu-berlin.de/pub/unix/mail/mutt/ \
9
		ftp://ftp.fu-berlin.de/pub/unix/mail/mutt/ \
10
		https://bitbucket.org/mutt/mutt/downloads/ \
10
		https://bitbucket.org/mutt/mutt/downloads/ \
11
		ftp://ftp.demon.co.uk/pub/mirrors/mutt/ \
11
		ftp://ftp.demon.co.uk/pub/mirrors/mutt/ \
Lines 55-67 Link Here
55
OPTIONS_UNSET=	NLS DOCS EXAMPLES
55
OPTIONS_UNSET=	NLS DOCS EXAMPLES
56
.else
56
.else
57
OPTIONS_DEFINE=	COMPRESSED_FOLDERS SASL DEBUG DOCS EXAMPLES FLOCK \
57
OPTIONS_DEFINE=	COMPRESSED_FOLDERS SASL DEBUG DOCS EXAMPLES FLOCK \
58
		GPGME GREETING_PATCH HTML ICONV IDN IFDEF_PATCH \
58
		FORCEBASE64 GPGME GREETING_PATCH HTML ICONV IDN IFDEF_PATCH \
59
		IMAP_HEADER_CACHE LOCALES_FIX MAILBOX_MANPAGES \
59
		IMAP_HEADER_CACHE LOCALES_FIX MAILBOX_MANPAGES \
60
		MAILDIR_HEADER_CACHE MAILDIR_MTIME_PATCH \
60
		MAILDIR_HEADER_CACHE MAILDIR_MTIME_PATCH \
61
		MIXMASTER NLS NNTP PARENT_CHILD_MATCH_PATCH \
61
		MIXMASTER NLS NNTP PARENT_CHILD_MATCH_PATCH \
62
		QUOTE_PATCH REVERSE_REPLY_PATCH SIDEBAR_PATCH \
62
		QUOTE_PATCH REVERSE_REPLY_PATCH SIDEBAR_PATCH \
63
		SIGNATURE_MENU SMART_DATE SMIME_OUTLOOK_COMPAT SMTP \
63
		SMART_DATE SMIME_OUTLOOK_COMPAT SMTP TOKYOCABINET \
64
		TOKYOCABINET TRASH_PATCH URLVIEW XML
64
		TRASH_PATCH URLVIEW XML
65
65
66
OPTIONS_SINGLE=	GSSAPI SCREEN
66
OPTIONS_SINGLE=	GSSAPI SCREEN
67
OPTIONS_RADIO=	SPELL
67
OPTIONS_RADIO=	SPELL
Lines 73-78 Link Here
73
SASL_DESC=	SASL authentication
73
SASL_DESC=	SASL authentication
74
DEBUG_DESC=	Debugging capabilities
74
DEBUG_DESC=	Debugging capabilities
75
FLOCK_DESC=	flock() usage
75
FLOCK_DESC=	flock() usage
76
FORCEBASE64_DESC=	Option to force base64 encoding for compose
76
GPGME_DESC=	Gpgme interface
77
GPGME_DESC=	Gpgme interface
77
GREETING_PATCH_DESC=	Greeting support
78
GREETING_PATCH_DESC=	Greeting support
78
HTML_DESC=	HTML documentation
79
HTML_DESC=	HTML documentation
Lines 82-88 Link Here
82
MAILBOX_MANPAGES_DESC=	Install mbox.5/mmdf.5 manpages
83
MAILBOX_MANPAGES_DESC=	Install mbox.5/mmdf.5 manpages
83
MAILDIR_HEADER_CACHE_DESC=	Maildir header cache
84
MAILDIR_HEADER_CACHE_DESC=	Maildir header cache
84
MAILDIR_MTIME_PATCH_DESC=	Maildir mtime patch
85
MAILDIR_MTIME_PATCH_DESC=	Maildir mtime patch
85
MBOX_HOOK_PATCH_DESC=	Enhanced mbox-hook
86
MIXMASTER_DESC=	Mixmaster support
86
MIXMASTER_DESC=	Mixmaster support
87
NCURSES_DESC=	Ncurses support
87
NCURSES_DESC=	Ncurses support
88
NLS_DESC=	Native language support
88
NLS_DESC=	Native language support
Lines 90-96 Link Here
90
QUOTE_PATCH_DESC=	Extended quoting
90
QUOTE_PATCH_DESC=	Extended quoting
91
REVERSE_REPLY_PATCH_DESC=	Reverse_reply
91
REVERSE_REPLY_PATCH_DESC=	Reverse_reply
92
SIDEBAR_PATCH_DESC=	Sidebar support
92
SIDEBAR_PATCH_DESC=	Sidebar support
93
SIGNATURE_MENU_DESC=	Signature menu
94
SLANG_DESC=	SLANG support
93
SLANG_DESC=	SLANG support
95
SMART_DATE_DESC=	Dynamic date formatting with "%@"
94
SMART_DATE_DESC=	Dynamic date formatting with "%@"
96
SMIME_OUTLOOK_COMPAT_DESC=	SMIME outlook compatibility
95
SMIME_OUTLOOK_COMPAT_DESC=	SMIME outlook compatibility
Lines 205-221 Link Here
205
204
206
DOCS_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-doc-ref
205
DOCS_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-doc-ref
207
206
208
SIGNATURE_MENU_IGNORE=	SIGNATURE_MENU does not work at the moment
209
SIGNATURE_MENU_VARS=	XML_NEEDED=yes
210
SIGNATURE_MENU_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-signature-menu
211
212
MBOX_HOOK_PATCH_IGNORE=	MBOX_HOOK_PATCH does not work at the moment
213
MBOX_HOOK_PATCH_PATCHFILES=	p0-patch-${DW_MBOX_PATCH_VERSION}.dw.mbox-hook.1:dw
214
215
.include <bsd.port.options.mk>
207
.include <bsd.port.options.mk>
216
208
217
DW_PATCH_VERSION=	1.5.6
209
DW_PATCH_VERSION=	1.5.6
218
DW_MBOX_PATCH_VERSION=	1.5.18
219
.if !defined(VVV_PATCH_VERSION)
210
.if !defined(VVV_PATCH_VERSION)
220
VVV_PATCH_VERSION=	${PORTVERSION}
211
VVV_PATCH_VERSION=	${PORTVERSION}
221
.endif
212
.endif
Lines 225-233 Link Here
225
.if !defined(DW_PATCH_VERSION)
216
.if !defined(DW_PATCH_VERSION)
226
DW_PATCH_VERSION=	${PORTVERSION}
217
DW_PATCH_VERSION=	${PORTVERSION}
227
.endif
218
.endif
228
.if !defined(DW_MBOX_PATCH_VERSION)
229
DW_MBOX_PATCH_VERSION=	${DW_PATCH_VERSION}
230
.endif
231
219
232
# XXX
220
# XXX
233
# this should be done automagically by aclocal but ....
221
# this should be done automagically by aclocal but ....
Lines 268-273 Link Here
268
.if ${PORT_OPTIONS:MMAILDIR_MTIME_PATCH}
256
.if ${PORT_OPTIONS:MMAILDIR_MTIME_PATCH}
269
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-maildir-mtime-nntp
257
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-maildir-mtime-nntp
270
.endif
258
.endif
259
.if ${PORT_OPTIONS:MFORCEBASE64}
260
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-forcebase64-nntp
261
.endif
271
262
272
post-patch-NNTP-off:
263
post-patch-NNTP-off:
273
.if ${PORT_OPTIONS:MSIDEBAR_PATCH}
264
.if ${PORT_OPTIONS:MSIDEBAR_PATCH}
Lines 277-282 Link Here
277
.if ${PORT_OPTIONS:MMAILDIR_MTIME_PATCH}
268
.if ${PORT_OPTIONS:MMAILDIR_MTIME_PATCH}
278
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-maildir-mtime
269
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-maildir-mtime
279
.endif
270
.endif
271
.if ${PORT_OPTIONS:MFORCEBASE64}
272
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-forcebase64
273
.endif
280
274
281
post-install:
275
post-install:
282
	${INSTALL_MAN} ${FILESDIR}/mailcap.5 ${STAGEDIR}${MANPREFIX}/man/man5
276
	${INSTALL_MAN} ${FILESDIR}/mailcap.5 ${STAGEDIR}${MANPREFIX}/man/man5
(-)./distinfo (-12 / +12 lines)
Lines 1-12 Link Here
1
SHA256 (mutt/mutt-1.5.24.tar.gz) = a292ca765ed7b19db4ac495938a3ef808a16193b7d623d65562bb8feb2b42200
1
SHA256 (mutt/mutt-1.6.0.tar.gz) = 29afb6238ab7a540c0e3a78ce25c970f975ab6c0f0bc9f919993aab772136c19
2
SIZE (mutt/mutt-1.5.24.tar.gz) = 3897115
2
SIZE (mutt/mutt-1.6.0.tar.gz) = 3954591
3
SHA256 (mutt/patch-1.5.24.rr.compressed.gz) = c5eb9b53f7bd3feaa5ee03722575f64e43512b756c099ffe20db6fe5c958e3dc
3
SHA256 (mutt/patch-1.6.0.rr.compressed.gz) = c57ad6b19b2dbd812c27a098273b68b2d3b45ce2d36c3a4bff3493ad2cb75b85
4
SIZE (mutt/patch-1.5.24.rr.compressed.gz) = 10019
4
SIZE (mutt/patch-1.6.0.rr.compressed.gz) = 9977
5
SHA256 (mutt/patch-1.5.24.vvv.nntp.gz) = d34be4542d549aab6de9f7038c88b3eeefe826db643c92b27e1e65ab5f7d573e
5
SHA256 (mutt/patch-1.6.0.vvv.nntp.gz) = 6a69429c2942f438d5c22cfc3f97564bbbf689b2ea482d440692048bd92f5355
6
SIZE (mutt/patch-1.5.24.vvv.nntp.gz) = 61359
6
SIZE (mutt/patch-1.6.0.vvv.nntp.gz) = 61343
7
SHA256 (mutt/patch-1.5.24.vvv.nntp_ru.gz) = 70436af316aefd0d31aa33e127df49da4bdd1b4a8b3fbec73b3fca5428f3ab0e
7
SHA256 (mutt/patch-1.6.0.vvv.nntp_ru.gz) = 06f1932626a88a824f514356edf97c031a28f5d0b756353244d483285ab29c4e
8
SIZE (mutt/patch-1.5.24.vvv.nntp_ru.gz) = 5719
8
SIZE (mutt/patch-1.6.0.vvv.nntp_ru.gz) = 5729
9
SHA256 (mutt/patch-1.5.24.vvv.initials.gz) = 6522d12d34c0be71531465e05010413a0f2907d597e9fb5100a65d18093f0599
9
SHA256 (mutt/patch-1.6.0.vvv.initials.gz) = f1923f35cd5a400930d6aa6a60f213bf7b8b0f65e6a0d856e7ef23914e822f4d
10
SIZE (mutt/patch-1.5.24.vvv.initials.gz) = 671
10
SIZE (mutt/patch-1.6.0.vvv.initials.gz) = 668
11
SHA256 (mutt/patch-1.5.24.vvv.quote.gz) = fa161302179bbc646a83d7029381f828bece5b177e940f2fca6d5769633b9f0a
11
SHA256 (mutt/patch-1.6.0.vvv.quote.gz) = 362b9462b2e45de36c962450e9b6715e7f4c00fb5dce4c041fd6c675fbb73814
12
SIZE (mutt/patch-1.5.24.vvv.quote.gz) = 1254
12
SIZE (mutt/patch-1.6.0.vvv.quote.gz) = 1252
(-)./files/extra-patch-forcebase64 (+37 lines)
Line 0 Link Here
1
--- mutt-1.5.24/init.h.orig	2016-03-31 22:09:51.864031000 +0200
2
+++ mutt-1.5.24/init.h	2016-03-31 22:12:01.242952000 +0200
3
@@ -838,6 +838,11 @@
4
   ** sent to both the list and your address, resulting in two copies
5
   ** of the same email for you.
6
   */
7
+  { "force_base64",   DT_BOOL, R_NONE, OPTFORCEBASE64, 0 },
8
+  /*
9
+  ** .pp
10
+  ** If you need to encode all text parts to base64, set this option.
11
+  */
12
   { "force_name",	DT_BOOL, R_NONE, OPTFORCENAME, 0 },
13
   /*
14
   ** .pp
15
--- mutt-1.5.24-orig/mutt.h    2015-08-30 19:06:38.000000000 +0200
16
+++ mutt-1.5.24/mutt.h 2016-02-09 13:48:24.758051324 +0100
17
@@ -339,6 +339,7 @@ enum
18
   OPTFASTREPLY,
19
   OPTFCCCLEAR,
20
   OPTFOLLOWUPTO,
21
+  OPTFORCEBASE64,
22
   OPTFORCENAME,
23
   OPTFORWDECODE,
24
   OPTFORWQUOTE,
25
--- mutt-1.5.24-orig/sendlib.c 2015-08-30 19:06:38.000000000 +0200
26
+++ mutt-1.5.24/sendlib.c      2016-02-09 13:48:24.759051309 +0100
27
@@ -1168,7 +1168,9 @@ static void mutt_set_encoding (BODY *b,
28
   if (b->type == TYPETEXT)
29
   {
30
     char *chsname = mutt_get_body_charset (send_charset, sizeof (send_charset), b);
31
-    if ((info->lobin && ascii_strncasecmp (chsname, "iso-2022", 8)) || info->linemax > 990 || (info->from && option (OPTENCODEFROM)))
32
+    if (option (OPTFORCEBASE64))
33
+      b->encoding = ENCBASE64;
34
+    else if ((info->lobin && ascii_strncasecmp (chsname, "iso-2022", 8)) || info->linemax > 990 || (info->from && option (OPTENCODEFROM)))
35
       b->encoding = ENCQUOTEDPRINTABLE;
36
     else if (info->hibin)
37
       b->encoding = option (OPTALLOW8BIT) ? ENC8BIT : ENCQUOTEDPRINTABLE;
(-)./files/extra-patch-forcebase64-nntp (+37 lines)
Line 0 Link Here
1
--- mutt/init.h.orig	2016-04-09 11:37:12.650818818 +0200
2
+++ mutt/init.h	2016-04-09 11:57:47.378726695 +0200
3
@@ -873,6 +873,11 @@
4
   ** message via mail.
5
   */
6
 #endif
7
+   { "force_base64",   DT_BOOL, R_NONE, OPTFORCEBASE64, 0 },
8
+   /*
9
+   ** .pp
10
+   ** If you need to encode all text parts to base64, set this option.
11
+   */
12
   { "force_name",	DT_BOOL, R_NONE, OPTFORCENAME, 0 },
13
   /*
14
   ** .pp
15
--- mutt-1.5.24-orig/mutt.h    2015-08-30 19:06:38.000000000 +0200
16
+++ mutt-1.5.24/mutt.h 2016-02-09 13:48:24.758051324 +0100
17
@@ -339,6 +339,7 @@ enum
18
   OPTFASTREPLY,
19
   OPTFCCCLEAR,
20
   OPTFOLLOWUPTO,
21
+  OPTFORCEBASE64,
22
   OPTFORCENAME,
23
   OPTFORWDECODE,
24
   OPTFORWQUOTE,
25
--- mutt-1.5.24-orig/sendlib.c 2015-08-30 19:06:38.000000000 +0200
26
+++ mutt-1.5.24/sendlib.c      2016-02-09 13:48:24.759051309 +0100
27
@@ -1168,7 +1168,9 @@ static void mutt_set_encoding (BODY *b,
28
   if (b->type == TYPETEXT)
29
   {
30
     char *chsname = mutt_get_body_charset (send_charset, sizeof (send_charset), b);
31
-    if ((info->lobin && ascii_strncasecmp (chsname, "iso-2022", 8)) || info->linemax > 990 || (info->from && option (OPTENCODEFROM)))
32
+    if (option (OPTFORCEBASE64))
33
+      b->encoding = ENCBASE64;
34
+    else if ((info->lobin && ascii_strncasecmp (chsname, "iso-2022", 8)) || info->linemax > 990 || (info->from && option (OPTENCODEFROM)))
35
       b->encoding = ENCQUOTEDPRINTABLE;
36
     else if (info->hibin)
37
       b->encoding = option (OPTALLOW8BIT) ? ENC8BIT : ENCQUOTEDPRINTABLE;
(-)./files/extra-patch-sidebar (-79 / +40 lines)
Lines 999-1083 Link Here
999
        mutt_index_menu ();
999
        mutt_index_menu ();
1000
        if (Context)
1000
        if (Context)
1001
  	FREE (&Context);
1001
  	FREE (&Context);
1002
*** mutt-1.5.24-orig/Makefile.am	2015-08-30 12:06:38.000000000 -0500
1002
*** mutt-1.6.0-orig/Makefile.am.orig	2016-04-09 10:50:09.604018596 +0200
1003
--- mutt-1.5.24/Makefile.am	2015-09-16 23:18:13.000000000 -0500
1003
--- mutt-1.6.0/Makefile.am	2016-04-09 10:51:03.718016605 +0200
1004
***************
1004
@@ -32,7 +32,7 @@
1005
*** 33,38 ****
1005
 	main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
1006
--- 33,39 ----
1006
 	postpone.c query.c recvattach.c recvcmd.c \
1007
  	rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
1007
 	rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
1008
  	score.c send.c sendlib.c signal.c sort.c \
1008
-	score.c send.c sendlib.c signal.c sort.c \
1009
  	status.c system.c thread.c charset.c history.c lib.c \
1009
+	score.c send.c sendlib.c sidebar.c signal.c sort.c \
1010
+ 	sidebar.c \
1010
 	status.c system.c thread.c charset.c history.c lib.c \
1011
  	muttlib.c editmsg.c mbyte.c \
1011
 	muttlib.c editmsg.c mbyte.c mutt_idna.c \
1012
  	url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
1012
 	url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
1013
  
1013
  
1014
*** mutt-1.5.24-orig/Makefile.in	2015-08-30 12:24:26.000000000 -0500
1014
*** mutt-1.6.0-orig/Makefile.in.orig	2016-04-09 10:50:09.495008024 +0200
1015
--- mutt-1.5.24/Makefile.in	2015-09-16 23:18:13.000000000 -0500
1015
--- mutt-1.5.24/Makefile.in	2016-04-09 10:53:55.074988370 +0200
1016
***************
1016
@@ -134,7 +134,7 @@
1017
*** 83,92 ****
1017
 	recvcmd.$(OBJEXT) rfc822.$(OBJEXT) rfc1524.$(OBJEXT) \
1018
  	$(srcdir)/Makefile.am $(top_srcdir)/configure \
1018
 	rfc2047.$(OBJEXT) rfc2231.$(OBJEXT) rfc3676.$(OBJEXT) \
1019
  	$(am__configure_deps) $(srcdir)/config.h.in \
1019
 	score.$(OBJEXT) send.$(OBJEXT) sendlib.$(OBJEXT) \
1020
  	$(top_srcdir)/intl/Makefile.in $(srcdir)/hcachever.sh.in \
1020
-	signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
1021
! 	$(srcdir)/muttbug.sh.in strtok_r.c strcasecmp.c regex.c \
1021
+	sidebar.$(OBJEXT) signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
1022
! 	snprintf.c wcscasecmp.c strcasestr.c setenv.c mkdtemp.c \
1022
 	system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \
1023
! 	strsep.c strdup.c depcomp ABOUT-NLS ChangeLog INSTALL NEWS \
1023
 	history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \
1024
! 	README TODO compile config.guess config.sub install-sh missing
1024
 	editmsg.$(OBJEXT) mbyte.$(OBJEXT) mutt_idna.$(OBJEXT) \
1025
  EXTRA_PROGRAMS = mutt_dotlock$(EXEEXT) pgpring$(EXEEXT) \
1025
@@ -489,7 +489,7 @@
1026
  	pgpewrap$(EXEEXT) mutt_md5$(EXEEXT)
1026
 	main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
1027
  bin_PROGRAMS = mutt$(EXEEXT) $(DOTLOCK_TARGET) $(PGPAUX_TARGET)
1027
 	postpone.c query.c recvattach.c recvcmd.c \
1028
--- 83,92 ----
1028
 	rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
1029
  	$(srcdir)/Makefile.am $(top_srcdir)/configure \
1029
-	score.c send.c sendlib.c signal.c sort.c \
1030
  	$(am__configure_deps) $(srcdir)/config.h.in \
1030
+	score.c send.c sendlib.c sidebar.c signal.c sort.c \
1031
  	$(top_srcdir)/intl/Makefile.in $(srcdir)/hcachever.sh.in \
1031
 	status.c system.c thread.c charset.c history.c lib.c \
1032
! 	$(srcdir)/muttbug.sh.in snprintf.c strtok_r.c regex.c strdup.c \
1032
 	muttlib.c editmsg.c mbyte.c mutt_idna.c \
1033
! 	strcasecmp.c setenv.c strcasestr.c wcscasecmp.c mkdtemp.c \
1033
 	url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
1034
! 	strsep.c depcomp ABOUT-NLS ChangeLog INSTALL NEWS README TODO \
1034
@@ -820,6 +820,7 @@
1035
! 	compile config.guess config.sub install-sh missing
1035
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send.Po@am__quote@
1036
  EXTRA_PROGRAMS = mutt_dotlock$(EXEEXT) pgpring$(EXEEXT) \
1036
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendlib.Po@am__quote@
1037
  	pgpewrap$(EXEEXT) mutt_md5$(EXEEXT)
1037
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@
1038
  bin_PROGRAMS = mutt$(EXEEXT) $(DOTLOCK_TARGET) $(PGPAUX_TARGET)
1038
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sidebar.Po@am__quote@
1039
***************
1039
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
1040
*** 128,136 ****
1040
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smime.Po@am__quote@
1041
  	score.$(OBJEXT) send.$(OBJEXT) sendlib.$(OBJEXT) \
1041
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp.Po@am__quote@
1042
  	signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
1043
  	system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \
1044
! 	history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \
1045
! 	editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \
1046
! 	ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT)
1047
  am__objects_1 =
1048
  am__objects_2 = patchlist.$(OBJEXT) conststrings.$(OBJEXT) \
1049
  	$(am__objects_1)
1050
--- 128,137 ----
1051
  	score.$(OBJEXT) send.$(OBJEXT) sendlib.$(OBJEXT) \
1052
  	signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
1053
  	system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \
1054
! 	history.$(OBJEXT) lib.$(OBJEXT) sidebar.$(OBJEXT) \
1055
! 	muttlib.$(OBJEXT) editmsg.$(OBJEXT) mbyte.$(OBJEXT) \
1056
! 	url.$(OBJEXT) ascii.$(OBJEXT) crypt-mod.$(OBJEXT) \
1057
! 	safe_asprintf.$(OBJEXT)
1058
  am__objects_1 =
1059
  am__objects_2 = patchlist.$(OBJEXT) conststrings.$(OBJEXT) \
1060
  	$(am__objects_1)
1061
***************
1062
*** 474,479 ****
1063
--- 475,481 ----
1064
  	rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
1065
  	score.c send.c sendlib.c signal.c sort.c \
1066
  	status.c system.c thread.c charset.c history.c lib.c \
1067
+ 	sidebar.c \
1068
  	muttlib.c editmsg.c mbyte.c \
1069
  	url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
1070
  
1071
***************
1072
*** 804,809 ****
1073
--- 806,812 ----
1074
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send.Po@am__quote@
1075
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendlib.Po@am__quote@
1076
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@
1077
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sidebar.Po@am__quote@
1078
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
1079
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smime.Po@am__quote@
1080
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp.Po@am__quote@
1081
*** mutt-1.5.24-orig/mbox.c	2015-08-30 12:06:38.000000000 -0500
1042
*** mutt-1.5.24-orig/mbox.c	2015-08-30 12:06:38.000000000 -0500
1082
--- mutt-1.5.24/mbox.c	2015-09-16 23:18:13.000000000 -0500
1043
--- mutt-1.5.24/mbox.c	2015-09-16 23:18:13.000000000 -0500
1083
***************
1044
***************
(-)./files/extra-patch-sidebar-nntp (-79 / +39 lines)
Lines 915-999 Link Here
915
        mutt_index_menu ();
915
        mutt_index_menu ();
916
        if (Context)
916
        if (Context)
917
  	FREE (&Context);
917
  	FREE (&Context);
918
*** mutt-1.5.24-orig/Makefile.am	2015-08-30 12:06:38.000000000 -0500
918
*** mutt-1.6.0-orig/Makefile.am.orig	2016-04-09 10:50:09.604018596 +0200
919
--- mutt-1.5.24/Makefile.am	2015-09-16 23:18:13.000000000 -0500
919
--- mutt-1.6.0/Makefile.am	2016-04-09 10:51:03.718016605 +0200
920
***************
920
@@ -32,7 +32,7 @@
921
*** 33,38 ****
921
 	main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
922
--- 33,39 ----
922
 	postpone.c query.c recvattach.c recvcmd.c \
923
  	rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
923
 	rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
924
  	score.c send.c sendlib.c signal.c sort.c \
924
-	score.c send.c sendlib.c signal.c sort.c \
925
  	status.c system.c thread.c charset.c history.c lib.c \
925
+	score.c send.c sendlib.c sidebar.c signal.c sort.c \
926
+ 	sidebar.c \
926
 	status.c system.c thread.c charset.c history.c lib.c \
927
  	muttlib.c editmsg.c mbyte.c \
927
 	muttlib.c editmsg.c mbyte.c mutt_idna.c \
928
  	url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
928
 	url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
929
  
929
*** mutt-1.6.0-orig/Makefile.in.orig	2016-04-09 10:50:09.495008024 +0200
930
*** mutt-1.5.24-orig/Makefile.in	2015-08-30 12:24:26.000000000 -0500
930
--- mutt-1.6.0/Makefile.in	2016-04-09 10:53:55.074988370 +0200
931
--- mutt-1.5.24/Makefile.in	2015-09-16 23:18:13.000000000 -0500
931
@@ -134,7 +134,7 @@
932
***************
932
 	recvcmd.$(OBJEXT) rfc822.$(OBJEXT) rfc1524.$(OBJEXT) \
933
*** 83,92 ****
933
 	rfc2047.$(OBJEXT) rfc2231.$(OBJEXT) rfc3676.$(OBJEXT) \
934
  	$(srcdir)/Makefile.am $(top_srcdir)/configure \
934
 	score.$(OBJEXT) send.$(OBJEXT) sendlib.$(OBJEXT) \
935
  	$(am__configure_deps) $(srcdir)/config.h.in \
935
-	signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
936
  	$(top_srcdir)/intl/Makefile.in $(srcdir)/hcachever.sh.in \
936
+	sidebar.$(OBJEXT) signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
937
! 	$(srcdir)/muttbug.sh.in strtok_r.c strcasecmp.c regex.c \
937
 	system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \
938
! 	snprintf.c wcscasecmp.c strcasestr.c setenv.c mkdtemp.c \
938
 	history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \
939
! 	strsep.c strdup.c depcomp ABOUT-NLS ChangeLog INSTALL NEWS \
939
 	editmsg.$(OBJEXT) mbyte.$(OBJEXT) mutt_idna.$(OBJEXT) \
940
! 	README TODO compile config.guess config.sub install-sh missing
940
@@ -489,7 +489,7 @@
941
  EXTRA_PROGRAMS = mutt_dotlock$(EXEEXT) pgpring$(EXEEXT) \
941
 	main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
942
  	pgpewrap$(EXEEXT) mutt_md5$(EXEEXT)
942
 	postpone.c query.c recvattach.c recvcmd.c \
943
  bin_PROGRAMS = mutt$(EXEEXT) $(DOTLOCK_TARGET) $(PGPAUX_TARGET)
943
 	rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
944
--- 83,92 ----
944
-	score.c send.c sendlib.c signal.c sort.c \
945
  	$(srcdir)/Makefile.am $(top_srcdir)/configure \
945
+	score.c send.c sendlib.c sidebar.c signal.c sort.c \
946
  	$(am__configure_deps) $(srcdir)/config.h.in \
946
 	status.c system.c thread.c charset.c history.c lib.c \
947
  	$(top_srcdir)/intl/Makefile.in $(srcdir)/hcachever.sh.in \
947
 	muttlib.c editmsg.c mbyte.c mutt_idna.c \
948
! 	$(srcdir)/muttbug.sh.in snprintf.c strtok_r.c regex.c strdup.c \
948
 	url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
949
! 	strcasecmp.c setenv.c strcasestr.c wcscasecmp.c mkdtemp.c \
949
@@ -820,6 +820,7 @@
950
! 	strsep.c depcomp ABOUT-NLS ChangeLog INSTALL NEWS README TODO \
950
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send.Po@am__quote@
951
! 	compile config.guess config.sub install-sh missing
951
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendlib.Po@am__quote@
952
  EXTRA_PROGRAMS = mutt_dotlock$(EXEEXT) pgpring$(EXEEXT) \
952
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@
953
  	pgpewrap$(EXEEXT) mutt_md5$(EXEEXT)
953
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sidebar.Po@am__quote@
954
  bin_PROGRAMS = mutt$(EXEEXT) $(DOTLOCK_TARGET) $(PGPAUX_TARGET)
954
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
955
***************
955
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smime.Po@am__quote@
956
*** 128,136 ****
956
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp.Po@am__quote@
957
  	score.$(OBJEXT) send.$(OBJEXT) sendlib.$(OBJEXT) \
958
  	signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
959
  	system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \
960
! 	history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \
961
! 	editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \
962
! 	ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT)
963
  am__objects_1 =
964
  am__objects_2 = patchlist.$(OBJEXT) conststrings.$(OBJEXT) \
965
  	$(am__objects_1)
966
--- 128,137 ----
967
  	score.$(OBJEXT) send.$(OBJEXT) sendlib.$(OBJEXT) \
968
  	signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
969
  	system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \
970
! 	history.$(OBJEXT) lib.$(OBJEXT) sidebar.$(OBJEXT) \
971
! 	muttlib.$(OBJEXT) editmsg.$(OBJEXT) mbyte.$(OBJEXT) \
972
! 	url.$(OBJEXT) ascii.$(OBJEXT) crypt-mod.$(OBJEXT) \
973
! 	safe_asprintf.$(OBJEXT)
974
  am__objects_1 =
975
  am__objects_2 = patchlist.$(OBJEXT) conststrings.$(OBJEXT) \
976
  	$(am__objects_1)
977
***************
978
*** 474,479 ****
979
--- 475,481 ----
980
  	rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
981
  	score.c send.c sendlib.c signal.c sort.c \
982
  	status.c system.c thread.c charset.c history.c lib.c \
983
+ 	sidebar.c \
984
  	muttlib.c editmsg.c mbyte.c \
985
  	url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
986
  
987
***************
988
*** 804,809 ****
989
--- 806,812 ----
990
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send.Po@am__quote@
991
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendlib.Po@am__quote@
992
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@
993
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sidebar.Po@am__quote@
994
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
995
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smime.Po@am__quote@
996
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp.Po@am__quote@
997
*** mutt-1.5.24-orig/mbox.c	2015-08-30 12:06:38.000000000 -0500
957
*** mutt-1.5.24-orig/mbox.c	2015-08-30 12:06:38.000000000 -0500
998
--- mutt-1.5.24/mbox.c	2015-09-16 23:18:13.000000000 -0500
958
--- mutt-1.5.24/mbox.c	2015-09-16 23:18:13.000000000 -0500
999
***************
959
***************
(-)./files/extra-patch-signature-menu (-729 lines)
Lines 1-729 Link Here
1
--- mutt-1.5.11/PATCHES Dec 2002 17:44:54 -0000	3.6
2
+++ mutt-1.5.11/PATCHES Feb 2004 13:19:42 -0000
3
@@ -0,0 +1 @@
4
+patch-1.5.11.cd.signatures_menu.2.1
5
--- mutt-1.5.11/Makefile.am.orig	Thu Aug 11 23:27:28 2005
6
+++ mutt-1.5.11/Makefile.am	Sat Mar 11 21:47:55 2006
7
@@ -25,7 +25,7 @@
8
 	main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
9
 	postpone.c query.c recvattach.c recvcmd.c \
10
 	rfc822.c rfc1524.c rfc2047.c rfc2231.c \
11
-	score.c send.c sendlib.c signal.c sort.c \
12
+	score.c send.c sendlib.c signal.c signature.c sort.c \
13
 	status.c system.c thread.c charset.c history.c lib.c \
14
 	muttlib.c editmsg.c utf8.c mbyte.c wcwidth.c \
15
 	url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h
16
--- mutt-1.5.12/Makefile.in.orig	Mon Jul 17 16:29:15 2006
17
+++ mutt-1.5.12/Makefile.in	Mon Jul 17 16:30:26 2006
18
@@ -90,7 +90,7 @@
19
 	query.$(OBJEXT) recvattach.$(OBJEXT) recvcmd.$(OBJEXT) \
20
 	rfc822.$(OBJEXT) rfc1524.$(OBJEXT) rfc2047.$(OBJEXT) \
21
 	rfc2231.$(OBJEXT) score.$(OBJEXT) send.$(OBJEXT) \
22
-	sendlib.$(OBJEXT) signal.$(OBJEXT) sort.$(OBJEXT) \
23
+	sendlib.$(OBJEXT) signal.$(OBJEXT) signature.$(OBJEXT) sort.$(OBJEXT) \
24
 	status.$(OBJEXT) system.$(OBJEXT) thread.$(OBJEXT) \
25
 	charset.$(OBJEXT) history.$(OBJEXT) lib.$(OBJEXT) \
26
 	muttlib.$(OBJEXT) editmsg.$(OBJEXT) utf8.$(OBJEXT) \
27
@@ -309,7 +309,7 @@
28
 	main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
29
 	postpone.c query.c recvattach.c recvcmd.c \
30
 	rfc822.c rfc1524.c rfc2047.c rfc2231.c \
31
-	score.c send.c sendlib.c signal.c sort.c \
32
+	score.c send.c sendlib.c signal.c signature.c sort.c \
33
 	status.c system.c thread.c charset.c history.c lib.c \
34
 	muttlib.c editmsg.c utf8.c mbyte.c wcwidth.c \
35
 	url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h
36
--- mutt-1.5.11/OPS.orig	Sun Jul 24 18:56:42 2005
37
+++ mutt-1.5.11/OPS	Sat Mar 11 21:47:55 2006
38
@@ -38,6 +38,7 @@
39
 OP_COMPOSE_POSTPONE_MESSAGE "save this message to send later"
40
 OP_COMPOSE_RENAME_FILE "rename/move an attached file"
41
 OP_COMPOSE_SEND_MESSAGE "send the message"
42
+OP_COMPOSE_SIG "choose a signature"
43
 OP_COMPOSE_TOGGLE_DISPOSITION "toggle disposition between inline/attachment"
44
 OP_COMPOSE_TOGGLE_UNLINK "toggle whether to delete file after sending it"
45
 OP_COMPOSE_UPDATE_ENCODING "update an attachment's encoding info"
46
@@ -131,6 +132,7 @@
47
 OP_NEXT_ENTRY "move to the next entry"
48
 OP_NEXT_LINE "scroll down one line"
49
 OP_NEXT_PAGE "move to the next page"
50
+OP_NEXT_SIG "move to the next signature"
51
 OP_PAGER_BOTTOM "jump to the bottom of the message"
52
 OP_PAGER_HIDE_QUOTED "toggle display of quoted text"
53
 OP_PAGER_SKIP_QUOTED "skip beyond quoted text"
54
@@ -139,10 +141,12 @@
55
 OP_PREV_ENTRY "move to the previous entry"
56
 OP_PREV_LINE "scroll up one line"
57
 OP_PREV_PAGE "move to the previous page"
58
+OP_PREV_SIG "move to the previous signature"
59
 OP_PRINT "print the current entry"
60
 OP_QUERY "query external program for addresses"
61
 OP_QUERY_APPEND "append new query results to current results"
62
 OP_QUIT "save changes to mailbox and quit"
63
+OP_RANDOM_SIG "pick a signature at random"
64
 OP_RECALL_MESSAGE "recall a postponed message"
65
 OP_REDRAW "clear and redraw the screen"
66
 OP_REFORMAT_WINCH "{internal}"
67
@@ -156,6 +160,7 @@
68
 OP_SEARCH_OPPOSITE "search for next match in opposite direction"
69
 OP_SEARCH_TOGGLE "toggle search pattern coloring"
70
 OP_SHELL_ESCAPE "invoke a command in a subshell"
71
+OP_SIG_SEARCH "search signatures matching a pattern"
72
 OP_SORT "sort messages"
73
 OP_SORT_REVERSE "sort messages in reverse order"
74
 OP_TAG "tag the current entry"
75
--- mutt-1.5.11/compose.c.orig	Thu Aug 11 21:37:23 2005
76
+++ mutt-1.5.11/compose.c	Sat Mar 11 21:47:55 2006
77
@@ -1128,6 +1128,12 @@
78
         /* no send2hook, since this doesn't modify the message */
79
 	break;
80
 
81
+      case OP_COMPOSE_SIG:
82
+	mutt_signature(msg->content->filename);
83
+	MAYBE_REDRAW (menu->redraw);
84
+	mutt_update_encoding (msg->content);
85
+	break;
86
+
87
       case OP_PIPE:
88
       case OP_FILTER:
89
         CHECK_COUNT;
90
--- mutt-1.5.12/doc/manual.xml.head.orig	Mon Jul 17 16:21:01 2006
91
+++ mutt-1.5.12/doc/manual.xml.head	Mon Jul 17 16:24:46 2006
92
@@ -999,6 +999,7 @@
93
 <row><entry>c</entry><entry>edit-cc</entry><entry>edit the Cc field</entry></row>
94
 <row><entry>b</entry><entry>edit-bcc</entry><entry>edit the Bcc field</entry></row>
95
 <row><entry>y</entry><entry>send-message</entry><entry>send the message</entry></row>
96
+<row><entry>ESC s</entry><entry>signature-menu</entry><entry>select a signature and append it to your mail</entry></row>
97
 <row><entry>s</entry><entry>edit-subject</entry><entry>edit the Subject</entry></row>
98
 <row><entry>S</entry><entry>smime-menu</entry><entry>select S/MIME options</entry></row>
99
 <row><entry>f</entry><entry>edit-fcc</entry><entry>specify an ``Fcc'' mailbox</entry></row>
100
--- mutt-1.5.11/functions.h.orig	Sun Jul 24 18:56:42 2005
101
+++ mutt-1.5.11/functions.h	Sat Mar 11 21:48:05 2006
102
@@ -311,6 +311,7 @@
103
   { "view-attach",	OP_VIEW_ATTACH,			M_ENTER_S },
104
   { "send-message",	OP_COMPOSE_SEND_MESSAGE,	"y" },
105
   { "pipe-entry",	OP_PIPE,			"|" },
106
+  { "signature-menu",	OP_COMPOSE_SIG,			"\033s" },
107
 
108
   { "attach-key",	OP_COMPOSE_ATTACH_KEY,		"\033k" },
109
   { "pgp-menu",		OP_COMPOSE_PGP_MENU,		"p" 	},
110
@@ -368,6 +369,19 @@
111
   { "mail",		OP_MAIL,		"m" },
112
   { "query",		OP_QUERY,		"Q" },
113
   { "query-append",	OP_QUERY_APPEND,	"A" },
114
+  { NULL,		0,			NULL }
115
+};
116
+
117
+/* Signature Menu */
118
+struct binding_t OpSig[] = {
119
+  { "next-sig",		OP_NEXT_SIG,		"j" },
120
+  { "previous-sig",	OP_PREV_SIG,		"k" },
121
+  { "random-sig",	OP_RANDOM_SIG,		"r" },
122
+  { NULL,		0,			NULL }
123
+};
124
+
125
+struct binding_t OpSigDir[] = {
126
+  { "search-sig",	OP_SIG_SEARCH,		"/" },
127
   { NULL,		0,			NULL }
128
 };
129
 
130
--- mutt-1.5.11/globals.h.orig	Thu Sep 15 16:19:54 2005
131
+++ mutt-1.5.11/globals.h	Sat Mar 11 21:48:05 2006
132
@@ -109,6 +109,7 @@
133
 WHERE char *Sendmail;
134
 WHERE char *Shell;
135
 WHERE char *Signature;
136
+WHERE char *SigDirectory;
137
 WHERE char *SimpleSearch;
138
 WHERE char *Spoolfile;
139
 WHERE char *SpamSep;
140
--- mutt-1.5.11/init.h.orig	Thu Sep 15 16:19:54 2005
141
+++ mutt-1.5.11/init.h	Sat Mar 11 21:48:05 2006
142
@@ -2457,6 +2457,14 @@
143
   ** assumed that filename is a shell command and input should be read from
144
   ** its stdout.
145
   */
146
+  { "signatures_directory",	DT_PATH, R_NONE, UL &SigDirectory, UL "" },
147
+  /*
148
+  ** .pp
149
+  ** Specifies the path where your signatures are located. In the files of
150
+  ** this directory, the signatures are separated by blank lines and/or
151
+  ** sig_dashes (``-- '').
152
+  ** You can choose between these signatures from the compose menu.
153
+  */
154
   { "simple_search",	DT_STR,	 R_NONE, UL &SimpleSearch, UL "~f %s | ~s %s" },
155
   /*
156
   ** .pp
157
--- mutt-1.5.11/keymap.c.orig	Wed Sep  7 10:19:43 2005
158
+++ mutt-1.5.11/keymap.c	Sat Mar 11 21:48:05 2006
159
@@ -55,6 +55,8 @@
160
   
161
 
162
  { "query",	MENU_QUERY },
163
+ { "signature",	MENU_SIG },
164
+ { "sig_directory",	MENU_SIG_DIR },
165
  { "generic",	MENU_GENERIC },
166
  { NULL,	0 }
167
 };
168
@@ -560,6 +562,8 @@
169
   create_bindings (OpPost, MENU_POST);
170
   create_bindings (OpQuery, MENU_QUERY);
171
   create_bindings (OpAlias, MENU_ALIAS);
172
+  create_bindings (OpSig, MENU_SIG);
173
+  create_bindings (OpSigDir, MENU_SIG_DIR);
174
 
175
 
176
   if ((WithCrypto & APPLICATION_PGP))
177
@@ -658,6 +662,9 @@
178
   km_bindkey ("<enter>", MENU_ATTACH, OP_VIEW_ATTACH);
179
   km_bindkey ("<enter>", MENU_COMPOSE, OP_VIEW_ATTACH);
180
 
181
+  km_bindkey ("<up>", MENU_SIG, OP_PREV_SIG);
182
+  km_bindkey ("<down>", MENU_SIG, OP_NEXT_SIG);
183
+
184
   /* edit-to (default "t") hides generic tag-entry in Compose menu
185
      This will bind tag-entry to  "T" in the Compose menu */
186
   km_bindkey ("T", MENU_COMPOSE, OP_TAG);
187
@@ -793,6 +800,10 @@
188
       return OpEditor;
189
     case MENU_QUERY:
190
       return OpQuery;
191
+    case MENU_SIG:
192
+      return OpSig;
193
+    case MENU_SIG_DIR:
194
+      return OpSigDir;
195
 
196
     case MENU_PGP:
197
       return (WithCrypto & APPLICATION_PGP)? OpPgp:NULL;
198
--- mutt-1.5.11/keymap.h.orig	Thu Jun 17 22:33:04 2004
199
+++ mutt-1.5.11/keymap.h	Sat Mar 11 21:48:05 2006
200
@@ -62,6 +62,8 @@
201
   MENU_PAGER,
202
   MENU_POST,
203
   MENU_QUERY,
204
+  MENU_SIG,
205
+  MENU_SIG_DIR,
206
 
207
   
208
   MENU_PGP,
209
@@ -108,6 +110,8 @@
210
 extern struct binding_t OpEditor[];
211
 extern struct binding_t OpQuery[];
212
 extern struct binding_t OpAlias[];
213
+extern struct binding_t OpSig[];
214
+extern struct binding_t OpSigDir[];
215
 
216
 extern struct binding_t OpPgp[];
217
 
218
--- mutt-1.5.11/protos.h.orig	Wed Sep  7 10:19:43 2005
219
+++ mutt-1.5.11/protos.h	Sat Mar 11 21:48:05 2006
220
@@ -242,6 +242,7 @@
221
 void mutt_shell_escape (void);
222
 void mutt_show_error (void);
223
 void mutt_signal_init (void);
224
+void mutt_signature (char *);
225
 void mutt_stamp_attachment (BODY *a);
226
 void mutt_tabs_to_spaces (char *);
227
 void mutt_tag_set_flag (int, int);
228
--- mutt-1.5.11/signature.c.orig	Sat Mar 11 21:58:38 2006
229
+++ mutt-1.5.11/signature.c	Sat Mar 11 22:07:31 2006
230
@@ -0,0 +1,499 @@
231
+/*
232
+ * Copyright (C) 2001 Cedric Duval <cedricduval@free.fr>
233
+ * 
234
+ *     This program is free software; you can redistribute it and/or modify
235
+ *     it under the terms of the GNU General Public License as published by
236
+ *     the Free Software Foundation; either version 2 of the License, or
237
+ *     (at your option) any later version.
238
+ * 
239
+ *     This program is distributed in the hope that it will be useful,
240
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
241
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
242
+ *     GNU General Public License for more details.
243
+ * 
244
+ *     You should have received a copy of the GNU General Public License
245
+ *     along with this program; if not, write to the Free Software
246
+ *     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
247
+ */
248
+
249
+#if HAVE_CONFIG_H
250
+# include "config.h"
251
+#endif
252
+
253
+#include "mutt.h"
254
+#include "mutt_menu.h"
255
+#include "mapping.h"
256
+#include "mutt_curses.h"
257
+
258
+#include <stdio.h>
259
+#include <string.h>
260
+#include <stdlib.h>
261
+#include <dirent.h>
262
+#include <sys/stat.h>
263
+
264
+#define SIG_DISPLAY_LINES 4
265
+#define SEPARATOR(x) ((*x == '\n') || (mutt_strcmp (x, "-- \n") == 0))
266
+#define SIG_ADD_LINE(x,y) mutt_add_list (x, strtok (y, "\n"))
267
+
268
+typedef struct sig_list
269
+{
270
+  struct sig_list *next;
271
+  LIST *sig;
272
+} SIG_LIST;
273
+
274
+typedef struct sig_dir
275
+{
276
+  struct sig_dir *next;
277
+  char *name;
278
+} SIG_DIR;
279
+
280
+typedef LIST * ENTRY;
281
+
282
+typedef struct entry_dir
283
+{
284
+  int tagged;
285
+  SIG_DIR *data;
286
+} ENTRY_DIR;
287
+
288
+static struct mapping_t SigHelp[] = {
289
+  { N_("Exit"),   OP_EXIT },
290
+  { N_("Search"), OP_SEARCH },
291
+  { N_("Random"), OP_RANDOM_SIG },
292
+  { N_("Help"),   OP_HELP },
293
+  { NULL }
294
+};
295
+
296
+static struct mapping_t SigDirHelp[] = {
297
+  { N_("Exit"),   OP_EXIT },
298
+  { N_("Search signature"), OP_SIG_SEARCH },
299
+  { N_("Help"),   OP_HELP },
300
+  { NULL }
301
+};
302
+
303
+void menu_next_entry (MUTTMENU *menu);
304
+void menu_prev_entry (MUTTMENU *menu);
305
+
306
+
307
+static int sig_match (LIST *s, regex_t *re)
308
+{
309
+  while (s)
310
+  {
311
+    if (regexec (re, s->data, (size_t)0, NULL, (int)0) == 0)
312
+      return 1;
313
+    s = s->next;
314
+  }
315
+  return 0;
316
+}
317
+
318
+static void read_sig_file (char *name, SIG_LIST **begin, regex_t *re)
319
+{
320
+  FILE *fp;
321
+  char buf[STRING];
322
+  LIST *sig = NULL;
323
+  SIG_LIST *first, *cur;
324
+  int append = 0;
325
+
326
+  if (!(fp = safe_fopen (name, "r")))
327
+  {
328
+    mutt_error (_("Can't open signature file %s"), name);
329
+    return;
330
+  }
331
+
332
+  for (first = *begin; first && first->next; first = first->next, append++)
333
+    ; /* append results to an existing list */
334
+  cur = first;
335
+
336
+  while (fgets (buf, sizeof (buf), fp))
337
+  {
338
+    if (buf[0] && !SEPARATOR (buf))
339
+    {
340
+      sig = SIG_ADD_LINE (NULL, buf);
341
+
342
+      while (fgets (buf, sizeof (buf), fp) && buf[0] && !SEPARATOR (buf))
343
+	SIG_ADD_LINE (sig, buf);
344
+
345
+      if (re && !sig_match (sig, re))
346
+	mutt_free_list (&sig); /* previous sig didn't match the regexp */
347
+      else
348
+      {
349
+	/* add signature */
350
+	if (first == NULL)
351
+	  first = cur = (SIG_LIST *) safe_calloc (1, sizeof (SIG_LIST));
352
+	else
353
+	{
354
+	  cur->next = (SIG_LIST *) safe_calloc (1, sizeof (SIG_LIST));
355
+	  cur = cur->next;
356
+	}
357
+
358
+	cur->sig = sig;
359
+	cur->next = NULL;
360
+      }
361
+    }
362
+  }
363
+
364
+  if (!append)
365
+    *begin = first;
366
+
367
+  safe_fclose (&fp);
368
+}
369
+
370
+static void sig_make_entry (char *s, size_t slen, MUTTMENU *menu, int num)
371
+{
372
+  ENTRY *table = (ENTRY *) menu->data;
373
+
374
+  snprintf (s, slen, "%3d %s",
375
+	    num + 1,
376
+	    table[num]->data);
377
+}
378
+
379
+static int sig_menu_search (MUTTMENU *menu, regex_t *re, int num)
380
+{
381
+  return (sig_match (((ENTRY *)menu->data)[num], re) ? 0 : REG_NOMATCH);
382
+}
383
+
384
+static void draw_sig_frame (LIST *s)
385
+{
386
+  int i;
387
+
388
+  for (i = 1; i <= SIG_DISPLAY_LINES; i++)
389
+  {
390
+    if (s)
391
+    {
392
+      mvaddstr (i, 0, s->data);
393
+      s = s->next;
394
+    }
395
+    else
396
+      move (i, 0);
397
+
398
+    clrtoeol ();
399
+  }
400
+
401
+  SETCOLOR (MT_COLOR_STATUS);
402
+  mvaddstr (SIG_DISPLAY_LINES + 1, 0, _("-- Signature"));
403
+  BKGDSET (MT_COLOR_STATUS);
404
+  clrtoeol ();
405
+
406
+  BKGDSET (MT_COLOR_NORMAL);
407
+  SETCOLOR (MT_COLOR_NORMAL);
408
+}
409
+
410
+static void free_sig_list (SIG_LIST **sigs)
411
+{
412
+  SIG_LIST *cur;
413
+
414
+  while (*sigs)
415
+  {
416
+    cur = *sigs;
417
+    *sigs = (*sigs)->next;
418
+    mutt_free_list (&cur->sig);
419
+    safe_free ((void **)&cur);
420
+  }
421
+}
422
+
423
+static void append_signature (char *msg_file, LIST *s)
424
+{
425
+  FILE *fp;
426
+
427
+  if ((fp = safe_fopen (msg_file, "a")) == 0)
428
+    mutt_perror (msg_file);
429
+  else
430
+  {
431
+    if (option (OPTSIGDASHES))
432
+      fputs ("\n-- \n", fp);
433
+
434
+    for (; s; s = s->next)
435
+      fprintf (fp, "%s\n", s->data);
436
+
437
+    mutt_message (_("Signature appended to your mail"));
438
+    safe_fclose (&fp);
439
+  }
440
+}
441
+
442
+static LIST *sig_list_menu (char *file, SIG_LIST *list)
443
+{
444
+  LIST *result = NULL;
445
+  SIG_LIST *sigl;
446
+  MUTTMENU *menu;
447
+  ENTRY *SigTable;
448
+  char helpstr[SHORT_STRING], title[SHORT_STRING];
449
+  int i, done = 0;
450
+
451
+  snprintf (title, sizeof (title), _("Signature : %s"), file);
452
+
453
+  menu = mutt_new_menu ();
454
+  menu->make_entry = sig_make_entry;
455
+  menu->tag = NULL;
456
+  menu->search = sig_menu_search;
457
+  menu->menu = MENU_SIG;
458
+  menu->title = title;
459
+  menu->help = mutt_compile_help (helpstr, sizeof (helpstr),
460
+				  MENU_SIG, SigHelp);
461
+  menu->offset = SIG_DISPLAY_LINES + 2;
462
+  menu->pagelen = LINES - SIG_DISPLAY_LINES - 4;
463
+  
464
+  for (sigl = list; sigl; sigl = sigl->next)
465
+    menu->max++;
466
+
467
+  menu->data = SigTable = (ENTRY *) safe_calloc (menu->max, sizeof (ENTRY));
468
+
469
+  for (i = 0, sigl = list; sigl; i++, sigl = sigl->next)
470
+    SigTable[i] = sigl->sig;
471
+
472
+  while (!done)
473
+  {
474
+    switch (mutt_menuLoop (menu))
475
+    {
476
+      case OP_GENERIC_SELECT_ENTRY:
477
+        result = SigTable[menu->current];
478
+	done = 1;
479
+	break;
480
+
481
+      case OP_PREV_SIG:
482
+	menu_prev_entry (menu);
483
+	draw_sig_frame (SigTable[menu->current]);
484
+	break;
485
+
486
+      case OP_NEXT_SIG:
487
+	menu_next_entry (menu);
488
+	draw_sig_frame (SigTable[menu->current]);
489
+	break;
490
+
491
+      case OP_REDRAW:
492
+	menu->offset = SIG_DISPLAY_LINES + 2;
493
+	menu->pagelen = LINES - SIG_DISPLAY_LINES - 4;
494
+	draw_sig_frame (SigTable[menu->current]);
495
+	break;
496
+
497
+      case OP_RANDOM_SIG:
498
+	menu->current = LRAND () % menu->max;
499
+	draw_sig_frame (SigTable[menu->current]);
500
+	menu->redraw |= REDRAW_MOTION;
501
+	break;
502
+
503
+      case OP_EXIT:
504
+	set_option (OPTNEEDREDRAW);
505
+        done = 1;
506
+        break;
507
+    }
508
+  }
509
+  
510
+  mutt_menuDestroy (&menu);
511
+  safe_free ((void **)&SigTable);
512
+  return result;
513
+}
514
+
515
+static SIG_LIST *sig_search_filter (MUTTMENU *menu, char *path)
516
+{
517
+  regex_t re;
518
+  char buf[STRING];
519
+  SIG_LIST *result = NULL;
520
+  int i;
521
+
522
+  snprintf (buf, sizeof(buf), menu->searchBuf ? menu->searchBuf : "");
523
+  if (mutt_get_field (_("Search for: "), buf,
524
+		      sizeof (buf), M_CLEAR) != 0 || !buf[0])
525
+    return (NULL);
526
+  mutt_str_replace (&menu->searchBuf, buf);
527
+
528
+  if ((i = regcomp (&re, menu->searchBuf, REG_NOSUB | REG_EXTENDED | REG_WORDS
529
+		    | mutt_which_case (menu->searchBuf))) != 0)
530
+  {
531
+    regerror (i, &re, buf, sizeof (buf));
532
+    regfree (&re);
533
+    mutt_error ("%s", buf);
534
+    return (NULL);
535
+  }
536
+
537
+  /* building list of sigs matching the regexp */
538
+  for (i = 0; i < menu->max; i++)
539
+  {
540
+    /* search in every file if none is tagged */
541
+    if (((ENTRY_DIR *) menu->data)[i].tagged || (menu->tagged == 0))
542
+    {
543
+      snprintf (buf, sizeof (buf), "%s/%s", path,
544
+		((ENTRY_DIR *) menu->data)[i].data->name);
545
+      read_sig_file (buf, &result, &re);
546
+    }
547
+  }
548
+
549
+  regfree (&re);
550
+  if (!result)
551
+    mutt_error (_("Not found."));
552
+
553
+  return (result);
554
+}
555
+
556
+/* returns the list of files in this directory */
557
+static SIG_DIR *sig_directory (char *path)
558
+{
559
+  DIR *dp;
560
+  struct dirent *de;
561
+  struct stat s;
562
+  SIG_DIR *first = NULL, *cur = NULL;
563
+  char file[_POSIX_PATH_MAX + SHORT_STRING];
564
+
565
+  if ((dp = opendir (path)) == NULL)
566
+  {
567
+    mutt_perror (path);
568
+    return (NULL);
569
+  }
570
+  
571
+  while ((de = readdir (dp)))
572
+  {
573
+    if ((de->d_name)[0] == '.') /* no hidden files */
574
+      continue;
575
+
576
+    snprintf (file, sizeof (file), "%s/%s", path, de->d_name);
577
+    if (lstat (file, &s) == -1)
578
+      continue;
579
+
580
+    if ((!S_ISREG (s.st_mode)) && (!S_ISLNK (s.st_mode)))
581
+      continue;
582
+
583
+    if (first == NULL)
584
+      cur = first = safe_calloc (1, sizeof (SIG_DIR));
585
+    else
586
+    {
587
+      cur->next = safe_calloc (1, sizeof (SIG_DIR));
588
+      cur = cur->next;
589
+    }
590
+    cur->name = safe_strdup (de->d_name);
591
+    cur->next = NULL;
592
+  }
593
+  closedir (dp);
594
+  return first;
595
+}
596
+
597
+static void sig_dir_make_entry (char *s, size_t slen, MUTTMENU *menu, int num)
598
+{
599
+  ENTRY_DIR *table = (ENTRY_DIR *) menu->data;
600
+
601
+  snprintf (s, slen, "%c %3d - %s",
602
+	    table[num].tagged ? '*' : ' ',
603
+	    num + 1,
604
+	    table[num].data->name);
605
+}
606
+
607
+static int sig_dir_tag (MUTTMENU *menu, int n, int m)
608
+{
609
+  ENTRY_DIR *cur = &((ENTRY_DIR *) menu->data)[n];
610
+  int ot = cur->tagged;
611
+  
612
+  cur->tagged = m >= 0 ? m : !cur->tagged;
613
+  return cur->tagged - ot;
614
+
615
+}
616
+
617
+static int sig_dir_sort (const void *a, const void *b)
618
+{
619
+  ENTRY_DIR *pa = (ENTRY_DIR *) a;
620
+  ENTRY_DIR *pb = (ENTRY_DIR *) b;
621
+
622
+  return (mutt_strcmp (pa->data->name, pb->data->name));
623
+}
624
+
625
+static int sig_dir_menu (char *path, char *msg_file)
626
+{
627
+  MUTTMENU *menu;
628
+  SIG_LIST *sigl;
629
+  LIST *result = NULL;
630
+  ENTRY_DIR *FileTable;
631
+  SIG_DIR *list, *files;
632
+  char buf[STRING], helpstr[SHORT_STRING], title[SHORT_STRING];
633
+  int i, done = 0;
634
+
635
+  if ((list = sig_directory (path)) == NULL)
636
+    return -1;
637
+
638
+  snprintf (title, sizeof (title), "Signature directory : %s", path);
639
+
640
+  menu = mutt_new_menu ();
641
+  menu->make_entry = sig_dir_make_entry;
642
+  menu->search = NULL; /* search within files with sig_search_filter() */
643
+  menu->tag = sig_dir_tag;
644
+  menu->menu = MENU_SIG_DIR;
645
+  menu->title = title;
646
+  menu->help = mutt_compile_help (helpstr, sizeof (helpstr),
647
+				  MENU_SIG_DIR, SigDirHelp);
648
+
649
+  for (files = list; files; files = files->next)
650
+    menu->max++;
651
+
652
+  menu->data = FileTable = (ENTRY_DIR *) safe_calloc (menu->max,
653
+						      sizeof (ENTRY_DIR));
654
+
655
+  for (i = 0, files = list; files; i++, files = files->next)
656
+    FileTable[i].data = files;
657
+
658
+  qsort (FileTable, menu->max, sizeof (ENTRY_DIR), sig_dir_sort);
659
+
660
+  while (!done)
661
+  {
662
+    switch (mutt_menuLoop (menu))
663
+    {
664
+      case OP_SIG_SEARCH:
665
+	sigl = sig_search_filter (menu, path);
666
+
667
+	if (sigl)
668
+	{
669
+	  if ((result = sig_list_menu (_("query results"), sigl)) != NULL)
670
+	  {
671
+	    append_signature (msg_file, result);
672
+	    done = 1;
673
+	  }
674
+
675
+	  MAYBE_REDRAW (menu->redraw);
676
+	  free_sig_list (&sigl);
677
+	}
678
+	break;
679
+
680
+      case OP_GENERIC_SELECT_ENTRY:
681
+	snprintf (buf, sizeof (buf), "%s/%s", path,
682
+		  FileTable[menu->current].data->name);
683
+	sigl = NULL;
684
+	read_sig_file (buf, &sigl, NULL);
685
+
686
+	if (sigl)
687
+	{
688
+	  if ((result = sig_list_menu (buf, sigl)) != NULL)
689
+	  {
690
+	    append_signature (msg_file, result);
691
+	    done = 1;
692
+	  }
693
+
694
+	  MAYBE_REDRAW (menu->redraw);
695
+	  free_sig_list (&sigl);
696
+      	}
697
+	break;
698
+
699
+      case OP_EXIT:
700
+        done = 1;
701
+        break;
702
+    }
703
+  }
704
+
705
+  while (list)
706
+  {
707
+    safe_free ((void **)&list->name);
708
+    files = list;
709
+    list = list->next;
710
+    safe_free ((void **)&files);
711
+  }
712
+  safe_free ((void **)&FileTable);
713
+  mutt_menuDestroy (&menu);
714
+  return 0;
715
+}
716
+
717
+void mutt_signature (char *msg_file)
718
+{
719
+  if (!SigDirectory)
720
+  {
721
+    mutt_error (_("variable 'signatures_directory' is unset"));
722
+    return;
723
+  }
724
+
725
+  if (sig_dir_menu (SigDirectory, msg_file) == -1)
726
+    mutt_error (_("%s: no files in this directory"), SigDirectory);
727
+  else
728
+    set_option (OPTNEEDREDRAW);
729
+}
(-)./files/extra-patch-trash-purge (-16 lines)
Lines 336-357 Link Here
336
diff -pruN -x'*.orig' mutt-1.5.20/pager.c mutt-1.5.20-trash/pager.c
336
diff -pruN -x'*.orig' mutt-1.5.20/pager.c mutt-1.5.20-trash/pager.c
337
--- mutt-1.5.20/pager.c	2009-06-03 16:48:31.000000000 -0400
337
--- mutt-1.5.20/pager.c	2009-06-03 16:48:31.000000000 -0400
338
+++ mutt-1.5.20-trash/pager.c	2009-07-23 09:44:40.000000000 -0400
338
+++ mutt-1.5.20-trash/pager.c	2009-07-23 09:44:40.000000000 -0400
339
@@ -2309,12 +2309,15 @@ search_next:
340
 	MAYBE_REDRAW (redraw);
341
 	break;
342
 
343
+      case OP_PURGE_MESSAGE:
344
       case OP_DELETE:
345
 	CHECK_MODE(IsHeader (extra));
346
 	CHECK_READONLY;
347
 	CHECK_ACL(M_ACL_DELETE, _("delete message"));
348
 
349
 	mutt_set_flag (Context, extra->hdr, M_DELETE, 1);
350
+	mutt_set_flag (Context, extra->hdr, M_PURGED,
351
+		       ch != OP_PURGE_MESSAGE ? 0 : 1);
352
         if (option (OPTDELETEUNTAG))
353
 	  mutt_set_flag (Context, extra->hdr, M_TAG, 0);
354
 	redraw = REDRAW_STATUS | REDRAW_INDEX;
355
@@ -2641,6 +2644,7 @@ search_next:
339
@@ -2641,6 +2644,7 @@ search_next:
356
 	CHECK_ACL(M_ACL_DELETE, _("undelete message"));
340
 	CHECK_ACL(M_ACL_DELETE, _("undelete message"));
357
 
341
 
(-)./files/patch-examples (-11 lines)
Lines 70-86 Link Here
70
 /usr/local/etc.
70
 /usr/local/etc.
71
--- doc/manual.txt.orig	2015-08-30 19:25:51.000000000 +0200
71
--- doc/manual.txt.orig	2015-08-30 19:25:51.000000000 +0200
72
+++ doc/manual.txt	2015-09-10 08:56:32.000000000 +0200
72
+++ doc/manual.txt	2015-09-10 08:56:32.000000000 +0200
73
@@ -3128,8 +3128,8 @@
74
    argument.
75
 
76
    A practical example is the mutt_xtitle script installed in the samples
77
-   subdirectory of the Mutt documentation: it can be used as filter for
78
-   $$ssttaattuuss__ffoorrmmaatt to set the current terminal's title, if supported.
79
+   share/examples/mutt subdirectory of the Mutt documentation: it can be used as
80
+   filter for $$ssttaattuuss__ffoorrmmaatt to set the current terminal's title, if supported.
81
 
82
 29.4. Padding
83
 
84
@@ -7736,8 +7736,8 @@
73
@@ -7736,8 +7736,8 @@
85
 
74
 
86
    For examples on how to configure these formats for the various versions
75
    For examples on how to configure these formats for the various versions

Return to bug 208641