From: Jacek Konieczny Date: Tue, 13 Nov 2007 15:26:17 +0000 (+0000) Subject: - patch fixing new message count for Courier-IMAP folders (http://dev.mutt.org/trac... X-Git-Tag: auto/ti/mutt-1_5_17-2~2 X-Git-Url: https://git.pld-linux.org/?p=packages%2Fmutt.git;a=commitdiff_plain;h=e897cf44d3fe948a02bea1f290459816bf9b7843 - patch fixing new message count for Courier-IMAP folders (http://dev.mutt.org/trac/ticket/2897) Changed files: mutt-imap_mxcmp.patch -> 1.1 --- diff --git a/mutt-imap_mxcmp.patch b/mutt-imap_mxcmp.patch new file mode 100644 index 0000000..bc55fcf --- /dev/null +++ b/mutt-imap_mxcmp.patch @@ -0,0 +1,50 @@ +--- mutt-1.5.17/imap/util.c.orig 2007-04-12 22:44:40.000000000 +0200 ++++ mutt-1.5.17/imap/util.c 2007-11-13 15:57:52.000000000 +0100 +@@ -262,13 +262,44 @@ + return 0; + } + +-/* silly helper for mailbox name string comparisons, because of INBOX */ ++/* Silly helper for mailbox name string comparisons, because of INBOX ++ * and different folder delimiters. Warning: unlike strcmp this funtion ++ * won't tell which mailbox is 'greater'. */ + int imap_mxcmp (const char* mx1, const char* mx2) + { ++ int result; ++ int i,j; ++ char c1,c2; ++ + if (!ascii_strcasecmp (mx1, "INBOX") && !ascii_strcasecmp (mx2, "INBOX")) + return 0; +- +- return mutt_strcmp (mx1, mx2); ++ ++ result = mutt_strcmp (mx1, mx2); ++ ++ if (result == 0 || !ImapDelimChars || !ImapDelimChars[0]) { ++ /* exactly equal or no ImapDelimChars -- we are done */ ++ return 0; ++ } ++ ++ if (!mx1 || !mx2) return 1; ++ ++ /* compare with normalized delimiters ++ * (so "INBOX.something" equals "INBOX./something") */ ++ for(i=0,j=0; mx1[i] && mx2[j]; i++, j++) { ++ c1 = mx1[i]; ++ c2 = mx2[j]; ++ if (strchr(ImapDelimChars, c1)) { ++ c1 = ImapDelimChars[0]; ++ while(mx1[i+1] && strchr(ImapDelimChars, mx1[i+1])) i+=1; ++ } ++ if (strchr(ImapDelimChars, c2)) { ++ c2 = ImapDelimChars[0]; ++ while(mx2[j+1] && strchr(ImapDelimChars, mx2[j+1])) j+=1; ++ } ++ if (c1 != c2) return 1; ++ } ++ if (mx1[i] || mx2[j]) return 1; ++ return 0; + } + + /* imap_pretty_mailbox: called by mutt_pretty_mailbox to make IMAP paths