diff -Ncr mutt-1.5.6/Makefile.am mutt-1.5.6-new/Makefile.am *** mutt-1.5.6/Makefile.am Wed Nov 5 14:58:41 2003 --- mutt-1.5.6-new/Makefile.am Wed Jul 21 18:44:15 2004 *************** *** 28,34 **** 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 utf8.c mbyte.c wcwidth.c \ ! url.c ascii.c mutt_idna.c mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ $(INTLLIBS) $(LIBICONV) --- 28,34 ---- 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 utf8.c mbyte.c wcwidth.c \ ! url.c ascii.c mutt_idna.c sidebar.c mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ $(INTLLIBS) $(LIBICONV) *************** *** 62,68 **** mutt_tunnel.c pop.c pop_auth.c pop_lib.c smime.c pgp.c pgpinvoke.c pgpkey.c \ pgplib.c sha1.c pgpmicalg.c gnupgparse.c resize.c dotlock.c remailer.c \ browser.h mbyte.h remailer.h url.h mutt_ssl_nss.c \ ! pgppacket.c mutt_idna.h hcache.c EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO \ configure acconfig.h account.h \ --- 62,68 ---- mutt_tunnel.c pop.c pop_auth.c pop_lib.c smime.c pgp.c pgpinvoke.c pgpkey.c \ pgplib.c sha1.c pgpmicalg.c gnupgparse.c resize.c dotlock.c remailer.c \ browser.h mbyte.h remailer.h url.h mutt_ssl_nss.c \ ! pgppacket.c mutt_idna.h hcache.c sidebar.h EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO \ configure acconfig.h account.h \ diff -Ncr mutt-1.5.6/Makefile.in mutt-1.5.6-new/Makefile.in *** mutt-1.5.6/Makefile.in Sun Feb 1 13:24:01 2004 --- mutt-1.5.6-new/Makefile.in Wed Jul 21 18:44:15 2004 *************** *** 121,127 **** BUILT_SOURCES = keymap_defs.h patchlist.c bin_PROGRAMS = mutt @DOTLOCK_TARGET@ @PGPAUX_TARGET@ @SMIMEAUX_TARGET@ ! mutt_SOURCES = $(BUILT_SOURCES) addrbook.c alias.c attach.c base64.c browser.c buffy.c color.c compress.c crypt.c cryptglue.c commands.c complete.c compose.c copy.c curs_lib.c curs_main.c date.c edit.c enter.c flags.c init.c filter.c from.c getdomain.c handler.c hash.c hdrline.c headers.c help.c hook.c keymap.c main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c postpone.c query.c recvattach.c recvcmd.c rfc822.c rfc1524.c rfc2047.c rfc2231.c 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 utf8.c mbyte.c wcwidth.c url.c ascii.c mutt_idna.c mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) $(INTLLIBS) $(LIBICONV) --- 121,127 ---- BUILT_SOURCES = keymap_defs.h patchlist.c bin_PROGRAMS = mutt @DOTLOCK_TARGET@ @PGPAUX_TARGET@ @SMIMEAUX_TARGET@ ! mutt_SOURCES = $(BUILT_SOURCES) addrbook.c alias.c attach.c base64.c browser.c buffy.c color.c compress.c crypt.c cryptglue.c commands.c complete.c compose.c copy.c curs_lib.c curs_main.c date.c edit.c enter.c flags.c init.c filter.c from.c getdomain.c handler.c hash.c hdrline.c headers.c help.c hook.c keymap.c main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c postpone.c query.c recvattach.c recvcmd.c rfc822.c rfc1524.c rfc2047.c rfc2231.c 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 utf8.c mbyte.c wcwidth.c url.c ascii.c mutt_idna.c sidebar.c mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) $(INTLLIBS) $(LIBICONV) *************** *** 150,156 **** CPPFLAGS = @CPPFLAGS@ -I$(includedir) ! EXTRA_mutt_SOURCES = account.c md5c.c mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_tunnel.c pop.c pop_auth.c pop_lib.c smime.c pgp.c pgpinvoke.c pgpkey.c pgplib.c sha1.c pgpmicalg.c gnupgparse.c resize.c dotlock.c remailer.c browser.h mbyte.h remailer.h url.h mutt_ssl_nss.c pgppacket.c mutt_idna.h hcache.c EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO configure acconfig.h account.h attach.h buffy.h charset.h copy.h dotlock.h functions.h gen_defs globals.h hash.h history.h init.h keymap.h mutt_crypt.h mailbox.h mapping.h md5.h mime.h mutt.h mutt_curses.h mutt_menu.h mutt_regex.h mutt_sasl.h mutt_socket.h mutt_ssl.h mutt_tunnel.h mx.h pager.h pgp.h pop.h protos.h reldate.h rfc1524.h rfc2047.h rfc2231.h rfc822.h sha1.h sort.h mime.types VERSION prepare _regex.h OPS.MIX README.SECURITY remailer.c remailer.h browser.h mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h Muttrc.head Muttrc makedoc.c stamp-doc-rc README.SSL smime.h muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh ChangeLog.old mkchangelog.sh cvslog2changelog.pl mutt_idna.h snprintf.c regex.c --- 150,156 ---- CPPFLAGS = @CPPFLAGS@ -I$(includedir) ! EXTRA_mutt_SOURCES = account.c md5c.c mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_tunnel.c pop.c pop_auth.c pop_lib.c smime.c pgp.c pgpinvoke.c pgpkey.c pgplib.c sha1.c pgpmicalg.c gnupgparse.c resize.c dotlock.c remailer.c browser.h mbyte.h remailer.h url.h mutt_ssl_nss.c pgppacket.c mutt_idna.h hcache.c sidebar.h EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO configure acconfig.h account.h attach.h buffy.h charset.h copy.h dotlock.h functions.h gen_defs globals.h hash.h history.h init.h keymap.h mutt_crypt.h mailbox.h mapping.h md5.h mime.h mutt.h mutt_curses.h mutt_menu.h mutt_regex.h mutt_sasl.h mutt_socket.h mutt_ssl.h mutt_tunnel.h mx.h pager.h pgp.h pop.h protos.h reldate.h rfc1524.h rfc2047.h rfc2231.h rfc822.h sha1.h sort.h mime.types VERSION prepare _regex.h OPS.MIX README.SECURITY remailer.c remailer.h browser.h mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h Muttrc.head Muttrc makedoc.c stamp-doc-rc README.SSL smime.h muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh ChangeLog.old mkchangelog.sh cvslog2changelog.pl mutt_idna.h snprintf.c regex.c *************** *** 196,202 **** recvcmd.o rfc822.o rfc1524.o rfc2047.o rfc2231.o score.o send.o \ sendlib.o signal.o sort.o status.o system.o thread.o charset.o \ history.o lib.o muttlib.o editmsg.o utf8.o mbyte.o wcwidth.o url.o \ ! ascii.o mutt_idna.o mutt_LDFLAGS = SCRIPTS = $(bin_SCRIPTS) --- 196,202 ---- recvcmd.o rfc822.o rfc1524.o rfc2047.o rfc2231.o score.o send.o \ sendlib.o signal.o sort.o status.o system.o thread.o charset.o \ history.o lib.o muttlib.o editmsg.o utf8.o mbyte.o wcwidth.o url.o \ ! ascii.o mutt_idna.o sidebar.o mutt_LDFLAGS = SCRIPTS = $(bin_SCRIPTS) diff -Ncr mutt-1.5.6/Muttrc mutt-1.5.6-new/Muttrc *** mutt-1.5.6/Muttrc Sun Feb 1 13:22:18 2004 --- mutt-1.5.6-new/Muttrc Wed Jul 21 18:44:15 2004 *************** *** 1408,1413 **** --- 1408,1433 ---- # folder will be appended. # # + # set mbox_pane_show=no + # + # Name: mbox_pane_show + # Type: boolean + # Default: no + # + # + # This specifies whether or not to show the mailbox list pane. + # + # + # set mbox_pane_width=0 + # + # Name: mbox_pane_width + # Type: number + # Default: 0 + # + # + # The width of the mailbox list pane (left sidebar like in GUIs). + # + # # set mbox_type=mbox # # Name: mbox_type diff -Ncr mutt-1.5.6/OPS mutt-1.5.6-new/OPS *** mutt-1.5.6/OPS Wed Nov 5 04:41:31 2003 --- mutt-1.5.6-new/OPS Wed Jul 21 18:44:15 2004 *************** *** 174,176 **** --- 174,181 ---- OP_MAIN_SHOW_LIMIT "show currently active limit pattern" OP_MAIN_COLLAPSE_THREAD "collapse/uncollapse current thread" OP_MAIN_COLLAPSE_ALL "collapse/uncollapse all threads" + OP_SCROLL_MBOX_UP "scroll the mailbox pane up 1 page" + OP_SCROLL_MBOX_DOWN "scroll the mailbox pane down 1 page" + OP_NEXT_MBOX "go down to next mailbox" + OP_PREV_MBOX "go to previous mailbox" + OP_OPEN_MBOX "open hilighted mailbox" diff -Ncr mutt-1.5.6/PATCHES mutt-1.5.6-new/PATCHES *** mutt-1.5.6/PATCHES Sun Feb 1 12:42:47 2004 --- mutt-1.5.6-new/PATCHES Wed Jul 21 18:57:27 2004 *************** *** 0 **** --- 1 ---- + patch-1.5.6.jrh.sidebar.12 diff -Ncr mutt-1.5.6/buffy.c mutt-1.5.6-new/buffy.c *** mutt-1.5.6/buffy.c Sun Feb 1 13:20:59 2004 --- mutt-1.5.6-new/buffy.c Wed Jul 21 18:44:15 2004 *************** *** 263,269 **** char path[_POSIX_PATH_MAX]; struct stat contex_sb; time_t t; ! #ifdef USE_IMAP /* update postponed count as well, on force */ if (force) --- 263,269 ---- char path[_POSIX_PATH_MAX]; struct stat contex_sb; time_t t; ! CONTEXT *ctx; #ifdef USE_IMAP /* update postponed count as well, on force */ if (force) *************** *** 296,301 **** --- 296,303 ---- for (tmp = Incoming; tmp; tmp = tmp->next) { + if ( tmp->new == 1 ) + tmp->has_new = 1; tmp->new = 0; #ifdef USE_IMAP *************** *** 349,358 **** case M_MBOX: case M_MMDF: ! if (STAT_CHECK) { BuffyCount++; ! tmp->new = 1; } #ifdef BUFFY_SIZE else --- 351,377 ---- case M_MBOX: case M_MMDF: ! { ! if (STAT_CHECK || tmp->msgcount == 0) { + BUFFY b = *tmp; + int msgcount = 0; + int msg_unread = 0; BuffyCount++; ! /* parse the mailbox, to see how much mail there is */ ! ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT, ! 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; } #ifdef BUFFY_SIZE else *************** *** 364,370 **** if (tmp->newly_created && (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) tmp->newly_created = 0; ! break; case M_MAILDIR: --- 383,389 ---- if (tmp->newly_created && (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) tmp->newly_created = 0; ! } break; case M_MAILDIR: *************** *** 375,380 **** --- 394,401 ---- tmp->magic = 0; break; } + tmp->msgcount = 0; + tmp->msg_unread = 0; while ((de = readdir (dirp)) != NULL) { char *p; *************** *** 383,404 **** { /* 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; #ifdef USE_IMAP case M_IMAP: ! if ((tmp->new = imap_mailbox_check (tmp->path, 1)) > 0) BuffyCount++; else tmp->new = 0; --- 404,464 ---- { /* one new and undeleted message is enough */ BuffyCount++; ! tmp->has_new = tmp->new = 1; ! tmp->msgcount++; ! tmp->msg_unread++; ! } ! } ! closedir (dirp); ! 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 != '.' && ! (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) ! { ! /* one new and undeleted message is enough */ ! BuffyCount++; ! tmp->has_new = tmp->new = 1; ! 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; #ifdef USE_IMAP case M_IMAP: ! tmp->msgcount = imap_mailbox_check(tmp->path, 0); ! if ((tmp->new = imap_mailbox_check (tmp->path, 1)) > 0) { BuffyCount++; + } else tmp->new = 0; diff -Ncr mutt-1.5.6/buffy.h mutt-1.5.6-new/buffy.h *** mutt-1.5.6/buffy.h Wed Dec 11 06:19:39 2002 --- mutt-1.5.6-new/buffy.h Wed Jul 21 18:44:15 2004 *************** *** 27,33 **** --- 27,37 ---- long size; #endif /* BUFFY_SIZE */ struct buffy_t *next; + struct buffy_t *prev; short new; /* mailbox has new mail */ + short has_new; /* set it new if new and not read */ + int msgcount; /* total number of messages */ + int msg_unread; /* number of unread messages */ short notified; /* user has been notified */ short magic; /* mailbox type */ short newly_created; /* mbox or mmdf just popped into existence */ diff -Ncr mutt-1.5.6/color.c mutt-1.5.6-new/color.c *** mutt-1.5.6/color.c Wed Nov 5 04:41:31 2003 --- mutt-1.5.6-new/color.c Wed Jul 21 18:44:15 2004 *************** *** 89,94 **** --- 89,95 ---- { "bold", MT_COLOR_BOLD }, { "underline", MT_COLOR_UNDERLINE }, { "index", MT_COLOR_INDEX }, + { "sidebarnew", MT_COLOR_NEW }, { NULL, 0 } }; diff -Ncr mutt-1.5.6/compose.c mutt-1.5.6-new/compose.c *** mutt-1.5.6/compose.c Wed Nov 5 04:41:31 2003 --- mutt-1.5.6-new/compose.c Wed Jul 21 18:44:15 2004 *************** *** 67,73 **** #define HDR_XOFFSET 10 #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ ! #define W (COLS - HDR_XOFFSET) static char *Prompts[] = { --- 67,73 ---- #define HDR_XOFFSET 10 #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ ! #define W (COLS - HDR_XOFFSET - SidebarWidth) static char *Prompts[] = { *************** *** 110,125 **** 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; --- 110,125 ---- 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; *************** *** 133,139 **** addstr (_("Clear")); clrtoeol (); ! move (HDR_CRYPTINFO, 0); clrtoeol (); if ((WithCrypto & APPLICATION_PGP) && msg->security & APPLICATION_PGP && msg->security & SIGN) --- 133,139 ---- addstr (_("Clear")); clrtoeol (); ! move (HDR_CRYPTINFO, SidebarWidth); clrtoeol (); if ((WithCrypto & APPLICATION_PGP) && msg->security & APPLICATION_PGP && msg->security & SIGN) *************** *** 146,152 **** if ((WithCrypto & APPLICATION_SMIME) && msg->security & APPLICATION_SMIME && (msg->security & ENCRYPT)) { ! mvprintw (HDR_CRYPTINFO, 40, "%s%s", _("Encrypt with: "), NONULL(SmimeCryptAlg)); off = 20; } --- 146,152 ---- if ((WithCrypto & APPLICATION_SMIME) && msg->security & APPLICATION_SMIME && (msg->security & ENCRYPT)) { ! mvprintw (HDR_CRYPTINFO, SidebarWidth + 40, "%s%s", _("Encrypt with: "), NONULL(SmimeCryptAlg)); off = 20; } *************** *** 308,314 **** int c; char *t; ! mvaddstr (HDR_MIX, 0, " Mix: "); if (!chain) { --- 308,314 ---- int c; char *t; ! mvaddstr (HDR_MIX, SidebarWidth, " Mix: "); if (!chain) { *************** *** 323,329 **** if (t && t[0] == '0' && t[1] == '\0') t = ""; ! if (c + mutt_strlen (t) + 2 >= COLS) break; addstr (NONULL(t)); --- 323,329 ---- if (t && t[0] == '0' && t[1] == '\0') t = ""; ! if (c + mutt_strlen (t) + 2 >= COLS - SidebarWidth) break; addstr (NONULL(t)); *************** *** 375,381 **** buf[0] = 0; rfc822_write_address (buf, sizeof (buf), addr, 1); ! mvprintw (line, 0, TITLE_FMT, Prompts[line - 1]); mutt_paddstr (W, buf); } --- 375,381 ---- buf[0] = 0; rfc822_write_address (buf, sizeof (buf), addr, 1); ! mvprintw (line, SidebarWidth, TITLE_FMT, Prompts[line - 1]); mutt_paddstr (W, buf); } *************** *** 385,394 **** 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) --- 385,394 ---- 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) *************** *** 399,405 **** #endif SETCOLOR (MT_COLOR_STATUS); ! mvaddstr (HDR_ATTACH - 1, 0, _("-- Attachments")); BKGDSET (MT_COLOR_STATUS); clrtoeol (); --- 399,405 ---- #endif SETCOLOR (MT_COLOR_STATUS); ! mvaddstr (HDR_ATTACH - 1, SidebarWidth, _("-- Attachments")); BKGDSET (MT_COLOR_STATUS); clrtoeol (); *************** *** 437,443 **** /* 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; --- 437,443 ---- /* 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; *************** *** 679,685 **** 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); --- 679,685 ---- 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); *************** *** 694,700 **** { strfcpy (fcc, buf, _POSIX_PATH_MAX); mutt_pretty_mailbox (fcc); ! move (HDR_FCC, HDR_XOFFSET); mutt_paddstr (W, fcc); fccSet = 1; } --- 694,700 ---- { strfcpy (fcc, buf, _POSIX_PATH_MAX); mutt_pretty_mailbox (fcc); ! move (HDR_FCC, HDR_XOFFSET + SidebarWidth); mutt_paddstr (W, fcc); fccSet = 1; } diff -Ncr mutt-1.5.6/curs_main.c mutt-1.5.6-new/curs_main.c *** mutt-1.5.6/curs_main.c Wed Nov 5 04:41:31 2003 --- mutt-1.5.6-new/curs_main.c Wed Jul 21 18:44:15 2004 *************** *** 24,29 **** --- 24,30 ---- #include "sort.h" #include "buffy.h" #include "mx.h" + #include "sidebar.h" #ifdef USE_POP #include "pop.h" *************** *** 534,539 **** --- 535,541 ---- if (menu->redraw & REDRAW_FULL) { menu_redraw_full (menu); + draw_sidebar(menu->menu); mutt_show_error (); } *************** *** 556,562 **** --- 558,566 ---- if (menu->redraw & REDRAW_STATUS) { + DrawFullLine = 1; menu_status_line (buf, sizeof (buf), menu, NONULL (Status)); + DrawFullLine = 0; CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES-2); SETCOLOR (MT_COLOR_STATUS); mutt_paddstr (COLS, buf); *************** *** 1033,1038 **** --- 1037,1043 ---- menu->redraw = REDRAW_FULL; break; + case OP_OPEN_MBOX: case OP_MAIN_CHANGE_FOLDER: if (attach_msg) *************** *** 1050,1056 **** buf[0] = '\0'; mutt_buffy (buf, sizeof (buf)); ! if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) break; if (!buf[0]) { --- 1055,1063 ---- buf[0] = '\0'; mutt_buffy (buf, sizeof (buf)); ! if ( op == OP_OPEN_MBOX ) ! strncpy( buf, CurBuffy->path, sizeof(buf) ); ! else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) break; if (!buf[0]) { *************** *** 1059,1064 **** --- 1066,1072 ---- } mutt_expand_path (buf, sizeof (buf)); + set_curbuffy(buf); if (mx_get_magic (buf) <= 0) { mutt_error (_("%s is not a mailbox."), buf); *************** *** 2071,2076 **** --- 2079,2090 ---- mutt_what_key(); break; + case OP_SCROLL_MBOX_UP: + case OP_SCROLL_MBOX_DOWN: + case OP_NEXT_MBOX: + case OP_PREV_MBOX: + scroll_sidebar(op, menu->menu); + break; default: if (menu->menu == MENU_MAIN) km_error_key (MENU_MAIN); diff -Ncr mutt-1.5.6/doc/manual.sgml mutt-1.5.6-new/doc/manual.sgml *** mutt-1.5.6/doc/manual.sgml Sun Feb 1 13:22:19 2004 --- mutt-1.5.6-new/doc/manual.sgml Wed Jul 21 18:44:15 2004 *************** *** 3551,3557 **** dotlock_program