#include "buffy.h"
#include <libgen.h>
#include "keymap.h"
-#include <stdbool.h>
#include <ctype.h>
/*BUFFY *CurBuffy = 0;*/
static BUFFY *TopBuffy = 0;
static BUFFY *BottomBuffy = 0;
static int known_lines = 0;
-static bool initialized = false;
+static short initialized = 0;
static int prev_show_value;
static short saveSidebarWidth;
static char *entry = 0;
{
if (strcmp (tmp->path, Context->path) == 0)
{
+ tmp->new = Context->new;
tmp->msg_unread = Context->unread;
tmp->msgcount = Context->msgcount;
tmp->msg_flagged = Context->flagged;
BUFFY *tmp;
short delim_len = mutt_strlen (SidebarDelim);
+ if(strlen(SidebarDelim)>=SidebarWidth){
+ mutt_endwin(NULL);
+ printf("Your sidebar delimiter string is longer (or as long as) than the sidebar width. Make it shorter! \n");
+ exit(1);
+ }
+
/* initialize first time */
if(!initialized) {
prev_show_value = option(OPTMBOXPANE);
saveSidebarWidth = SidebarWidth;
if(!option(OPTMBOXPANE)) SidebarWidth = 0;
- initialized = true;
+ initialized = 1;
}
/* save or restore the value SidebarWidth */
/* draw the divider */
/* SETCOLOR(MT_COLOR_STATUS); */
SETCOLOR(MT_COLOR_SIDEBAR);
- for (lines = option (OPTSTATUSONTOP) ? 0 : 1;
+ for (lines = 1;
lines < LINES-1-(menu != MENU_PAGER || option (OPTSTATUSONTOP)); lines++ ) {
move(lines, SidebarWidth - delim_len);
- addstr (NONULL (SidebarDelim));
+ if (option (OPTASCIICHARS))
+ addstr (NONULL (SidebarDelim));
+ else if(!option(OPTASCIICHARS) && !strcmp(SidebarDelim,"|"))
+ addch(ACS_VLINE);
+ else if ((Charset_is_utf8) && !strcmp(SidebarDelim, "|"))
+ addstr ("\342\224\202");
+ else
+ addstr (NONULL (SidebarDelim));
}
SETCOLOR(MT_COLOR_NORMAL);
lines = option(OPTHELP) ? 1 : 0; /* go back to the top */
if ( CurBuffy == 0 ) CurBuffy = Incoming;
+#if 0
if ( known_lines != LINES || TopBuffy == 0 || BottomBuffy == 0 )
+#endif
calc_boundaries(menu);
tmp = TopBuffy;
SETCOLOR(MT_COLOR_NORMAL);
move( lines, 0 );
- if ( Context && !strcmp( tmp->path, Context->path ) ) {
- printw( "%.*s", SidebarWidth - delim_len,
- make_sidebar_entry(basename(tmp->path),
- Context->msgcount, Context->unread, Context->flagged));
- tmp->msg_unread = Context->unread;
- tmp->msgcount = Context->msgcount;
- tmp->msg_flagged = Context->flagged;
+ if (option(OPTSIDEBARNEWMAILONLY)) {
+ if (tmp->msg_unread > 0) {
+ if ( Context && !strcmp( tmp->path, Context->path ) ) {
+ printw( "%.*s", SidebarWidth - delim_len,
+ make_sidebar_entry(basename(tmp->path),
+ Context->msgcount, Context->unread, Context->flagged));
+ tmp->msg_unread = Context->unread;
+ tmp->msgcount = Context->msgcount;
+ tmp->msg_flagged = Context->flagged;
+ }
+ else
+ printw( "%.*s", SidebarWidth - delim_len,
+ make_sidebar_entry(basename(tmp->path),
+ tmp->msgcount,tmp->msg_unread, tmp->msg_flagged));
+ lines++;
+ }
+ } else {
+ if ( Context && !strcmp( tmp->path, Context->path ) ) {
+ printw( "%.*s", SidebarWidth - delim_len,
+ make_sidebar_entry(basename(tmp->path),
+ Context->msgcount, Context->unread, Context->flagged));
+ tmp->msg_unread = Context->unread;
+ tmp->msgcount = Context->msgcount;
+ tmp->msg_flagged = Context->flagged;
+ }
+ else
+ printw( "%.*s", SidebarWidth - delim_len,
+ make_sidebar_entry(basename(tmp->path),
+ tmp->msgcount,tmp->msg_unread, tmp->msg_flagged));
+ lines++;
}
- else
- printw( "%.*s", SidebarWidth - delim_len,
- make_sidebar_entry(basename(tmp->path),
- tmp->msgcount,tmp->msg_unread, tmp->msg_flagged));
- lines++;
}
SETCOLOR(MT_COLOR_NORMAL);
for ( ; lines < LINES - 1 - (menu != MENU_PAGER || option (OPTSTATUSONTOP)); lines++ ) {
switch (op) {
case OP_SIDEBAR_NEXT:
- if ( CurBuffy->next == NULL ) {
- mutt_error (_("You are on the last mailbox."));
- return;
- }
- CurBuffy = CurBuffy->next;
- break;
+ if (!option(OPTSIDEBARNEWMAILONLY)) {
+ if ( CurBuffy->next == NULL ) {
+ mutt_error (_("You are on the last mailbox."));
+ return;
+ }
+ CurBuffy = CurBuffy->next;
+ break;
+ } /* the fall-through is intentional */
case OP_SIDEBAR_NEXT_NEW:
if ( (tmp = exist_next_new()) == NULL) {
mutt_error (_("No next mailboxes with new mail."));
else CurBuffy = tmp;
break;
case OP_SIDEBAR_PREV:
- if ( CurBuffy->prev == NULL ) {
- mutt_error (_("You are on the first mailbox."));
- return;
- }
- CurBuffy = CurBuffy->prev;
- break;
+ if (!option(OPTSIDEBARNEWMAILONLY)) {
+ if ( CurBuffy->prev == NULL ) {
+ mutt_error (_("You are on the first mailbox."));
+ return;
+ }
+ CurBuffy = CurBuffy->prev;
+ break;
+ } /* the fall-through is intentional */
case OP_SIDEBAR_PREV_NEW:
if ( (tmp = exist_prev_new()) == NULL) {
mutt_error (_("No previous mailbox with new mail."));