FreeBSD Bugzilla – Attachment 109660 Details for
Bug 150703
maintainer-update of mail/mutt-devel
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 84.52 KB, created by
Udo.Schweigert
on 2010-09-18 16:00:06 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Udo.Schweigert
Created:
2010-09-18 16:00:06 UTC
Size:
84.52 KB
patch
obsolete
>diff -ru /usr/ports/mail/mutt-devel/Makefile ./Makefile >--- /usr/ports/mail/mutt-devel/Makefile 2010-09-16 06:06:34.000000000 +0200 >+++ ./Makefile 2010-09-17 16:48:55.000000000 +0200 >@@ -117,8 +117,8 @@ > # > > PORTNAME= mutt-devel >-PORTVERSION= 1.5.20 >-PORTREVISION?= 7 >+PORTVERSION= 1.5.21 >+PORTREVISION?= 0 > CATEGORIES+= mail ipv6 > .if defined(WITH_MUTT_NNTP) > CATEGORIES+= news >@@ -145,9 +145,7 @@ > ftp://ftp3.mutt.org.ua/pub/mutt/mutt-${VVV_PATCH_VERSION}/:vvv \ > http://home.woolridge.ca/mutt/patches/:dw \ > http://www.spinnaker.de/mutt/compressed/:rr \ >- http://www.emaillab.org/mutt/${AC_PATCH_VERSION}/:jp \ >- http://vc.org.ua/mutt/:vc \ >- http://yz.kiev.ua/mutt/:vc >+ http://www.emaillab.org/mutt/${AC_PATCH_VERSION}/:jp > > MAINTAINER?= udo.schweigert@siemens.com > COMMENT?= The Mongrel of Mail User Agents (development version) >@@ -178,7 +176,6 @@ > > DW_PATCH_VERSION= 1.5.6 > AC_PATCH_VERSION= 1.5.9 >-VC_PATCH_VERSION= 1.5.16 > DW_MBOX_PATCH_VERSION= 1.5.18 > .if !defined(VVV_PATCH_VERSION) > VVV_PATCH_VERSION= ${PORTVERSION} >@@ -195,9 +192,6 @@ > .if !defined(AC_PATCH_VERSION) > AC_PATCH_VERSION= ${PORTVERSION} > .endif >-.if !defined(VC_PATCH_VERSION) >-VC_PATCH_VERSION= ${PORTVERSION} >-.endif > .if defined(WITH_MUTT_MAILDIR_HEADER_CACHE) > WITH_MUTT_IMAP_HEADER_CACHE= yes > .endif >@@ -438,7 +432,8 @@ > .endif > .endif > .if defined(WITH_MUTT_GREETING_PATCH) >-PATCHFILES+= mutt-${VC_PATCH_VERSION}.vc.greeting:vc >+post-patch:: >+ @${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-greeting > .endif > .if defined(WITH_MUTT_TRASH_PATCH) > post-patch:: >@@ -446,7 +441,7 @@ > .endif > > WRKSRC= ${WRKDIR}/${DISTNAME:S/i$//} >-MAN1= mutt.1 mutt_dotlock.1 flea.1 muttbug.1 >+MAN1= mutt.1 mutt_dotlock.1 flea.1 muttbug.1 smime_keys.1 > MAN5= muttrc.5 > .if !defined(WITHOUT_MUTT_MAILBOX_MANPAGES) > MAN5+= mbox.5 mmdf.5 >diff -ru /usr/ports/mail/mutt-devel/distinfo ./distinfo >--- /usr/ports/mail/mutt-devel/distinfo 2009-06-23 00:52:30.000000000 +0200 >+++ ./distinfo 2010-09-17 17:01:00.000000000 +0200 >@@ -1,24 +1,15 @@ >-MD5 (mutt/mutt-1.5.20.tar.gz) = 027cdd9959203de0c3c64149a7ee351c >-SHA256 (mutt/mutt-1.5.20.tar.gz) = 9579fc079d74ff5c89223ff09df402ef4e508ba8ca925c49e74aa09c02a9a796 >-SIZE (mutt/mutt-1.5.20.tar.gz) = 3635047 >-MD5 (mutt/patch-1.5.20.rr.compressed.gz) = 5e608027bda1fddc2bc38c03a560f0a9 >-SHA256 (mutt/patch-1.5.20.rr.compressed.gz) = 87a7eed23ee234fcb3564e13bb034a3bfe858fb69677c7f8e7321446acf01034 >-SIZE (mutt/patch-1.5.20.rr.compressed.gz) = 10190 >-MD5 (mutt/patch-1.5.20.vvv.nntp.gz) = 80355166f8ae9bff064124f2d2e6870f >-SHA256 (mutt/patch-1.5.20.vvv.nntp.gz) = ea199ed303519ed816bded493cc4fe2985b497ec29b1c1c201f1428b1354260b >-SIZE (mutt/patch-1.5.20.vvv.nntp.gz) = 55449 >-MD5 (mutt/patch-1.5.4.cd.ifdef.1) = a545036cdb55519154d0b35465f52daa >-SHA256 (mutt/patch-1.5.4.cd.ifdef.1) = 7d11892bcc688bbc82b5996ca0fda2d4446d8e928bec50b2731f8a3a5d9be373 >-SIZE (mutt/patch-1.5.4.cd.ifdef.1) = 3545 >-MD5 (mutt/patch-1.5.20.vvv.initials.gz) = c71ebc64f20f516f45168530d57f6c21 >-SHA256 (mutt/patch-1.5.20.vvv.initials.gz) = fc2cf1dadfab02545116fc70855cfe14f4efd8e1a32b9a6c366fc5e09bdafd23 >-SIZE (mutt/patch-1.5.20.vvv.initials.gz) = 690 >-MD5 (mutt/patch-1.5.20.vvv.quote.gz) = 1d6213598d354942006f17b2c46720f2 >-SHA256 (mutt/patch-1.5.20.vvv.quote.gz) = 7f3ea7999f00738c2dab0e67d69d76d354d14d0615c00784233e6d1149cb749d >-SIZE (mutt/patch-1.5.20.vvv.quote.gz) = 1772 >-MD5 (mutt/p0-patch-1.5.18.dw.mbox-hook.1) = ae70a6668e297bdc804b2673221b4727 >-SHA256 (mutt/p0-patch-1.5.18.dw.mbox-hook.1) = 12b9f41476850a5e2eed2334be9326e4905e8a6d786740689b6966a5d285070c >-SIZE (mutt/p0-patch-1.5.18.dw.mbox-hook.1) = 6812 >-MD5 (mutt/mutt-1.5.16.vc.greeting) = 4bd9beeb74d075e4418e86e8ed887aa0 >-SHA256 (mutt/mutt-1.5.16.vc.greeting) = cf05aeab5f1813864aa72b68f59a579c46dacf2fbd8e5fd064b920012320b986 >-SIZE (mutt/mutt-1.5.16.vc.greeting) = 4526 >+MD5 (mutt/mutt-1.5.21.tar.gz) = a29db8f1d51e2f10c070bf88e8a553fd >+SHA256 (mutt/mutt-1.5.21.tar.gz) = 2141f36e8d0f4f71c9ca6780001e7cc679fe313e643953fc07f001223e67c4a0 >+SIZE (mutt/mutt-1.5.21.tar.gz) = 3716886 >+MD5 (mutt/patch-1.5.21.rr.compressed.gz) = 0632fd94c96b3e452144b730e3cf0fd3 >+SHA256 (mutt/patch-1.5.21.rr.compressed.gz) = 5056b181222c4322667fd99a6314e80a4a8b4613357364d9deddef626136b4d9 >+SIZE (mutt/patch-1.5.21.rr.compressed.gz) = 10133 >+MD5 (mutt/patch-1.5.21.vvv.nntp.gz) = afcf40f7e53a016b953cbf6af27b3cd8 >+SHA256 (mutt/patch-1.5.21.vvv.nntp.gz) = 514cb4c3404bb68fef08781c17be41c6cd1251d05442db4105c6258f0b9d4928 >+SIZE (mutt/patch-1.5.21.vvv.nntp.gz) = 55611 >+MD5 (mutt/patch-1.5.21.vvv.initials.gz) = 9444edd98d52e6f6a4fa17bcc3160a93 >+SHA256 (mutt/patch-1.5.21.vvv.initials.gz) = ecce3643b04d1aced7085bca506896298bd56d991a5d1af057922c8358abf141 >+SIZE (mutt/patch-1.5.21.vvv.initials.gz) = 691 >+MD5 (mutt/patch-1.5.21.vvv.quote.gz) = 93185b8fdf8d12f13a7a65136204193c >+SHA256 (mutt/patch-1.5.21.vvv.quote.gz) = b0613d305932b31eaf005ee0740558d46561a6d7a333c97a00d34a1d0c1ef843 >+SIZE (mutt/patch-1.5.21.vvv.quote.gz) = 1280 >diff -ru /usr/ports/mail/mutt-devel/files/extra-patch-doc-xml ./files/extra-patch-doc-xml >--- /usr/ports/mail/mutt-devel/files/extra-patch-doc-xml 2007-03-06 19:34:16.000000000 +0100 >+++ ./files/extra-patch-doc-xml 2010-09-17 16:33:17.000000000 +0200 >@@ -1,11 +1,11 @@ >---- doc/Makefile.am.orig2 Tue Mar 6 17:40:41 2007 >-+++ doc/Makefile.am Tue Mar 6 17:42:51 2007 >-@@ -42,7 +42,7 @@ >- all: ../makedoc$(EXEEXT) >- $(MAKE) makedoc-all >+--- doc/Makefile.am.orig 2010-09-17 16:23:30.000000000 +0200 >++++ doc/Makefile.am 2010-09-17 16:25:01.000000000 +0200 >+@@ -47,7 +47,7 @@ > >--makedoc-all: mutt.1 muttrc.man >-+makedoc-all: mutt.1 muttrc.man manual.html stamp-doc-chunked manual.txt >+ all: makedoc-all >+ >+-makedoc-all: mutt.1 smime_keys.1 muttrc.man >++makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-chunked manual.txt > > install-data-local: makedoc-all instdoc > $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 >diff -ru /usr/ports/mail/mutt-devel/files/extra-patch-greeting ./files/extra-patch-greeting >--- /usr/ports/mail/mutt-devel/files/extra-patch-greeting 1970-01-01 01:00:00.000000000 +0100 >+++ ./files/extra-patch-greeting 2010-09-17 16:55:39.000000000 +0200 >@@ -0,0 +1,160 @@ >+diff -urN mutt-1.5.19/globals.h mutt-1.5.19-vc/globals.h >+--- mutt-1.5.19/globals.h 2009-01-04 01:27:10.000000000 +0200 >++++ mutt-1.5.19-vc/globals.h 2009-02-09 19:30:31.000000000 +0200 >+@@ -52,6 +52,7 @@ >+ WHERE char *FolderFormat; >+ WHERE char *ForwFmt; >+ WHERE char *Fqdn; >++WHERE char *Greeting; >+ WHERE char *HdrFmt; >+ WHERE char *HistFile; >+ WHERE char *Homedir; >+diff -urN mutt-1.5.19/hdrline.c mutt-1.5.19-vc/hdrline.c >+--- mutt-1.5.19/hdrline.c 2009-01-05 21:20:53.000000000 +0200 >++++ mutt-1.5.19-vc/hdrline.c 2009-02-09 19:30:31.000000000 +0200 >+@@ -741,3 +741,62 @@ >+ { >+ mutt_FormatString (dst, dstlen, 0, s, hdr_format_str, (unsigned long) hfi, flags); >+ } >++ >++/* %n = recipient name >++ * %u = user (login) name of recipient >++ * %v = first name of recipient */ >++const char * >++greeting_string (char *dest, >++ size_t destlen, >++ size_t col, >++ char op, >++ const char *src, >++ const char *prefix, >++ const char *ifstring, >++ const char *elsestring, >++ unsigned long data, >++ format_flag flags) >++{ >++ HEADER *hdr = (HEADER *)data; >++ char *p, buf2[SHORT_STRING]; >++ >++ dest[0] = '\0'; >++ switch (op) >++ { >++ case 'n': >++ mutt_format_s (dest, destlen, prefix, mutt_get_name (hdr->env->to)); >++ break; >++ >++ case 'u': >++ if (hdr->env->to) >++ { >++ strfcpy (buf2, mutt_addr_for_display (hdr->env->to), sizeof (buf2)); >++ if ((p = strpbrk (buf2, "%@"))) >++ *p = '\0'; >++ } >++ else >++ buf2[0] = '\0'; >++ mutt_format_s (dest, destlen, prefix, buf2); >++ break; >++ >++ case 'v': >++ if (hdr->env->to) >++ mutt_format_s (buf2, sizeof (buf2), prefix, mutt_get_name (hdr->env->to)); >++ else if (hdr->env->cc) >++ mutt_format_s (buf2, sizeof (buf2), prefix, mutt_get_name (hdr->env->cc)); >++ else >++ *buf2 = '\0'; >++ if ((p = strpbrk (buf2, " %@"))) >++ *p = '\0'; >++ mutt_format_s (dest, destlen, prefix, buf2); >++ break; >++ >++ default: >++ snprintf (dest, destlen, "%%%s%c", prefix, op); >++ break; >++ } >++ if (flags & M_FORMAT_OPTIONAL) >++ mutt_FormatString (dest, destlen, col, elsestring, greeting_string, data, flags); >++ >++ return(src); >++} >+diff -urN mutt-1.5.19/init.h mutt-1.5.19-vc/init.h >+--- mutt-1.5.19/init.h 2009-01-05 21:20:53.000000000 +0200 >++++ mutt-1.5.19-vc/init.h 2009-02-09 19:30:31.000000000 +0200 >+@@ -745,6 +745,22 @@ >+ ** .pp >+ ** This setting defaults to the contents of the environment variable \fC$$$EMAIL\fP. >+ */ >++ { "greeting", DT_STR, R_NONE, UL &Greeting, UL "" }, >++ /* >++ ** .pp >++ ** When set, this is the string that will precede every message as a >++ ** greeting phrase to the recipients. >++ ** .pp >++ ** ``Format strings'' are similar to the strings used in the ``C'' >++ ** function printf to format output (see the man page for more detail). >++ ** The following sequences are defined in Mutt: >++ ** .pp >++ ** .dl >++ ** .dt %n .dd recipient name >++ ** .dt %u .dd user (login) name of recipient >++ ** .dt %v .dd first name of recipient >++ ** .de >++ */ >+ { "gecos_mask", DT_RX, R_NONE, UL &GecosMask, UL "^[^,]*" }, >+ /* >+ ** .pp >+diff -urN mutt-1.5.19/PATCHES mutt-1.5.19-vc/PATCHES >+--- mutt-1.5.19/PATCHES 2008-03-19 22:07:06.000000000 +0200 >++++ mutt-1.5.19-vc/PATCHES 2009-02-09 19:30:31.000000000 +0200 >+@@ -0,0 +1 @@ >++vc.greeting >+diff -urN mutt-1.5.19/protos.h mutt-1.5.19-vc/protos.h >+--- mutt-1.5.19/protos.h 2009-01-05 21:20:53.000000000 +0200 >++++ mutt-1.5.19-vc/protos.h 2009-02-09 19:32:15.000000000 +0200 >+@@ -526,6 +526,9 @@ >+ void ci_bounce_message (HEADER *, int *); >+ int ci_send_message (int, HEADER *, char *, CONTEXT *, HEADER *); >+ >++const char *greeting_string (char *, size_t, size_t, char, const char *, const char *, >++ const char *, const char *, unsigned long, format_flag); >++ >+ /* prototypes for compatibility functions */ >+ >+ #ifndef HAVE_SETENV >+diff -urN mutt-1.5.19/send.c mutt-1.5.19-vc/send.c >+--- mutt-1.5.19/send.c.orig 2010-09-17 16:49:09.000000000 +0200 >++++ mutt-1.5.19-vc/send.c 2010-09-17 16:53:15.000000000 +0200 >+@@ -469,6 +469,18 @@ >+ } >+ } >+ >++void mutt_make_greeting (HEADER *hdr, FILE *out, int flags) >++{ >++ char buffer[STRING]; >++ if (Greeting) >++ { >++ mutt_FormatString(buffer, sizeof(buffer), 0, Greeting, greeting_string, >++ (unsigned long) hdr, flags); >++ fputs(buffer, out); >++ fputc ('\n', out); >++ } >++} >++ >+ void mutt_make_post_indent (CONTEXT *ctx, HEADER *cur, FILE *out) >+ { >+ char buffer[STRING]; >+@@ -1003,7 +1015,6 @@ >+ } >+ } >+ >+- >+ /* look through the recipients of the message we are replying to, and if >+ we find an address that matches $alternates, we use that as the default >+ from field */ >+@@ -1439,6 +1450,8 @@ >+ if (option (OPTHDRS)) >+ process_user_header (msg->env); >+ >++ mutt_make_greeting(msg, tempfp, flags); >++ >+ if (flags & SENDBATCH) >+ mutt_copy_stream (stdin, tempfp); >+ >diff -ru /usr/ports/mail/mutt-devel/files/extra-patch-sidebar ./files/extra-patch-sidebar >--- /usr/ports/mail/mutt-devel/files/extra-patch-sidebar 2009-06-23 00:52:30.000000000 +0200 >+++ ./files/extra-patch-sidebar 2010-09-18 15:32:01.000000000 +0200 >@@ -1,252 +1,220 @@ >-*** mutt-1.5.20-orig/buffy.c 2009-06-02 12:16:26.000000000 -0500 >---- mutt-1.5.20-patched/buffy.c 2009-06-19 22:37:02.000000000 -0500 >-*************** >-*** 159,164 **** >---- 159,207 ---- >- } >- } >- >-+ static int buffy_compare_name(const void *a, const void *b) { >-+ const BUFFY *b1 = * (BUFFY * const *) a; >-+ const BUFFY *b2 = * (BUFFY * const *) b; >-+ >-+ return mutt_strcoll(b1->path, b2->path); >-+ } >-+ >-+ static BUFFY *buffy_sort(BUFFY *b) >-+ { >-+ BUFFY *tmp = b; >-+ int buffycount = 0; >-+ BUFFY **ary; >-+ int i; >-+ >-+ if (!option(OPTSIDEBARSORT)) >-+ return b; >-+ >-+ for (; tmp != NULL; tmp = tmp->next) >-+ buffycount++; >-+ >-+ ary = (BUFFY **) safe_calloc(buffycount, sizeof (*ary)); >-+ >-+ tmp = b; >-+ for (i = 0; tmp != NULL; tmp = tmp->next, i++) { >-+ ary[i] = tmp; >-+ } >-+ >-+ qsort(ary, buffycount, sizeof(*ary), buffy_compare_name); >-+ >-+ for (i = 0; i < buffycount - 1; i++) { >-+ ary[i]->next = ary[i+1]; >-+ } >-+ ary[buffycount - 1]->next = NULL; >-+ for (i = 1; i < buffycount; i++) { >-+ ary[i]->prev = ary[i-1]; >-+ } >-+ ary[0]->prev = NULL; >-+ >-+ tmp = ary[0]; >-+ free(ary); >-+ return tmp; >-+ } >-+ >- BUFFY *mutt_find_mailbox (const char *path) >- { >- BUFFY *tmp = NULL; >-*************** >-*** 271,276 **** >---- 314,320 ---- >- else >- (*tmp)->size = 0; >- } >-+ Incoming = buffy_sort(Incoming); >- return 0; >- } >- >-*************** >-*** 290,295 **** >---- 334,340 ---- >- char path[_POSIX_PATH_MAX]; >- struct stat contex_sb; >- time_t t; >-+ CONTEXT *ctx; >- >- sb.st_size=0; >- contex_sb.st_dev=0; >-*************** >-*** 329,334 **** >---- 374,381 ---- >- >- for (tmp = Incoming; tmp; tmp = tmp->next) >- { >-+ if ( tmp->new == 1 ) >+--- orig/buffy.c.orig 2010-09-18 14:12:40.000000000 +0200 >++++ new/buffy.c 2010-09-18 14:17:36.000000000 +0200 >+@@ -161,6 +161,49 @@ >+ } >+ } >+ >++static int buffy_compare_name(const void *a, const void *b) { >++ const BUFFY *b1 = * (BUFFY * const *) a; >++ const BUFFY *b2 = * (BUFFY * const *) b; >++ >++ return mutt_strcoll(b1->path, b2->path); >++} >++ >++static BUFFY *buffy_sort(BUFFY *b) >++{ >++ BUFFY *tmp = b; >++ int buffycount = 0; >++ BUFFY **ary; >++ int i; >++ >++ if (!option(OPTSIDEBARSORT)) >++ return b; >++ >++ for (; tmp != NULL; tmp = tmp->next) >++ buffycount++; >++ >++ ary = (BUFFY **) safe_calloc(buffycount, sizeof (*ary)); >++ >++ tmp = b; >++ for (i = 0; tmp != NULL; tmp = tmp->next, i++) { >++ ary[i] = tmp; >++ } >++ >++ qsort(ary, buffycount, sizeof(*ary), buffy_compare_name); >++ >++ for (i = 0; i < buffycount - 1; i++) { >++ ary[i]->next = ary[i+1]; >++ } >++ ary[buffycount - 1]->next = NULL; >++ for (i = 1; i < buffycount; i++) { >++ ary[i]->prev = ary[i-1]; >++ } >++ ary[0]->prev = NULL; >++ >++ tmp = ary[0]; >++ free(ary); >++ return tmp; >++} >++ >+ BUFFY *mutt_find_mailbox (const char *path) >+ { >+ BUFFY *tmp = NULL; >+@@ -282,6 +325,7 @@ >+ else >+ (*tmp)->size = 0; >+ } >++ Incoming = buffy_sort(Incoming); >+ return 0; >+ } >+ >+@@ -371,12 +415,17 @@ >+ return rc; >+ } >+ >++#define STAT_CHECK_SIZE (sb.st_size > tmp->size) >++#define STAT_CHECK_TIME (sb.st_mtime > sb.st_atime || (tmp->newly_created && sb.st_ctime == sb.st_mtime && sb.st_ctime == sb.st_atime)) >++#define STAT_CHECK (option(OPTCHECKMBOXSIZE) ? STAT_CHECK_SIZE : STAT_CHECK_TIME) >++ >+ int mutt_buffy_check (int force) >+ { >+ BUFFY *tmp; >+ struct stat sb; >+ struct stat contex_sb; >+ time_t t; >++ CONTEXT *ctx; >+ >+ sb.st_size=0; >+ contex_sb.st_dev=0; >+@@ -416,6 +465,8 @@ >+ >+ for (tmp = Incoming; tmp; tmp = tmp->next) >+ { >++ if ( tmp->new == 1 ) > + tmp->has_new = 1; >- #ifdef USE_IMAP >- if (tmp->magic != M_IMAP) >- #endif >-*************** >-*** 385,394 **** >- case M_MBOX: >- case M_MMDF: >- >-! if (STAT_CHECK) >- { >-! BuffyCount++; >-! tmp->new = 1; >- } >- else if (option(OPTCHECKMBOXSIZE)) >- { >---- 432,458 ---- >- case M_MBOX: >- case M_MMDF: >- >-! { >-! if (STAT_CHECK || tmp->msgcount == 0) >- { >-! BUFFY b = *tmp; >-! int msgcount = 0; >-! int msg_unread = 0; >-! /* parse the mailbox, to see how much mail there is */ >-! ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); >-! if(ctx) >-! { >-! msgcount = ctx->msgcount; >-! msg_unread = ctx->unread; >-! mx_close_mailbox(ctx, 0); >-! } >-! *tmp = b; >-! tmp->msgcount = msgcount; >-! tmp->msg_unread = msg_unread; >-! if(STAT_CHECK) { >-! tmp->has_new = tmp->new = 1; >-! BuffyCount++; >-! } >- } >- else if (option(OPTCHECKMBOXSIZE)) >- { >-*************** >-*** 398,432 **** >- if (tmp->newly_created && >- (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) >- tmp->newly_created = 0; >-! >- break; >- >- case M_MAILDIR: >- >- snprintf (path, sizeof (path), "%s/new", tmp->path); >- if ((dirp = opendir (path)) == NULL) >- { >- tmp->magic = 0; >- break; >- } >- while ((de = readdir (dirp)) != NULL) >- { >- char *p; >- if (*de->d_name != '.' && >- (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) >- { >-! /* one new and undeleted message is enough */ >-! BuffyCount++; >-! tmp->new = 1; >-! break; >- } >- } >- closedir (dirp); >- break; >- >- case M_MH: >- if ((tmp->new = mh_buffy (tmp->path)) > 0) >- BuffyCount++; >- break; >- } >- } >---- 462,547 ---- >- if (tmp->newly_created && >- (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) >- tmp->newly_created = 0; >-! } >- break; >- >- case M_MAILDIR: >- >-+ /* count new message */ >- snprintf (path, sizeof (path), "%s/new", tmp->path); >- if ((dirp = opendir (path)) == NULL) >- { >- tmp->magic = 0; >- break; >- } >-+ tmp->msgcount = 0; >-+ tmp->msg_unread = 0; >-+ tmp->msg_flagged = 0; >- while ((de = readdir (dirp)) != NULL) >- { >- char *p; >- if (*de->d_name != '.' && >- (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) >- { >-! tmp->has_new = tmp->new = 1; >-! tmp->msgcount++; >-! tmp->msg_unread++; >-! } >-! } >-! if(tmp->msg_unread) >-! BuffyCount++; >-! >-! closedir (dirp); >-! >-! /* >-! * count read messages (for folderlist (sidebar) we also need to count >-! * messages in cur so that we the total number of messages >-! */ >-! snprintf (path, sizeof (path), "%s/cur", tmp->path); >-! if ((dirp = opendir (path)) == NULL) >-! { >-! tmp->magic = 0; >-! break; >-! } >-! while ((de = readdir (dirp)) != NULL) >-! { >-! char *p; >-! if (*de->d_name != '.') { >-! if ((p = strstr (de->d_name, ":2,"))) { >-! if (!strchr (p + 3, 'T')) { >-! tmp->msgcount++; >-! if ( !strchr (p + 3, 'S')) >-! tmp->msg_unread++; >-! if (strchr(p + 3, 'F')) >-! tmp->msg_flagged++; >-! } >-! } else >-! tmp->msgcount++; >- } >- } >- closedir (dirp); >- break; >- >- case M_MH: >-+ { >-+ DIR *dp; >-+ struct dirent *de; >- if ((tmp->new = mh_buffy (tmp->path)) > 0) >- BuffyCount++; >-+ >-+ if ((dp = opendir (path)) == NULL) >-+ break; >-+ tmp->msgcount = 0; >-+ while ((de = readdir (dp))) >-+ { >-+ if (mh_valid_message (de->d_name)) >-+ { >-+ tmp->msgcount++; >-+ tmp->has_new = tmp->new = 1; >-+ } >-+ } >-+ closedir (dp); >-+ } >- break; >- } >- } >+ if (tmp->magic != M_IMAP) >+ { >+ tmp->new = 0; >+@@ -455,18 +506,122 @@ >+ { >+ case M_MBOX: >+ case M_MMDF: >+- if (buffy_mbox_hasnew (tmp, &sb) > 0) >+- BuffyCount++; >+- break; >++ { >++ if (STAT_CHECK || tmp->msgcount == 0) >++ { >++ BUFFY b = *tmp; >++ int msgcount = 0; >++ int msg_unread = 0; >++ /* parse the mailbox, to see how much mail there is */ >++ ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); >++ if(ctx) >++ { >++ msgcount = ctx->msgcount; >++ msg_unread = ctx->unread; >++ mx_close_mailbox(ctx, 0); >++ } >++ *tmp = b; >++ tmp->msgcount = msgcount; >++ tmp->msg_unread = msg_unread; >++ if(STAT_CHECK) { >++ tmp->has_new = tmp->new = 1; >++ BuffyCount++; >++ } >++ } >++ else if (option(OPTCHECKMBOXSIZE)) >++ { >++ /* some other program has deleted mail from the folder */ >++ tmp->size = (off_t) sb.st_size; >++ } >++ if (tmp->newly_created && >++ (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) >++ tmp->newly_created = 0; >++ } >++ break; >++ >+ >+ case M_MAILDIR: >+- if (buffy_maildir_hasnew (tmp) > 0) >+- BuffyCount++; >++ { >++ char path[_POSIX_PATH_MAX]; >++ DIR *dirp; >++ struct dirent *de; >++ /* count new message */ >++ snprintf (path, sizeof (path), "%s/new", tmp->path); >++ if ((dirp = opendir (path)) == NULL) >++ { >++ tmp->magic = 0; >++ break; >++ } >++ tmp->msgcount = 0; >++ tmp->msg_unread = 0; >++ tmp->msg_flagged = 0; >++ while ((de = readdir (dirp)) != NULL) >++ { >++ char *p; >++ if (*de->d_name != '.' && >++ (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) >++ { >++ tmp->has_new = tmp->new = 1; >++ tmp->msgcount++; >++ tmp->msg_unread++; >++ } >++ } >++ if(tmp->msg_unread) >++ BuffyCount++; >++ >++ closedir (dirp); >++ >++ /* >++ * count read messages (for folderlist (sidebar) we also need to count >++ * messages in cur so that we the total number of messages >++ */ >++ snprintf (path, sizeof (path), "%s/cur", tmp->path); >++ if ((dirp = opendir (path)) == NULL) >++ { >++ tmp->magic = 0; >++ break; >++ } >++ while ((de = readdir (dirp)) != NULL) >++ { >++ char *p; >++ if (*de->d_name != '.') { >++ if ((p = strstr (de->d_name, ":2,"))) { >++ if (!strchr (p + 3, 'T')) { >++ tmp->msgcount++; >++ if ( !strchr (p + 3, 'S')) >++ tmp->msg_unread++; >++ if (strchr(p + 3, 'F')) >++ tmp->msg_flagged++; >++ } >++ } else >++ tmp->msgcount++; >++ } >++ } >++ closedir (dirp); >++ } >+ break; >+ >+ case M_MH: >+- if ((tmp->new = mh_buffy (tmp->path)) > 0) >+- BuffyCount++; >++ { >++ DIR *dp; >++ char path[_POSIX_PATH_MAX]; >++ struct dirent *de; >++ if ((tmp->new = mh_buffy (tmp->path)) > 0) >++ BuffyCount++; >++ >++ if ((dp = opendir (path)) == NULL) >++ break; >++ tmp->msgcount = 0; >++ while ((de = readdir (dp))) >++ { >++ if (mh_valid_message (de->d_name)) >++ { >++ tmp->msgcount++; >++ tmp->has_new = tmp->new = 1; >++ } >++ } >++ closedir (dp); >++ } >+ break; >+ } >+ } > *** mutt-1.5.20-orig/buffy.h 2009-04-30 00:36:16.000000000 -0500 > --- mutt-1.5.20-patched/buffy.h 2009-06-19 22:07:04.000000000 -0500 > *************** >@@ -277,236 +245,6 @@ > { NULL, 0 } > }; > >-*** mutt-1.5.20-orig/compose.c 2009-03-31 01:52:43.000000000 -0500 >---- mutt-1.5.20-patched/compose.c 2009-06-19 22:07:04.000000000 -0500 >-*************** >-*** 72,78 **** >- >- #define HDR_XOFFSET 10 >- #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ >-! #define W (COLS - HDR_XOFFSET) >- >- static char *Prompts[] = >- { >---- 72,78 ---- >- >- #define HDR_XOFFSET 10 >- #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ >-! #define W (COLS - HDR_XOFFSET - SidebarWidth) >- >- static char *Prompts[] = >- { >-*************** >-*** 115,130 **** >- if ((WithCrypto & APPLICATION_PGP) && (WithCrypto & APPLICATION_SMIME)) >- { >- if (!msg->security) >-! mvaddstr (HDR_CRYPT, 0, "Security: "); >- else if (msg->security & APPLICATION_SMIME) >-! mvaddstr (HDR_CRYPT, 0, " S/MIME: "); >- else if (msg->security & APPLICATION_PGP) >-! mvaddstr (HDR_CRYPT, 0, " PGP: "); >- } >- else if ((WithCrypto & APPLICATION_SMIME)) >-! mvaddstr (HDR_CRYPT, 0, " S/MIME: "); >- else if ((WithCrypto & APPLICATION_PGP)) >-! mvaddstr (HDR_CRYPT, 0, " PGP: "); >- else >- return; >- >---- 115,130 ---- >- if ((WithCrypto & APPLICATION_PGP) && (WithCrypto & APPLICATION_SMIME)) >- { >- if (!msg->security) >-! mvaddstr (HDR_CRYPT, SidebarWidth, "Security: "); >- else if (msg->security & APPLICATION_SMIME) >-! mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: "); >- else if (msg->security & APPLICATION_PGP) >-! mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: "); >- } >- else if ((WithCrypto & APPLICATION_SMIME)) >-! mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: "); >- else if ((WithCrypto & APPLICATION_PGP)) >-! mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: "); >- else >- return; >- >-*************** >-*** 148,154 **** >- } >- clrtoeol (); >- >-! move (HDR_CRYPTINFO, 0); >- clrtoeol (); >- if ((WithCrypto & APPLICATION_PGP) >- && msg->security & APPLICATION_PGP && msg->security & SIGN) >---- 148,154 ---- >- } >- clrtoeol (); >- >-! move (HDR_CRYPTINFO, SidebarWidth); >- clrtoeol (); >- if ((WithCrypto & APPLICATION_PGP) >- && msg->security & APPLICATION_PGP && msg->security & SIGN) >-*************** >-*** 164,170 **** >- && (msg->security & ENCRYPT) >- && SmimeCryptAlg >- && *SmimeCryptAlg) { >-! mvprintw (HDR_CRYPTINFO, 40, "%s%s", _("Encrypt with: "), >- NONULL(SmimeCryptAlg)); >- off = 20; >- } >---- 164,170 ---- >- && (msg->security & ENCRYPT) >- && SmimeCryptAlg >- && *SmimeCryptAlg) { >-! mvprintw (HDR_CRYPTINFO, SidebarWidth + 40, "%s%s", _("Encrypt with: "), >- NONULL(SmimeCryptAlg)); >- off = 20; >- } >-*************** >-*** 178,184 **** >- int c; >- char *t; >- >-! mvaddstr (HDR_MIX, 0, " Mix: "); >- >- if (!chain) >- { >---- 178,184 ---- >- int c; >- char *t; >- >-! mvaddstr (HDR_MIX, SidebarWidth, " Mix: "); >- >- if (!chain) >- { >-*************** >-*** 193,199 **** >- if (t && t[0] == '0' && t[1] == '\0') >- t = "<random>"; >- >-! if (c + mutt_strlen (t) + 2 >= COLS) >- break; >- >- addstr (NONULL(t)); >---- 193,199 ---- >- if (t && t[0] == '0' && t[1] == '\0') >- t = "<random>"; >- >-! if (c + mutt_strlen (t) + 2 >= COLS - SidebarWidth) >- break; >- >- addstr (NONULL(t)); >-*************** >-*** 245,251 **** >- >- buf[0] = 0; >- rfc822_write_address (buf, sizeof (buf), addr, 1); >-! mvprintw (line, 0, TITLE_FMT, Prompts[line - 1]); >- mutt_paddstr (W, buf); >- } >- >---- 245,251 ---- >- >- buf[0] = 0; >- rfc822_write_address (buf, sizeof (buf), addr, 1); >-! mvprintw (line, SidebarWidth, TITLE_FMT, Prompts[line - 1]); >- mutt_paddstr (W, buf); >- } >- >-*************** >-*** 255,264 **** >- draw_envelope_addr (HDR_TO, msg->env->to); >- draw_envelope_addr (HDR_CC, msg->env->cc); >- draw_envelope_addr (HDR_BCC, msg->env->bcc); >-! mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); >- mutt_paddstr (W, NONULL (msg->env->subject)); >- draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to); >-! mvprintw (HDR_FCC, 0, TITLE_FMT, Prompts[HDR_FCC - 1]); >- mutt_paddstr (W, fcc); >- >- if (WithCrypto) >---- 255,264 ---- >- draw_envelope_addr (HDR_TO, msg->env->to); >- draw_envelope_addr (HDR_CC, msg->env->cc); >- draw_envelope_addr (HDR_BCC, msg->env->bcc); >-! mvprintw (HDR_SUBJECT, SidebarWidth, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); >- mutt_paddstr (W, NONULL (msg->env->subject)); >- draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to); >-! mvprintw (HDR_FCC, SidebarWidth, TITLE_FMT, Prompts[HDR_FCC - 1]); >- mutt_paddstr (W, fcc); >- >- if (WithCrypto) >-*************** >-*** 269,275 **** >- #endif >- >- SETCOLOR (MT_COLOR_STATUS); >-! mvaddstr (HDR_ATTACH - 1, 0, _("-- Attachments")); >- BKGDSET (MT_COLOR_STATUS); >- clrtoeol (); >- >---- 269,275 ---- >- #endif >- >- SETCOLOR (MT_COLOR_STATUS); >-! mvaddstr (HDR_ATTACH - 1, SidebarWidth, _("-- Attachments")); >- BKGDSET (MT_COLOR_STATUS); >- clrtoeol (); >- >-*************** >-*** 307,313 **** >- /* redraw the expanded list so the user can see the result */ >- buf[0] = 0; >- rfc822_write_address (buf, sizeof (buf), *addr, 1); >-! move (line, HDR_XOFFSET); >- mutt_paddstr (W, buf); >- >- return 0; >---- 307,313 ---- >- /* redraw the expanded list so the user can see the result */ >- buf[0] = 0; >- rfc822_write_address (buf, sizeof (buf), *addr, 1); >-! move (line, HDR_XOFFSET+SidebarWidth); >- mutt_paddstr (W, buf); >- >- return 0; >-*************** >-*** 552,558 **** >- if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) >- { >- mutt_str_replace (&msg->env->subject, buf); >-! move (HDR_SUBJECT, HDR_XOFFSET); >- clrtoeol (); >- if (msg->env->subject) >- mutt_paddstr (W, msg->env->subject); >---- 552,558 ---- >- if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) >- { >- mutt_str_replace (&msg->env->subject, buf); >-! move (HDR_SUBJECT, HDR_XOFFSET + SidebarWidth); >- clrtoeol (); >- if (msg->env->subject) >- mutt_paddstr (W, msg->env->subject); >-*************** >-*** 569,575 **** >- { >- strfcpy (fcc, buf, fcclen); >- mutt_pretty_mailbox (fcc, fcclen); >-! move (HDR_FCC, HDR_XOFFSET); >- mutt_paddstr (W, fcc); >- fccSet = 1; >- } >---- 569,575 ---- >- { >- strfcpy (fcc, buf, fcclen); >- mutt_pretty_mailbox (fcc, fcclen); >-! move (HDR_FCC, HDR_XOFFSET + SidebarWidth); >- mutt_paddstr (W, fcc); >- fccSet = 1; >- } > *** mutt-1.5.20-orig/curs_main.c 2009-06-13 21:48:36.000000000 -0500 > --- mutt-1.5.20-patched/curs_main.c 2009-06-19 22:07:04.000000000 -0500 > *************** >@@ -766,81 +504,46 @@ > > /* mx_open_new_message() */ > #define M_ADD_FROM 1 /* add a From_ line */ >-*** mutt-1.5.20-orig/Makefile.am 2009-01-04 20:11:29.000000000 -0600 >---- mutt-1.5.20-patched/Makefile.am 2009-06-19 22:07:04.000000000 -0500 >-*************** >-*** 29,35 **** >- score.c send.c sendlib.c signal.c sort.c \ >- status.c system.c thread.c charset.c history.c lib.c \ >- muttlib.c editmsg.c mbyte.c \ >-! url.c ascii.c crypt-mod.c crypt-mod.h >- >- nodist_mutt_SOURCES = $(BUILT_SOURCES) >- >---- 29,36 ---- >- score.c send.c sendlib.c signal.c sort.c \ >- status.c system.c thread.c charset.c history.c lib.c \ >- muttlib.c editmsg.c mbyte.c \ >-! url.c ascii.c crypt-mod.c crypt-mod.h \ >-! sidebar.c >- >- nodist_mutt_SOURCES = $(BUILT_SOURCES) >- >-*** mutt-1.5.20-orig/Makefile.in 2009-06-09 01:50:44.000000000 -0500 >---- mutt-1.5.20-patched/Makefile.in 2009-06-19 22:07:04.000000000 -0500 >-*************** >-*** 85,91 **** >- system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ >- history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ >- editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ >-! ascii.$(OBJEXT) crypt-mod.$(OBJEXT) >- am__objects_1 = patchlist.$(OBJEXT) >- nodist_mutt_OBJECTS = $(am__objects_1) >- mutt_OBJECTS = $(am_mutt_OBJECTS) $(nodist_mutt_OBJECTS) >---- 85,92 ---- >- system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ >- history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ >- editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ >-! ascii.$(OBJEXT) crypt-mod.$(OBJEXT) \ >-! sidebar.$(OBJEXT) >- am__objects_1 = patchlist.$(OBJEXT) >- nodist_mutt_OBJECTS = $(am__objects_1) >- mutt_OBJECTS = $(am_mutt_OBJECTS) $(nodist_mutt_OBJECTS) >-*************** >-*** 356,362 **** >- score.c send.c sendlib.c signal.c sort.c \ >- status.c system.c thread.c charset.c history.c lib.c \ >- muttlib.c editmsg.c mbyte.c \ >-! url.c ascii.c crypt-mod.c crypt-mod.h >- >- nodist_mutt_SOURCES = $(BUILT_SOURCES) >- mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ >---- 357,364 ---- >- score.c send.c sendlib.c signal.c sort.c \ >- status.c system.c thread.c charset.c history.c lib.c \ >- muttlib.c editmsg.c mbyte.c \ >-! url.c ascii.c crypt-mod.c crypt-mod.h \ >-! sidebar.c >- >- nodist_mutt_SOURCES = $(BUILT_SOURCES) >- mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ >-*************** >-*** 388,394 **** >- README.SSL smime.h \ >- muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ >- ChangeLog mkchangelog.sh mutt_idna.h \ >-! snprintf.c regex.c crypt-gpgme.h hcachever.sh.in >- >- EXTRA_SCRIPTS = smime_keys >- mutt_dotlock_SOURCES = mutt_dotlock.c >---- 390,396 ---- >- README.SSL smime.h \ >- muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ >- ChangeLog mkchangelog.sh mutt_idna.h \ >-! snprintf.c regex.c crypt-gpgme.h sidebar.h hcachever.sh.in >- >- EXTRA_SCRIPTS = smime_keys >- mutt_dotlock_SOURCES = mutt_dotlock.c >+--- orig/Makefile.am.orig 2010-09-18 13:23:19.000000000 +0200 >++++ new/Makefile.am 2010-09-18 13:25:19.000000000 +0200 >+@@ -34,7 +34,7 @@ >+ score.c send.c sendlib.c signal.c sort.c \ >+ status.c system.c thread.c charset.c history.c lib.c \ >+ muttlib.c editmsg.c mbyte.c \ >+- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c >++ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c sidebar.c >+ >+ nodist_mutt_SOURCES = $(BUILT_SOURCES) >+ >+--- orig/Makefile.in.orig 2010-09-18 13:23:19.000000000 +0200 >++++ new/Makefile.in 2010-09-18 13:27:19.000000000 +0200 >+@@ -89,7 +89,7 @@ >+ system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ >+ history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ >+ editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ >+- ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) >++ ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) sidebar.$(OBJEXT) >+ am__objects_1 = >+ am__objects_2 = patchlist.$(OBJEXT) $(am__objects_1) >+ nodist_mutt_OBJECTS = $(am__objects_2) >+@@ -363,7 +363,7 @@ >+ score.c send.c sendlib.c signal.c sort.c \ >+ status.c system.c thread.c charset.c history.c lib.c \ >+ muttlib.c editmsg.c mbyte.c \ >+- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c >++ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c sidebar.c >+ >+ nodist_mutt_SOURCES = $(BUILT_SOURCES) >+ mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ >+@@ -397,7 +397,7 @@ >+ README.SSL smime.h group.h \ >+ muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ >+ ChangeLog mkchangelog.sh mutt_idna.h \ >+- snprintf.c regex.c crypt-gpgme.h hcachever.sh.in >++ snprintf.c regex.c crypt-gpgme.h sidebar.h hcachever.sh.in >+ >+ EXTRA_SCRIPTS = smime_keys >+ mutt_dotlock_SOURCES = mutt_dotlock.c > *** mutt-1.5.20-orig/mbox.c 2009-06-10 23:29:41.000000000 -0500 > --- mutt-1.5.20-patched/mbox.c 2009-06-19 22:07:04.000000000 -0500 > *************** >@@ -1231,171 +934,115 @@ > + OP_SIDEBAR_NEXT "go down to next mailbox" > + OP_SIDEBAR_PREV "go to previous mailbox" > + OP_SIDEBAR_OPEN "open hilighted mailbox" >-*** mutt-1.5.20-orig/pager.c 2009-06-03 15:48:31.000000000 -0500 >---- mutt-1.5.20-patched/pager.c 2009-06-19 22:19:58.000000000 -0500 >-*************** >-*** 29,34 **** >---- 29,35 ---- >- #include "pager.h" >- #include "attach.h" >- #include "mbyte.h" >-+ #include "sidebar.h" >- >- #include "mutt_crypt.h" >- >-*************** >-*** 1071,1076 **** >---- 1072,1079 ---- >- mbstate_t mbstate; >- >- int wrap_cols = mutt_term_width ((flags & M_PAGER_NOWRAP) ? 0 : Wrap); >-+ >-+ wrap_cols -= SidebarWidth; >- >- /* FIXME: this should come from lineInfo */ >- memset(&mbstate, 0, sizeof(mbstate)); >-*************** >-*** 1717,1723 **** >- if ((redraw & REDRAW_BODY) || topline != oldtopline) >- { >- do { >-! move (bodyoffset, 0); >- curline = oldtopline = topline; >- lines = 0; >- force_redraw = 0; >---- 1720,1726 ---- >- if ((redraw & REDRAW_BODY) || topline != oldtopline) >- { >- do { >-! move (bodyoffset, SidebarWidth); >- curline = oldtopline = topline; >- lines = 0; >- force_redraw = 0; >-*************** >-*** 1730,1735 **** >---- 1733,1739 ---- >- &QuoteList, &q_level, &force_redraw, &SearchRE) > 0) >- lines++; >- curline++; >-+ move(lines + bodyoffset, SidebarWidth); >- } >- last_offset = lineInfo[curline].offset; >- } while (force_redraw); >-*************** >-*** 1743,1748 **** >---- 1747,1753 ---- >- addch ('~'); >- addch ('\n'); >- lines++; >-+ move(lines + bodyoffset, SidebarWidth); >- } >- /* We are going to update the pager status bar, so it isn't >- * necessary to reset to normal color now. */ >-*************** >-*** 1766,1786 **** >- /* print out the pager status bar */ >- SETCOLOR (MT_COLOR_STATUS); >- BKGDSET (MT_COLOR_STATUS); >-! CLEARLINE (statusoffset); >- >- if (IsHeader (extra) || IsMsgAttach (extra)) >- { >-! size_t l1 = COLS * MB_LEN_MAX; >- size_t l2 = sizeof (buffer); >- hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; >- mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); >-! mutt_paddstr (COLS, buffer); >- } >- else >- { >- char bn[STRING]; >- snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); >-! mutt_paddstr (COLS, bn); >- } >- BKGDSET (MT_COLOR_NORMAL); >- SETCOLOR (MT_COLOR_NORMAL); >---- 1771,1791 ---- >- /* print out the pager status bar */ >- SETCOLOR (MT_COLOR_STATUS); >- BKGDSET (MT_COLOR_STATUS); >-! CLEARLINE_WIN (statusoffset); >- >- if (IsHeader (extra) || IsMsgAttach (extra)) >- { >-! size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX; >- size_t l2 = sizeof (buffer); >- hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; >- mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); >-! mutt_paddstr (COLS-SidebarWidth, buffer); >- } >- else >- { >- char bn[STRING]; >- snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); >-! mutt_paddstr (COLS-SidebarWidth, bn); >- } >- BKGDSET (MT_COLOR_NORMAL); >- SETCOLOR (MT_COLOR_NORMAL); >-*************** >-*** 1791,1808 **** >- /* redraw the pager_index indicator, because the >- * flags for this message might have changed. */ >- menu_redraw_current (index); >- >- /* print out the index status bar */ >- menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); >- >-! move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0); >- SETCOLOR (MT_COLOR_STATUS); >- BKGDSET (MT_COLOR_STATUS); >-! mutt_paddstr (COLS, buffer); >- SETCOLOR (MT_COLOR_NORMAL); >- BKGDSET (MT_COLOR_NORMAL); >- } >- >- redraw = 0; >- >- if (option(OPTBRAILLEFRIENDLY)) { >---- 1796,1818 ---- >- /* redraw the pager_index indicator, because the >- * flags for this message might have changed. */ >- menu_redraw_current (index); >-+ draw_sidebar(MENU_PAGER); >- >- /* print out the index status bar */ >- menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); >- >-! move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth); >- SETCOLOR (MT_COLOR_STATUS); >- BKGDSET (MT_COLOR_STATUS); >-! mutt_paddstr (COLS-SidebarWidth, buffer); >- SETCOLOR (MT_COLOR_NORMAL); >- BKGDSET (MT_COLOR_NORMAL); >- } >- >-+ /* if we're not using the index, update every time */ >-+ if ( index == 0 ) >-+ draw_sidebar(MENU_PAGER); >-+ >- redraw = 0; >- >- if (option(OPTBRAILLEFRIENDLY)) { >-*************** >-*** 2729,2734 **** >---- 2739,2751 ---- >- mutt_what_key (); >- break; >- >-+ case OP_SIDEBAR_SCROLL_UP: >-+ case OP_SIDEBAR_SCROLL_DOWN: >-+ case OP_SIDEBAR_NEXT: >-+ case OP_SIDEBAR_PREV: >-+ scroll_sidebar(ch, MENU_PAGER); >-+ break; >-+ >- default: >- ch = -1; >- break; >+--- orig/pager.c.orig 2010-09-18 13:23:19.000000000 +0200 >++++ new/pager.c 2010-09-18 14:03:08.000000000 +0200 >+@@ -29,6 +29,7 @@ >+ #include "pager.h" >+ #include "attach.h" >+ #include "mbyte.h" >++#include "sidebar.h" >+ >+ #include "mutt_crypt.h" >+ >+@@ -1104,6 +1105,7 @@ >+ if (check_attachment_marker ((char *)buf) == 0) >+ wrap_cols = COLS; >+ >++ wrap_cols -= SidebarWidth; >+ /* FIXME: this should come from lineInfo */ >+ memset(&mbstate, 0, sizeof(mbstate)); >+ >+@@ -1778,7 +1780,7 @@ >+ if ((redraw & REDRAW_BODY) || topline != oldtopline) >+ { >+ do { >+- move (bodyoffset, 0); >++ move (bodyoffset, SidebarWidth); >+ curline = oldtopline = topline; >+ lines = 0; >+ force_redraw = 0; >+@@ -1791,6 +1793,7 @@ >+ &QuoteList, &q_level, &force_redraw, &SearchRE) > 0) >+ lines++; >+ curline++; >++ move(lines + bodyoffset, SidebarWidth); >+ } >+ last_offset = lineInfo[curline].offset; >+ } while (force_redraw); >+@@ -1804,6 +1807,7 @@ >+ addch ('~'); >+ addch ('\n'); >+ lines++; >++ move(lines + bodyoffset, SidebarWidth); >+ } >+ /* We are going to update the pager status bar, so it isn't >+ * necessary to reset to normal color now. */ >+@@ -1827,21 +1831,21 @@ >+ /* print out the pager status bar */ >+ SETCOLOR (MT_COLOR_STATUS); >+ BKGDSET (MT_COLOR_STATUS); >+- CLEARLINE (statusoffset); >++ CLEARLINE_WIN (statusoffset); >+ >+ if (IsHeader (extra) || IsMsgAttach (extra)) >+ { >+- size_t l1 = COLS * MB_LEN_MAX; >++ size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX; >+ size_t l2 = sizeof (buffer); >+ hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; >+ mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); >+- mutt_paddstr (COLS, buffer); >++ mutt_paddstr (COLS-SidebarWidth, buffer); >+ } >+ else >+ { >+ char bn[STRING]; >+ snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); >+- mutt_paddstr (COLS, bn); >++ mutt_paddstr (COLS-SidebarWidth, bn); >+ } >+ BKGDSET (MT_COLOR_NORMAL); >+ SETCOLOR (MT_COLOR_NORMAL); >+@@ -1852,18 +1856,23 @@ >+ /* redraw the pager_index indicator, because the >+ * flags for this message might have changed. */ >+ menu_redraw_current (index); >++ draw_sidebar(MENU_PAGER); >+ >+ /* print out the index status bar */ >+ menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); >+ >+- move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0); >++ move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth); >+ SETCOLOR (MT_COLOR_STATUS); >+ BKGDSET (MT_COLOR_STATUS); >+- mutt_paddstr (COLS, buffer); >++ mutt_paddstr (COLS-SidebarWidth, buffer); >+ SETCOLOR (MT_COLOR_NORMAL); >+ BKGDSET (MT_COLOR_NORMAL); >+ } >+ >++ /* if we're not using the index, update every time */ >++ if ( index == 0 ) >++ draw_sidebar(MENU_PAGER); >++ >+ redraw = 0; >+ >+ if (option(OPTBRAILLEFRIENDLY)) { >+@@ -2852,6 +2861,13 @@ >+ mutt_what_key (); >+ break; >+ >++ case OP_SIDEBAR_SCROLL_UP: >++ case OP_SIDEBAR_SCROLL_DOWN: >++ case OP_SIDEBAR_NEXT: >++ case OP_SIDEBAR_PREV: >++ scroll_sidebar(ch, MENU_PAGER); >++ break; >++ >+ default: >+ ch = -1; >+ break; > *** mutt-1.5.20-orig/PATCHES 2008-11-11 13:55:46.000000000 -0600 > --- mutt-1.5.20-patched/PATCHES 2009-06-19 22:20:31.000000000 -0500 > *************** >@@ -1849,3 +1496,108 @@ > FREE (&value); > return; > } >+--- orig/compose.c.orig 2010-04-14 20:50:19.000000000 +0200 >++++ new/compose.c 2010-09-18 15:29:09.000000000 +0200 >+@@ -72,7 +72,7 @@ >+ >+ #define HDR_XOFFSET 10 >+ #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ >+-#define W (COLS - HDR_XOFFSET) >++#define W (COLS - HDR_XOFFSET - SidebarWidth) >+ >+ static char *Prompts[] = >+ { >+@@ -112,7 +112,7 @@ >+ { >+ int off = 0; >+ >+- mvaddstr (HDR_CRYPT, 0, "Security: "); >++ mvaddstr (HDR_CRYPT, SidebarWidth, "Security: "); >+ >+ if ((WithCrypto & (APPLICATION_PGP | APPLICATION_SMIME)) == 0) >+ { >+@@ -144,7 +144,7 @@ >+ } >+ >+ clrtoeol (); >+- move (HDR_CRYPTINFO, 0); >++ move (HDR_CRYPTINFO, SidebarWidth); >+ clrtoeol (); >+ >+ if ((WithCrypto & APPLICATION_PGP) >+@@ -161,7 +161,7 @@ >+ && (msg->security & ENCRYPT) >+ && SmimeCryptAlg >+ && *SmimeCryptAlg) { >+- mvprintw (HDR_CRYPTINFO, 40, "%s%s", _("Encrypt with: "), >++ mvprintw (HDR_CRYPTINFO, SidebarWidth + 40, "%s%s", _("Encrypt with: "), >+ NONULL(SmimeCryptAlg)); >+ off = 20; >+ } >+@@ -190,7 +190,7 @@ >+ if (t && t[0] == '0' && t[1] == '\0') >+ t = "<random>"; >+ >+- if (c + mutt_strlen (t) + 2 >= COLS) >++ if (c + mutt_strlen (t) + 2 >= COLS - SidebarWidth) >+ break; >+ >+ addstr (NONULL(t)); >+@@ -242,7 +242,7 @@ >+ >+ buf[0] = 0; >+ rfc822_write_address (buf, sizeof (buf), addr, 1); >+- mvprintw (line, 0, TITLE_FMT, Prompts[line - 1]); >++ mvprintw (line, SidebarWidth, TITLE_FMT, Prompts[line - 1]); >+ mutt_paddstr (W, buf); >+ } >+ >+@@ -252,10 +252,10 @@ >+ draw_envelope_addr (HDR_TO, msg->env->to); >+ draw_envelope_addr (HDR_CC, msg->env->cc); >+ draw_envelope_addr (HDR_BCC, msg->env->bcc); >+- mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); >++ mvprintw (HDR_SUBJECT, SidebarWidth, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); >+ mutt_paddstr (W, NONULL (msg->env->subject)); >+ draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to); >+- mvprintw (HDR_FCC, 0, TITLE_FMT, Prompts[HDR_FCC - 1]); >++ mvprintw (HDR_FCC, SidebarWidth, TITLE_FMT, Prompts[HDR_FCC - 1]); >+ mutt_paddstr (W, fcc); >+ >+ if (WithCrypto) >+@@ -266,7 +266,7 @@ >+ #endif >+ >+ SETCOLOR (MT_COLOR_STATUS); >+- mvaddstr (HDR_ATTACH - 1, 0, _("-- Attachments")); >++ mvaddstr (HDR_ATTACH - 1, SidebarWidth, _("-- Attachments")); >+ BKGDSET (MT_COLOR_STATUS); >+ clrtoeol (); >+ >+@@ -304,7 +304,7 @@ >+ /* redraw the expanded list so the user can see the result */ >+ buf[0] = 0; >+ rfc822_write_address (buf, sizeof (buf), *addr, 1); >+- move (line, HDR_XOFFSET); >++ move (line, HDR_XOFFSET+SidebarWidth); >+ mutt_paddstr (W, buf); >+ >+ return 0; >+@@ -549,7 +549,7 @@ >+ if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) >+ { >+ mutt_str_replace (&msg->env->subject, buf); >+- move (HDR_SUBJECT, HDR_XOFFSET); >++ move (HDR_SUBJECT, HDR_XOFFSET + SidebarWidth); >+ clrtoeol (); >+ if (msg->env->subject) >+ mutt_paddstr (W, msg->env->subject); >+@@ -566,7 +566,7 @@ >+ { >+ strfcpy (fcc, buf, fcclen); >+ mutt_pretty_mailbox (fcc, fcclen); >+- move (HDR_FCC, HDR_XOFFSET); >++ move (HDR_FCC, HDR_XOFFSET + SidebarWidth); >+ mutt_paddstr (W, fcc); >+ fccSet = 1; >+ } >diff -ru /usr/ports/mail/mutt-devel/files/extra-patch-sidebar-nntp ./files/extra-patch-sidebar-nntp >--- /usr/ports/mail/mutt-devel/files/extra-patch-sidebar-nntp 2009-06-23 00:52:30.000000000 +0200 >+++ ./files/extra-patch-sidebar-nntp 2010-09-18 14:22:29.000000000 +0200 >@@ -1,252 +1,220 @@ >-*** mutt-1.5.20-orig/buffy.c 2009-06-02 12:16:26.000000000 -0500 >---- mutt-1.5.20-patched/buffy.c 2009-06-19 22:37:02.000000000 -0500 >-*************** >-*** 159,164 **** >---- 159,207 ---- >- } >- } >- >-+ static int buffy_compare_name(const void *a, const void *b) { >-+ const BUFFY *b1 = * (BUFFY * const *) a; >-+ const BUFFY *b2 = * (BUFFY * const *) b; >-+ >-+ return mutt_strcoll(b1->path, b2->path); >-+ } >-+ >-+ static BUFFY *buffy_sort(BUFFY *b) >-+ { >-+ BUFFY *tmp = b; >-+ int buffycount = 0; >-+ BUFFY **ary; >-+ int i; >-+ >-+ if (!option(OPTSIDEBARSORT)) >-+ return b; >-+ >-+ for (; tmp != NULL; tmp = tmp->next) >-+ buffycount++; >-+ >-+ ary = (BUFFY **) safe_calloc(buffycount, sizeof (*ary)); >-+ >-+ tmp = b; >-+ for (i = 0; tmp != NULL; tmp = tmp->next, i++) { >-+ ary[i] = tmp; >-+ } >-+ >-+ qsort(ary, buffycount, sizeof(*ary), buffy_compare_name); >-+ >-+ for (i = 0; i < buffycount - 1; i++) { >-+ ary[i]->next = ary[i+1]; >-+ } >-+ ary[buffycount - 1]->next = NULL; >-+ for (i = 1; i < buffycount; i++) { >-+ ary[i]->prev = ary[i-1]; >-+ } >-+ ary[0]->prev = NULL; >-+ >-+ tmp = ary[0]; >-+ free(ary); >-+ return tmp; >-+ } >-+ >- BUFFY *mutt_find_mailbox (const char *path) >- { >- BUFFY *tmp = NULL; >-*************** >-*** 271,276 **** >---- 314,320 ---- >- else >- (*tmp)->size = 0; >- } >-+ Incoming = buffy_sort(Incoming); >- return 0; >- } >- >-*************** >-*** 290,295 **** >---- 334,340 ---- >- char path[_POSIX_PATH_MAX]; >- struct stat contex_sb; >- time_t t; >-+ CONTEXT *ctx; >- >- sb.st_size=0; >- contex_sb.st_dev=0; >-*************** >-*** 329,334 **** >---- 374,381 ---- >- >- for (tmp = Incoming; tmp; tmp = tmp->next) >- { >-+ if ( tmp->new == 1 ) >+--- orig/buffy.c.orig 2010-09-18 14:12:40.000000000 +0200 >++++ new/buffy.c 2010-09-18 14:17:36.000000000 +0200 >+@@ -161,6 +161,49 @@ >+ } >+ } >+ >++static int buffy_compare_name(const void *a, const void *b) { >++ const BUFFY *b1 = * (BUFFY * const *) a; >++ const BUFFY *b2 = * (BUFFY * const *) b; >++ >++ return mutt_strcoll(b1->path, b2->path); >++} >++ >++static BUFFY *buffy_sort(BUFFY *b) >++{ >++ BUFFY *tmp = b; >++ int buffycount = 0; >++ BUFFY **ary; >++ int i; >++ >++ if (!option(OPTSIDEBARSORT)) >++ return b; >++ >++ for (; tmp != NULL; tmp = tmp->next) >++ buffycount++; >++ >++ ary = (BUFFY **) safe_calloc(buffycount, sizeof (*ary)); >++ >++ tmp = b; >++ for (i = 0; tmp != NULL; tmp = tmp->next, i++) { >++ ary[i] = tmp; >++ } >++ >++ qsort(ary, buffycount, sizeof(*ary), buffy_compare_name); >++ >++ for (i = 0; i < buffycount - 1; i++) { >++ ary[i]->next = ary[i+1]; >++ } >++ ary[buffycount - 1]->next = NULL; >++ for (i = 1; i < buffycount; i++) { >++ ary[i]->prev = ary[i-1]; >++ } >++ ary[0]->prev = NULL; >++ >++ tmp = ary[0]; >++ free(ary); >++ return tmp; >++} >++ >+ BUFFY *mutt_find_mailbox (const char *path) >+ { >+ BUFFY *tmp = NULL; >+@@ -282,6 +325,7 @@ >+ else >+ (*tmp)->size = 0; >+ } >++ Incoming = buffy_sort(Incoming); >+ return 0; >+ } >+ >+@@ -371,12 +415,17 @@ >+ return rc; >+ } >+ >++#define STAT_CHECK_SIZE (sb.st_size > tmp->size) >++#define STAT_CHECK_TIME (sb.st_mtime > sb.st_atime || (tmp->newly_created && sb.st_ctime == sb.st_mtime && sb.st_ctime == sb.st_atime)) >++#define STAT_CHECK (option(OPTCHECKMBOXSIZE) ? STAT_CHECK_SIZE : STAT_CHECK_TIME) >++ >+ int mutt_buffy_check (int force) >+ { >+ BUFFY *tmp; >+ struct stat sb; >+ struct stat contex_sb; >+ time_t t; >++ CONTEXT *ctx; >+ >+ sb.st_size=0; >+ contex_sb.st_dev=0; >+@@ -416,6 +465,8 @@ >+ >+ for (tmp = Incoming; tmp; tmp = tmp->next) >+ { >++ if ( tmp->new == 1 ) > + tmp->has_new = 1; >- #ifdef USE_IMAP >- if (tmp->magic != M_IMAP) >- #endif >-*************** >-*** 385,394 **** >- case M_MBOX: >- case M_MMDF: >- >-! if (STAT_CHECK) >- { >-! BuffyCount++; >-! tmp->new = 1; >- } >- else if (option(OPTCHECKMBOXSIZE)) >- { >---- 432,458 ---- >- case M_MBOX: >- case M_MMDF: >- >-! { >-! if (STAT_CHECK || tmp->msgcount == 0) >- { >-! BUFFY b = *tmp; >-! int msgcount = 0; >-! int msg_unread = 0; >-! /* parse the mailbox, to see how much mail there is */ >-! ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); >-! if(ctx) >-! { >-! msgcount = ctx->msgcount; >-! msg_unread = ctx->unread; >-! mx_close_mailbox(ctx, 0); >-! } >-! *tmp = b; >-! tmp->msgcount = msgcount; >-! tmp->msg_unread = msg_unread; >-! if(STAT_CHECK) { >-! tmp->has_new = tmp->new = 1; >-! BuffyCount++; >-! } >- } >- else if (option(OPTCHECKMBOXSIZE)) >- { >-*************** >-*** 398,432 **** >- if (tmp->newly_created && >- (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) >- tmp->newly_created = 0; >-! >- break; >- >- case M_MAILDIR: >- >- snprintf (path, sizeof (path), "%s/new", tmp->path); >- if ((dirp = opendir (path)) == NULL) >- { >- tmp->magic = 0; >- break; >- } >- while ((de = readdir (dirp)) != NULL) >- { >- char *p; >- if (*de->d_name != '.' && >- (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) >- { >-! /* one new and undeleted message is enough */ >-! BuffyCount++; >-! tmp->new = 1; >-! break; >- } >- } >- closedir (dirp); >- break; >- >- case M_MH: >- if ((tmp->new = mh_buffy (tmp->path)) > 0) >- BuffyCount++; >- break; >- } >- } >---- 462,547 ---- >- if (tmp->newly_created && >- (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) >- tmp->newly_created = 0; >-! } >- break; >- >- case M_MAILDIR: >- >-+ /* count new message */ >- snprintf (path, sizeof (path), "%s/new", tmp->path); >- if ((dirp = opendir (path)) == NULL) >- { >- tmp->magic = 0; >- break; >- } >-+ tmp->msgcount = 0; >-+ tmp->msg_unread = 0; >-+ tmp->msg_flagged = 0; >- while ((de = readdir (dirp)) != NULL) >- { >- char *p; >- if (*de->d_name != '.' && >- (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) >- { >-! tmp->has_new = tmp->new = 1; >-! tmp->msgcount++; >-! tmp->msg_unread++; >-! } >-! } >-! if(tmp->msg_unread) >-! BuffyCount++; >-! >-! closedir (dirp); >-! >-! /* >-! * count read messages (for folderlist (sidebar) we also need to count >-! * messages in cur so that we the total number of messages >-! */ >-! snprintf (path, sizeof (path), "%s/cur", tmp->path); >-! if ((dirp = opendir (path)) == NULL) >-! { >-! tmp->magic = 0; >-! break; >-! } >-! while ((de = readdir (dirp)) != NULL) >-! { >-! char *p; >-! if (*de->d_name != '.') { >-! if ((p = strstr (de->d_name, ":2,"))) { >-! if (!strchr (p + 3, 'T')) { >-! tmp->msgcount++; >-! if ( !strchr (p + 3, 'S')) >-! tmp->msg_unread++; >-! if (strchr(p + 3, 'F')) >-! tmp->msg_flagged++; >-! } >-! } else >-! tmp->msgcount++; >- } >- } >- closedir (dirp); >- break; >- >- case M_MH: >-+ { >-+ DIR *dp; >-+ struct dirent *de; >- if ((tmp->new = mh_buffy (tmp->path)) > 0) >- BuffyCount++; >-+ >-+ if ((dp = opendir (path)) == NULL) >-+ break; >-+ tmp->msgcount = 0; >-+ while ((de = readdir (dp))) >-+ { >-+ if (mh_valid_message (de->d_name)) >-+ { >-+ tmp->msgcount++; >-+ tmp->has_new = tmp->new = 1; >-+ } >-+ } >-+ closedir (dp); >-+ } >- break; >- } >- } >+ if (tmp->magic != M_IMAP) >+ { >+ tmp->new = 0; >+@@ -455,18 +506,122 @@ >+ { >+ case M_MBOX: >+ case M_MMDF: >+- if (buffy_mbox_hasnew (tmp, &sb) > 0) >+- BuffyCount++; >+- break; >++ { >++ if (STAT_CHECK || tmp->msgcount == 0) >++ { >++ BUFFY b = *tmp; >++ int msgcount = 0; >++ int msg_unread = 0; >++ /* parse the mailbox, to see how much mail there is */ >++ ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); >++ if(ctx) >++ { >++ msgcount = ctx->msgcount; >++ msg_unread = ctx->unread; >++ mx_close_mailbox(ctx, 0); >++ } >++ *tmp = b; >++ tmp->msgcount = msgcount; >++ tmp->msg_unread = msg_unread; >++ if(STAT_CHECK) { >++ tmp->has_new = tmp->new = 1; >++ BuffyCount++; >++ } >++ } >++ else if (option(OPTCHECKMBOXSIZE)) >++ { >++ /* some other program has deleted mail from the folder */ >++ tmp->size = (off_t) sb.st_size; >++ } >++ if (tmp->newly_created && >++ (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) >++ tmp->newly_created = 0; >++ } >++ break; >++ >+ >+ case M_MAILDIR: >+- if (buffy_maildir_hasnew (tmp) > 0) >+- BuffyCount++; >++ { >++ char path[_POSIX_PATH_MAX]; >++ DIR *dirp; >++ struct dirent *de; >++ /* count new message */ >++ snprintf (path, sizeof (path), "%s/new", tmp->path); >++ if ((dirp = opendir (path)) == NULL) >++ { >++ tmp->magic = 0; >++ break; >++ } >++ tmp->msgcount = 0; >++ tmp->msg_unread = 0; >++ tmp->msg_flagged = 0; >++ while ((de = readdir (dirp)) != NULL) >++ { >++ char *p; >++ if (*de->d_name != '.' && >++ (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) >++ { >++ tmp->has_new = tmp->new = 1; >++ tmp->msgcount++; >++ tmp->msg_unread++; >++ } >++ } >++ if(tmp->msg_unread) >++ BuffyCount++; >++ >++ closedir (dirp); >++ >++ /* >++ * count read messages (for folderlist (sidebar) we also need to count >++ * messages in cur so that we the total number of messages >++ */ >++ snprintf (path, sizeof (path), "%s/cur", tmp->path); >++ if ((dirp = opendir (path)) == NULL) >++ { >++ tmp->magic = 0; >++ break; >++ } >++ while ((de = readdir (dirp)) != NULL) >++ { >++ char *p; >++ if (*de->d_name != '.') { >++ if ((p = strstr (de->d_name, ":2,"))) { >++ if (!strchr (p + 3, 'T')) { >++ tmp->msgcount++; >++ if ( !strchr (p + 3, 'S')) >++ tmp->msg_unread++; >++ if (strchr(p + 3, 'F')) >++ tmp->msg_flagged++; >++ } >++ } else >++ tmp->msgcount++; >++ } >++ } >++ closedir (dirp); >++ } >+ break; >+ >+ case M_MH: >+- if ((tmp->new = mh_buffy (tmp->path)) > 0) >+- BuffyCount++; >++ { >++ DIR *dp; >++ char path[_POSIX_PATH_MAX]; >++ struct dirent *de; >++ if ((tmp->new = mh_buffy (tmp->path)) > 0) >++ BuffyCount++; >++ >++ if ((dp = opendir (path)) == NULL) >++ break; >++ tmp->msgcount = 0; >++ while ((de = readdir (dp))) >++ { >++ if (mh_valid_message (de->d_name)) >++ { >++ tmp->msgcount++; >++ tmp->has_new = tmp->new = 1; >++ } >++ } >++ closedir (dp); >++ } >+ break; >+ } >+ } > *** mutt-1.5.20-orig/buffy.h 2009-04-30 00:36:16.000000000 -0500 > --- mutt-1.5.20-patched/buffy.h 2009-06-19 22:07:04.000000000 -0500 > *************** >@@ -536,81 +504,46 @@ > > /* mx_open_new_message() */ > #define M_ADD_FROM 1 /* add a From_ line */ >-*** mutt-1.5.20-orig/Makefile.am 2009-01-04 20:11:29.000000000 -0600 >---- mutt-1.5.20-patched/Makefile.am 2009-06-19 22:07:04.000000000 -0500 >-*************** >-*** 29,35 **** >- score.c send.c sendlib.c signal.c sort.c \ >- status.c system.c thread.c charset.c history.c lib.c \ >- muttlib.c editmsg.c mbyte.c \ >-! url.c ascii.c crypt-mod.c crypt-mod.h >- >- nodist_mutt_SOURCES = $(BUILT_SOURCES) >- >---- 29,36 ---- >- score.c send.c sendlib.c signal.c sort.c \ >- status.c system.c thread.c charset.c history.c lib.c \ >- muttlib.c editmsg.c mbyte.c \ >-! url.c ascii.c crypt-mod.c crypt-mod.h \ >-! sidebar.c >- >- nodist_mutt_SOURCES = $(BUILT_SOURCES) >- >-*** mutt-1.5.20-orig/Makefile.in 2009-06-09 01:50:44.000000000 -0500 >---- mutt-1.5.20-patched/Makefile.in 2009-06-19 22:07:04.000000000 -0500 >-*************** >-*** 85,91 **** >- system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ >- history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ >- editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ >-! ascii.$(OBJEXT) crypt-mod.$(OBJEXT) >- am__objects_1 = patchlist.$(OBJEXT) >- nodist_mutt_OBJECTS = $(am__objects_1) >- mutt_OBJECTS = $(am_mutt_OBJECTS) $(nodist_mutt_OBJECTS) >---- 85,92 ---- >- system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ >- history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ >- editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ >-! ascii.$(OBJEXT) crypt-mod.$(OBJEXT) \ >-! sidebar.$(OBJEXT) >- am__objects_1 = patchlist.$(OBJEXT) >- nodist_mutt_OBJECTS = $(am__objects_1) >- mutt_OBJECTS = $(am_mutt_OBJECTS) $(nodist_mutt_OBJECTS) >-*************** >-*** 356,362 **** >- score.c send.c sendlib.c signal.c sort.c \ >- status.c system.c thread.c charset.c history.c lib.c \ >- muttlib.c editmsg.c mbyte.c \ >-! url.c ascii.c crypt-mod.c crypt-mod.h >- >- nodist_mutt_SOURCES = $(BUILT_SOURCES) >- mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ >---- 357,364 ---- >- score.c send.c sendlib.c signal.c sort.c \ >- status.c system.c thread.c charset.c history.c lib.c \ >- muttlib.c editmsg.c mbyte.c \ >-! url.c ascii.c crypt-mod.c crypt-mod.h \ >-! sidebar.c >- >- nodist_mutt_SOURCES = $(BUILT_SOURCES) >- mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ >-*************** >-*** 388,394 **** >- README.SSL smime.h \ >- muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ >- ChangeLog mkchangelog.sh mutt_idna.h \ >-! snprintf.c regex.c crypt-gpgme.h hcachever.sh.in >- >- EXTRA_SCRIPTS = smime_keys >- mutt_dotlock_SOURCES = mutt_dotlock.c >---- 390,396 ---- >- README.SSL smime.h \ >- muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ >- ChangeLog mkchangelog.sh mutt_idna.h \ >-! snprintf.c regex.c crypt-gpgme.h sidebar.h hcachever.sh.in >- >- EXTRA_SCRIPTS = smime_keys >- mutt_dotlock_SOURCES = mutt_dotlock.c >+--- orig/Makefile.am.orig 2010-09-18 13:23:19.000000000 +0200 >++++ new/Makefile.am 2010-09-18 13:25:19.000000000 +0200 >+@@ -34,7 +34,7 @@ >+ score.c send.c sendlib.c signal.c sort.c \ >+ status.c system.c thread.c charset.c history.c lib.c \ >+ muttlib.c editmsg.c mbyte.c \ >+- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c >++ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c sidebar.c >+ >+ nodist_mutt_SOURCES = $(BUILT_SOURCES) >+ >+--- orig/Makefile.in.orig 2010-09-18 13:23:19.000000000 +0200 >++++ new/Makefile.in 2010-09-18 13:27:19.000000000 +0200 >+@@ -89,7 +89,7 @@ >+ system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ >+ history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ >+ editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ >+- ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) >++ ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) sidebar.$(OBJEXT) >+ am__objects_1 = >+ am__objects_2 = patchlist.$(OBJEXT) $(am__objects_1) >+ nodist_mutt_OBJECTS = $(am__objects_2) >+@@ -363,7 +363,7 @@ >+ score.c send.c sendlib.c signal.c sort.c \ >+ status.c system.c thread.c charset.c history.c lib.c \ >+ muttlib.c editmsg.c mbyte.c \ >+- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c >++ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c sidebar.c >+ >+ nodist_mutt_SOURCES = $(BUILT_SOURCES) >+ mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ >+@@ -397,7 +397,7 @@ >+ README.SSL smime.h group.h \ >+ muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ >+ ChangeLog mkchangelog.sh mutt_idna.h \ >+- snprintf.c regex.c crypt-gpgme.h hcachever.sh.in >++ snprintf.c regex.c crypt-gpgme.h sidebar.h hcachever.sh.in >+ >+ EXTRA_SCRIPTS = smime_keys >+ mutt_dotlock_SOURCES = mutt_dotlock.c > *** mutt-1.5.20-orig/mbox.c 2009-06-10 23:29:41.000000000 -0500 > --- mutt-1.5.20-patched/mbox.c 2009-06-19 22:07:04.000000000 -0500 > *************** >@@ -1001,171 +934,115 @@ > + OP_SIDEBAR_NEXT "go down to next mailbox" > + OP_SIDEBAR_PREV "go to previous mailbox" > + OP_SIDEBAR_OPEN "open hilighted mailbox" >-*** mutt-1.5.20-orig/pager.c 2009-06-03 15:48:31.000000000 -0500 >---- mutt-1.5.20-patched/pager.c 2009-06-19 22:19:58.000000000 -0500 >-*************** >-*** 29,34 **** >---- 29,35 ---- >- #include "pager.h" >- #include "attach.h" >- #include "mbyte.h" >-+ #include "sidebar.h" >- >- #include "mutt_crypt.h" >- >-*************** >-*** 1071,1076 **** >---- 1072,1079 ---- >- mbstate_t mbstate; >- >- int wrap_cols = mutt_term_width ((flags & M_PAGER_NOWRAP) ? 0 : Wrap); >-+ >-+ wrap_cols -= SidebarWidth; >- >- /* FIXME: this should come from lineInfo */ >- memset(&mbstate, 0, sizeof(mbstate)); >-*************** >-*** 1717,1723 **** >- if ((redraw & REDRAW_BODY) || topline != oldtopline) >- { >- do { >-! move (bodyoffset, 0); >- curline = oldtopline = topline; >- lines = 0; >- force_redraw = 0; >---- 1720,1726 ---- >- if ((redraw & REDRAW_BODY) || topline != oldtopline) >- { >- do { >-! move (bodyoffset, SidebarWidth); >- curline = oldtopline = topline; >- lines = 0; >- force_redraw = 0; >-*************** >-*** 1730,1735 **** >---- 1733,1739 ---- >- &QuoteList, &q_level, &force_redraw, &SearchRE) > 0) >- lines++; >- curline++; >-+ move(lines + bodyoffset, SidebarWidth); >- } >- last_offset = lineInfo[curline].offset; >- } while (force_redraw); >-*************** >-*** 1743,1748 **** >---- 1747,1753 ---- >- addch ('~'); >- addch ('\n'); >- lines++; >-+ move(lines + bodyoffset, SidebarWidth); >- } >- /* We are going to update the pager status bar, so it isn't >- * necessary to reset to normal color now. */ >-*************** >-*** 1766,1786 **** >- /* print out the pager status bar */ >- SETCOLOR (MT_COLOR_STATUS); >- BKGDSET (MT_COLOR_STATUS); >-! CLEARLINE (statusoffset); >- >- if (IsHeader (extra) || IsMsgAttach (extra)) >- { >-! size_t l1 = COLS * MB_LEN_MAX; >- size_t l2 = sizeof (buffer); >- hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; >- mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); >-! mutt_paddstr (COLS, buffer); >- } >- else >- { >- char bn[STRING]; >- snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); >-! mutt_paddstr (COLS, bn); >- } >- BKGDSET (MT_COLOR_NORMAL); >- SETCOLOR (MT_COLOR_NORMAL); >---- 1771,1791 ---- >- /* print out the pager status bar */ >- SETCOLOR (MT_COLOR_STATUS); >- BKGDSET (MT_COLOR_STATUS); >-! CLEARLINE_WIN (statusoffset); >- >- if (IsHeader (extra) || IsMsgAttach (extra)) >- { >-! size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX; >- size_t l2 = sizeof (buffer); >- hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; >- mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); >-! mutt_paddstr (COLS-SidebarWidth, buffer); >- } >- else >- { >- char bn[STRING]; >- snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); >-! mutt_paddstr (COLS-SidebarWidth, bn); >- } >- BKGDSET (MT_COLOR_NORMAL); >- SETCOLOR (MT_COLOR_NORMAL); >-*************** >-*** 1791,1808 **** >- /* redraw the pager_index indicator, because the >- * flags for this message might have changed. */ >- menu_redraw_current (index); >- >- /* print out the index status bar */ >- menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); >- >-! move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0); >- SETCOLOR (MT_COLOR_STATUS); >- BKGDSET (MT_COLOR_STATUS); >-! mutt_paddstr (COLS, buffer); >- SETCOLOR (MT_COLOR_NORMAL); >- BKGDSET (MT_COLOR_NORMAL); >- } >- >- redraw = 0; >- >- if (option(OPTBRAILLEFRIENDLY)) { >---- 1796,1818 ---- >- /* redraw the pager_index indicator, because the >- * flags for this message might have changed. */ >- menu_redraw_current (index); >-+ draw_sidebar(MENU_PAGER); >- >- /* print out the index status bar */ >- menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); >- >-! move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth); >- SETCOLOR (MT_COLOR_STATUS); >- BKGDSET (MT_COLOR_STATUS); >-! mutt_paddstr (COLS-SidebarWidth, buffer); >- SETCOLOR (MT_COLOR_NORMAL); >- BKGDSET (MT_COLOR_NORMAL); >- } >- >-+ /* if we're not using the index, update every time */ >-+ if ( index == 0 ) >-+ draw_sidebar(MENU_PAGER); >-+ >- redraw = 0; >- >- if (option(OPTBRAILLEFRIENDLY)) { >-*************** >-*** 2729,2734 **** >---- 2739,2751 ---- >- mutt_what_key (); >- break; >+--- orig/pager.c.orig 2010-09-18 13:23:19.000000000 +0200 >++++ new/pager.c 2010-09-18 14:03:08.000000000 +0200 >+@@ -29,6 +29,7 @@ >+ #include "pager.h" >+ #include "attach.h" >+ #include "mbyte.h" >++#include "sidebar.h" >+ >+ #include "mutt_crypt.h" >+ >+@@ -1104,6 +1105,7 @@ >+ if (check_attachment_marker ((char *)buf) == 0) >+ wrap_cols = COLS; >+ >++ wrap_cols -= SidebarWidth; >+ /* FIXME: this should come from lineInfo */ >+ memset(&mbstate, 0, sizeof(mbstate)); >+ >+@@ -1778,7 +1780,7 @@ >+ if ((redraw & REDRAW_BODY) || topline != oldtopline) >+ { >+ do { >+- move (bodyoffset, 0); >++ move (bodyoffset, SidebarWidth); >+ curline = oldtopline = topline; >+ lines = 0; >+ force_redraw = 0; >+@@ -1791,6 +1793,7 @@ >+ &QuoteList, &q_level, &force_redraw, &SearchRE) > 0) >+ lines++; >+ curline++; >++ move(lines + bodyoffset, SidebarWidth); >+ } >+ last_offset = lineInfo[curline].offset; >+ } while (force_redraw); >+@@ -1804,6 +1807,7 @@ >+ addch ('~'); >+ addch ('\n'); >+ lines++; >++ move(lines + bodyoffset, SidebarWidth); >+ } >+ /* We are going to update the pager status bar, so it isn't >+ * necessary to reset to normal color now. */ >+@@ -1827,21 +1831,21 @@ >+ /* print out the pager status bar */ >+ SETCOLOR (MT_COLOR_STATUS); >+ BKGDSET (MT_COLOR_STATUS); >+- CLEARLINE (statusoffset); >++ CLEARLINE_WIN (statusoffset); >+ >+ if (IsHeader (extra) || IsMsgAttach (extra)) >+ { >+- size_t l1 = COLS * MB_LEN_MAX; >++ size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX; >+ size_t l2 = sizeof (buffer); >+ hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; >+ mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); >+- mutt_paddstr (COLS, buffer); >++ mutt_paddstr (COLS-SidebarWidth, buffer); >+ } >+ else >+ { >+ char bn[STRING]; >+ snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); >+- mutt_paddstr (COLS, bn); >++ mutt_paddstr (COLS-SidebarWidth, bn); >+ } >+ BKGDSET (MT_COLOR_NORMAL); >+ SETCOLOR (MT_COLOR_NORMAL); >+@@ -1852,18 +1856,23 @@ >+ /* redraw the pager_index indicator, because the >+ * flags for this message might have changed. */ >+ menu_redraw_current (index); >++ draw_sidebar(MENU_PAGER); >+ >+ /* print out the index status bar */ >+ menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); > >-+ case OP_SIDEBAR_SCROLL_UP: >-+ case OP_SIDEBAR_SCROLL_DOWN: >-+ case OP_SIDEBAR_NEXT: >-+ case OP_SIDEBAR_PREV: >-+ scroll_sidebar(ch, MENU_PAGER); >-+ break; >-+ >- default: >- ch = -1; >- break; >+- move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0); >++ move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth); >+ SETCOLOR (MT_COLOR_STATUS); >+ BKGDSET (MT_COLOR_STATUS); >+- mutt_paddstr (COLS, buffer); >++ mutt_paddstr (COLS-SidebarWidth, buffer); >+ SETCOLOR (MT_COLOR_NORMAL); >+ BKGDSET (MT_COLOR_NORMAL); >+ } >+ >++ /* if we're not using the index, update every time */ >++ if ( index == 0 ) >++ draw_sidebar(MENU_PAGER); >++ >+ redraw = 0; >+ >+ if (option(OPTBRAILLEFRIENDLY)) { >+@@ -2852,6 +2861,13 @@ >+ mutt_what_key (); >+ break; >+ >++ case OP_SIDEBAR_SCROLL_UP: >++ case OP_SIDEBAR_SCROLL_DOWN: >++ case OP_SIDEBAR_NEXT: >++ case OP_SIDEBAR_PREV: >++ scroll_sidebar(ch, MENU_PAGER); >++ break; >++ >+ default: >+ ch = -1; >+ break; > *** mutt-1.5.20-orig/PATCHES 2008-11-11 13:55:46.000000000 -0600 > --- mutt-1.5.20-patched/PATCHES 2009-06-19 22:20:31.000000000 -0500 > *************** >@@ -1619,8 +1496,8 @@ > FREE (&value); > return; > } >---- mutt-1.5.20-orig/compose.c.orig 2009-06-22 15:29:56.000000000 +0200 >-+++ mutt-1.5.20-patched/compose.c 2009-06-22 15:33:16.000000000 +0200 >+--- orig/compose.c.orig 2010-09-18 13:23:18.000000000 +0200 >++++ new/compose.c 2010-09-18 14:01:09.000000000 +0200 > @@ -80,7 +80,7 @@ > > #define HDR_XOFFSET 14 >@@ -1630,37 +1507,24 @@ > > static char *Prompts[] = > { >-@@ -146,16 +146,16 @@ >- if ((WithCrypto & APPLICATION_PGP) && (WithCrypto & APPLICATION_SMIME)) >- { >- if (!msg->security) >-- mvaddstr (HDR_CRYPT, 0, " Security: "); >-+ mvaddstr (HDR_CRYPT, SidebarWidth, " Security: "); >- else if (msg->security & APPLICATION_SMIME) >-- mvaddstr (HDR_CRYPT, 0, " S/MIME: "); >-+ mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: "); >- else if (msg->security & APPLICATION_PGP) >-- mvaddstr (HDR_CRYPT, 0, " PGP: "); >-+ mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: "); >+@@ -143,7 +143,7 @@ >+ { >+ int off = 0; >+ >+- mvprintw (HDR_CRYPT, 0, TITLE_FMT, "Security: "); >++ mvprintw (HDR_CRYPT, SidebarWidth, TITLE_FMT, "Security: "); >+ >+ if ((WithCrypto & (APPLICATION_PGP | APPLICATION_SMIME)) == 0) >+ { >+@@ -175,7 +175,7 @@ > } >- else if ((WithCrypto & APPLICATION_SMIME)) >-- mvaddstr (HDR_CRYPT, 0, " S/MIME: "); >-+ mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: "); >- else if ((WithCrypto & APPLICATION_PGP)) >-- mvaddstr (HDR_CRYPT, 0, " PGP: "); >-+ mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: "); >- else >- return; > >-@@ -179,7 +179,7 @@ >- } > clrtoeol (); >- > - move (HDR_CRYPTINFO, 0); > + move (HDR_CRYPTINFO, SidebarWidth); > clrtoeol (); >+ > if ((WithCrypto & APPLICATION_PGP) >- && msg->security & APPLICATION_PGP && msg->security & SIGN) > @@ -195,7 +195,7 @@ > && (msg->security & ENCRYPT) > && SmimeCryptAlg >@@ -1670,15 +1534,6 @@ > NONULL(SmimeCryptAlg)); > off = 20; > } >-@@ -209,7 +209,7 @@ >- int c; >- char *t; >- >-- mvaddstr (HDR_MIX, 0, " Mix: "); >-+ mvaddstr (HDR_MIX, SidebarWidth, " Mix: "); >- >- if (!chain) >- { > @@ -224,7 +224,7 @@ > if (t && t[0] == '0' && t[1] == '\0') > t = "<random>"; >@@ -1759,4 +1614,3 @@ > + move (HDR_FCC, HDR_XOFFSET + SidebarWidth); > mutt_paddstr (W, fcc); > fccSet = 1; >- } >diff -ru /usr/ports/mail/mutt-devel/files/patch-02 ./files/patch-02 >--- /usr/ports/mail/mutt-devel/files/patch-02 2009-02-09 17:58:46.000000000 +0100 >+++ ./files/patch-02 2010-09-17 16:33:17.000000000 +0200 >@@ -1,15 +1,15 @@ >---- doc/Makefile.am.orig 2009-02-06 13:25:21.000000000 +0100 >-+++ doc/Makefile.am 2009-02-06 13:27:06.000000000 +0100 >-@@ -44,7 +44,7 @@ >+--- doc/Makefile.am.orig 2010-09-17 16:04:58.000000000 +0200 >++++ doc/Makefile.am 2010-09-17 16:09:09.000000000 +0200 >+@@ -47,7 +47,7 @@ > > all: makedoc-all > >--makedoc-all: mutt.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt >-+makedoc-all: mutt.1 muttrc.man >+-makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt >++makedoc-all: mutt.1 smime_keys.1 muttrc.man > > install-data-local: makedoc-all instdoc > $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 >-@@ -66,9 +66,6 @@ >+@@ -70,9 +70,6 @@ > $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir) ; \ > done > -$(INSTALL) -m 644 manual.txt $(DESTDIR)$(docdir) >@@ -19,14 +19,14 @@ > $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.dist > -if [ -f $(DESTDIR)$(pkgdatadir)/Muttrc ] ; then \ > mv $(DESTDIR)$(pkgdatadir)/Muttrc* $(DESTDIR)$(sysconfdir) ; \ >-@@ -99,9 +96,7 @@ >+@@ -103,9 +100,7 @@ > > check: > manual.txt: manual.html >-- -LC_ALL=C lynx -dump -nolist -with_backspaces manual.html > $@ || \ >+- -LC_ALL=C lynx -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ || \ > - LC_ALL=C w3m -dump manual.html > $@ || \ > - LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@ >-+ -LC_ALL=C lynx -dump -nolist -with_backspaces manual.html > $@ >++ -LC_ALL=C lynx -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ > > Muttrc: stamp-doc-rc > >diff -ru /usr/ports/mail/mutt-devel/files/patch-buffy.c ./files/patch-buffy.c >--- /usr/ports/mail/mutt-devel/files/patch-buffy.c 2010-05-21 13:13:47.000000000 +0200 >+++ ./files/patch-buffy.c 1970-01-01 01:00:00.000000000 +0100 >@@ -1,10 +0,0 @@ >---- buffy.c.orig 2009-06-02 19:16:26.000000000 +0200 >-+++ buffy.c 2010-05-18 07:41:47.000000000 +0200 >-@@ -236,7 +236,6 @@ >- { >- if(*tmp) >- { >-- FREE (&((*tmp)->path)); >- tmp1=(*tmp)->next; >- FREE (tmp); /* __FREE_CHECKED__ */ >- *tmp=tmp1; >diff -ru /usr/ports/mail/mutt-devel/files/patch-doc-manual.xml.head ./files/patch-doc-manual.xml.head >--- /usr/ports/mail/mutt-devel/files/patch-doc-manual.xml.head 2009-06-23 00:52:30.000000000 +0200 >+++ ./files/patch-doc-manual.xml.head 2010-09-17 16:33:18.000000000 +0200 >@@ -8,12 +8,3 @@ > <book> > > <bookinfo> >-@@ -7271,7 +7271,7 @@ >- <para> >- The built-in SMTP support supports encryption (the <literal>smtps</literal> protocol >- using SSL or TLS) as well as SMTP authentication using SASL. The authentication mechanisms >--for SASL are specified in <link linkend="smtp-authenticators">$smtp_authenticators</link> >-+for SASL are specified in <literal>$smtp_authenticators</literal> >- defaulting to an empty list which makes Mutt try all available methods >- from most-secure to least-secure. >- </para> >diff -ru /usr/ports/mail/mutt-devel/files/patch-mktemp ./files/patch-mktemp >--- /usr/ports/mail/mutt-devel/files/patch-mktemp 2009-02-09 17:58:46.000000000 +0100 >+++ ./files/patch-mktemp 2010-09-17 16:33:18.000000000 +0200 >@@ -1,15 +1,22 @@ >---- muttlib.c.orig 2009-02-06 13:39:51.000000000 +0100 >-+++ muttlib.c 2009-02-06 13:42:35.000000000 +0100 >-@@ -733,7 +733,11 @@ >+--- muttlib.c.orig 2010-09-17 16:14:15.000000000 +0200 >++++ muttlib.c 2010-09-17 16:18:51.000000000 +0200 >+@@ -781,14 +781,11 @@ > >- void _mutt_mktemp (char *s, const char *src, int line) >+ void _mutt_mktemp (char *s, size_t slen, const char *src, int line) > { >-- snprintf (s, _POSIX_PATH_MAX, "%s/mutt-%s-%d-%d-%d", NONULL (Tempdir), NONULL(Hostname), (int) getuid(), (int) getpid (), Counter++); >-+ char t[7]; >-+ snprintf (t, 7, "-%05d", Counter++); >-+ snprintf (s, _POSIX_PATH_MAX-6, "%s/mutt-%s-XXXXXXXX", NONULL(Tempdir), NONULL(Hostname)); >-+ mktemp (s); >-+ strncat(s, t, 6); >- dprint (3, (debugfile, "%s:%d: mutt_mktemp returns \"%s\".\n", src, line, s)); >- unlink (s); >+- size_t n = snprintf (s, slen, "%s/mutt-%s-%d-%d-%ld%ld", NONULL (Tempdir), NONULL (Hostname), >+- (int) getuid (), (int) getpid (), random (), random ()); >+- if (n >= slen) >+- dprint (1, (debugfile, "%s:%d: ERROR: insufficient buffer space to hold temporary filename! slen=%zu but need %zu\n", >+- src, line, slen, n)); >+- dprint (3, (debugfile, "%s:%d: mutt_mktemp returns \"%s\".\n", src, line, s)); >+- if (unlink (s) && errno != ENOENT) >+- dprint (1, (debugfile, "%s:%d: ERROR: unlink(\"%s\"): %s (errno %d)\n", src, line, s, strerror (errno), errno)); >++ char t[7]; >++ snprintf (t, 7, "-%05d", Counter++); >++ snprintf (s, _POSIX_PATH_MAX-6, "%s/mutt-%s-XXXXXXXX", NONULL(Tempdir), NONULL(Hostname)); >++ mktemp (s); >++ strncat(s, t, 6); > } >+ >+ void mutt_free_alias (ALIAS **p) >diff -ru /usr/ports/mail/mutt-devel/files/patch-mutt-ssl.c ./files/patch-mutt-ssl.c >--- /usr/ports/mail/mutt-devel/files/patch-mutt-ssl.c 2010-05-05 23:27:19.000000000 +0200 >+++ ./files/patch-mutt-ssl.c 1970-01-01 01:00:00.000000000 +0100 >@@ -1,11 +0,0 @@ >---- mutt_ssl.c.orig 2009-06-10 07:08:29.000000000 +0200 >-+++ mutt_ssl.c 2010-05-03 10:45:21.000000000 +0200 >-@@ -652,7 +652,7 @@ >- char *buf = NULL; >- int bufsize; >- /* needed to get the DNS subjectAltNames: */ >-- STACK *subj_alt_names; >-+ STACK_OF(GENERAL_NAME) *subj_alt_names; >- int subj_alt_names_count; >- GENERAL_NAME *subj_alt_name; >- /* did we find a name matching hostname? */ >diff -ru /usr/ports/mail/mutt-devel/files/patch-pgp ./files/patch-pgp >--- /usr/ports/mail/mutt-devel/files/patch-pgp 1970-01-01 01:00:00.000000000 +0100 >+++ ./files/patch-pgp 2010-09-17 16:59:16.000000000 +0200 >@@ -0,0 +1,134 @@ >+--- crypt-gpgme.c~ 2010-09-10 07:41:33.584316201 +1000 >++++ crypt-gpgme.c 2010-09-10 08:22:32.948976728 +1000 >+@@ -2003,12 +2003,14 @@ >+ { >+ if (!mutt_strncmp ("-----BEGIN PGP ", buf, 15)) >+ { >+- if (!mutt_strcmp ("MESSAGE-----\n", buf + 15)) >++ if (!mutt_strcmp ("MESSAGE-----\n", buf + 15) || >++ !mutt_strcmp ("MESSAGE-----\r\n", buf + 15)) >+ { >+ enc = 1; >+ break; >+ } >+- else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15)) >++ else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) || >++ !mutt_strcmp ("SIGNED MESSAGE-----\r\n", buf + 15)) >+ { >+ sgn = 1; >+ break; >+@@ -2128,7 +2130,8 @@ >+ continue; >+ } >+ >+- if (!mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n")) >++ if (!mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") || >++ !mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\r\n")) >+ break; >+ >+ if (armor_header) >+@@ -2196,14 +2199,17 @@ >+ clearsign = 0; >+ start_pos = last_pos; >+ >+- if (!mutt_strcmp ("MESSAGE-----\n", buf + 15)) >++ if (!mutt_strcmp ("MESSAGE-----\n", buf + 15) || >++ !mutt_strcmp ("MESSAGE-----\r\n", buf + 15)) >+ needpass = 1; >+- else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15)) >++ else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) || >++ !mutt_strcmp ("SIGNED MESSAGE-----\r\n", buf + 15)) >+ { >+ clearsign = 1; >+ needpass = 0; >+ } >+- else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15)) >++ else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) || >++ !mutt_strcmp ("PUBLIC KEY BLOCK-----\r\n", buf + 15)) >+ { >+ needpass = 0; >+ pgp_keyblock = 1; >+--- pgp.c~ 2009-05-31 03:20:08.000000000 +1000 >++++ pgp.c 2010-09-10 08:27:40.317064142 +1000 >+@@ -219,7 +219,8 @@ >+ continue; >+ } >+ >+- if (mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") == 0) >++ if (mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") == 0 || >++ mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\r\n") == 0) >+ break; >+ >+ if (armor_header) >+@@ -287,14 +288,17 @@ >+ clearsign = 0; >+ start_pos = last_pos; >+ >+- if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0) >++ if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0 || >++ mutt_strcmp ("MESSAGE-----\r\n", buf + 15) == 0) >+ needpass = 1; >+- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0) >++ else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0 || >++ mutt_strcmp ("SIGNED MESSAGE-----\r\n", buf + 15) == 0) >+ { >+ clearsign = 1; >+ needpass = 0; >+ } >+- else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15)) >++ else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) || >++ !mutt_strcmp ("PUBLIC KEY BLOCK-----\r\n", buf + 15)) >+ { >+ needpass = 0; >+ pgp_keyblock = 1; >+@@ -327,10 +331,14 @@ >+ >+ fputs (buf, tmpfp); >+ >+- if ((needpass && mutt_strcmp ("-----END PGP MESSAGE-----\n", buf) == 0) || >+- (!needpass >+- && (mutt_strcmp ("-----END PGP SIGNATURE-----\n", buf) == 0 >+- || mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0))) >++ if ((needpass && >++ (mutt_strcmp ("-----END PGP MESSAGE-----\n", buf) == 0 || >++ mutt_strcmp ("-----END PGP MESSAGE-----\r\n", buf) == 0)) || >++ (!needpass && >++ (mutt_strcmp ("-----END PGP SIGNATURE-----\n", buf) == 0 || >++ mutt_strcmp ("-----END PGP SIGNATURE-----\r\n", buf) == 0 || >++ mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0 || >++ mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\r\n",buf) == 0))) >+ break; >+ /* remember optional Charset: armor header as defined by RfC4880 */ >+ if (mutt_strncmp ("Charset: ", buf, 9) == 0) >+@@ -554,11 +562,14 @@ >+ { >+ if (mutt_strncmp ("-----BEGIN PGP ", buf, 15) == 0) >+ { >+- if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0) >++ if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0 || >++ mutt_strcmp ("MESSAGE-----\r\n", buf + 15) == 0) >+ enc = 1; >+- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0) >++ else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0 || >++ mutt_strcmp ("SIGNED MESSAGE-----\r\n", buf + 15) == 0) >+ sgn = 1; >+- else if (mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0) >++ else if (mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0 || >++ mutt_strcmp ("PUBLIC KEY BLOCK-----\r\n", buf + 15) == 0) >+ key = 1; >+ } >+ } >+@@ -1067,9 +1078,11 @@ >+ */ >+ while (fgets (buffer, sizeof (buffer) - 1, pgpout) != NULL) >+ { >+- if (mutt_strcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0) >++ if (mutt_strcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0 || >++ mutt_strcmp ("-----BEGIN PGP MESSAGE-----\r\n", buffer) == 0) >+ fputs ("-----BEGIN PGP SIGNATURE-----\n", fp); >+- else if (mutt_strcmp("-----END PGP MESSAGE-----\n", buffer) == 0) >++ else if (mutt_strcmp("-----END PGP MESSAGE-----\n", buffer) == 0 || >++ mutt_strcmp("-----END PGP MESSAGE-----\r\n", buffer) == 0) >+ fputs ("-----END PGP SIGNATURE-----\n", fp); >+ else >+ fputs (buffer, fp);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 150703
: 109660 |
109661