Hi all. [please cc me on any replies; I'm currently not subscribed to mutt-dev.] I've been using the "change_folder_next" patch that Simon Burge posted in August 2002: http://marc.theaimsgroup.com/?l=mutt-dev&m=102819789426654&w=2 With that patch applied and the option enabled, pressing `c' to change folder selects the next folder (relative to the current folder) with unread messages, rather than scanning from the start of the list of `mailboxes'. For example, given: mailboxes =inbox =b =bsrc =board =root and I'm currently in =bsrc, if there's new mail in =inbox and =board, with this option `c' will select =board and not =inbox. As I have ~ 35 mailboxes I monitor, this patch enhances my mail reading ability. However, due to a bug in buffy.c, this patch doesn't work correctly when there's no unread mail. Instead of printing Open mailbox ('?' for list): it prints Open mailbox ('?' for list): /home/lukem/Mail/bsrc Code inspection of buffy.c::mutt_buffy() reveals the bug is that function; instead of changing the first byte of the buffer pointed to by `char *s' to NUL (\0), it sets the pointer itself to \0, which is then ignored by the rest of the function. A fix is attached. Cheers, Luke. PS: it would be excellent if Simon's patch could be applied to the mutt sources; I have described its functionality to a few mutt-using collegues and they unanimously agree that the functionality is useful and, in my opinion, is useful enough to make the default.
--- buffy.c.orig 2002-03-25 22:30:23.000000000 +1100 +++ buffy.c @@ -440,7 +440,7 @@ void mutt_buffy (char *s, size_t slen) { case 0: - s = '\0'; + *s = '\0'; break; case 1: @@ -449,7 +449,7 @@ void mutt_buffy (char *s, size_t slen) tmp = tmp->next; if (!tmp) { - s = '\0'; + *s = '\0'; mutt_buffy_check (1); /* buffy was wrong - resync things */ break; } @@ -475,7 +475,7 @@ void mutt_buffy (char *s, size_t slen) } if (count >= 3) { - s = '\0'; + *s = '\0'; mutt_buffy_check (1); /* buffy was wrong - resync things */ break; }
Attachment:
pgpJvuCFgz6OC.pgp
Description: PGP signature