X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=menu.c;h=404dc796fecc7f0b54975713b6b1905aaca2c889;hp=8f64595bdffb3f278d909c00afb9a2f9f2b0e620;hb=c228dbc78fa40b09da8bcf5c1650d6006c389ce4;hpb=74a2265af51ce89bca845adc1d68f273c9933c13 diff --git a/menu.c b/menu.c index 8f64595..404dc79 100644 --- a/menu.c +++ b/menu.c @@ -12,6 +12,7 @@ #endif #include "mutt.h" +#include "enter.h" #include "mutt_curses.h" #include "mutt_menu.h" #include "mbyte.h" @@ -36,7 +37,7 @@ static void print_enriched_string (int attr, unsigned char *s, int do_color) { wchar_t wc; size_t k; - size_t n = mutt_strlen ((char *) s); + size_t n = str_len ((char *) s); mbstate_t mbstate; memset (&mbstate, 0, sizeof (mbstate)); @@ -149,16 +150,16 @@ void menu_pad_string (char *s, size_t n) { int shift = option (OPTARROWCURSOR) ? 3 : 0; int cols; - char *tmpbuf = safe_malloc (n); + char *tmpbuf = mem_malloc (n); if (option (OPTMBOXPANE)) cols = COLS - shift - SidebarWidth; else cols = COLS - shift; - mutt_format_string (tmpbuf, n, cols, cols, 0, ' ', s, mutt_strlen (s), 1); + mutt_format_string (tmpbuf, n, cols, cols, 0, ' ', s, str_len (s), 1); tmpbuf[n - 1] = 0; snprintf (s, n, "%s", tmpbuf); /* overkill */ - FREE (&tmpbuf); + mem_free (&tmpbuf); } void menu_redraw_full (MUTTMENU * menu) @@ -203,7 +204,7 @@ void menu_redraw_index (MUTTMENU * menu) char buf[STRING]; int i; - draw_sidebar (1); + sidebar_draw (1); for (i = menu->top; i < menu->top + menu->pagelen; i++) { if (i < menu->max) { menu_make_entry (buf, sizeof (buf), menu, i); @@ -220,8 +221,11 @@ void menu_redraw_index (MUTTMENU * menu) attrset (menu->color (i)); addch (' '); } - else - move (i - menu->top + menu->offset, SidebarWidth + 3); + else { + attrset (menu->color (i)); + move (i - menu->top + menu->offset, SidebarWidth); + addstr (" "); + } print_enriched_string (menu->color (i), (unsigned char *) buf, 1); SETCOLOR (MT_COLOR_NORMAL); @@ -653,7 +657,7 @@ static int menu_search_generic (MUTTMENU * m, regex_t * re, int n) MUTTMENU *mutt_new_menu (void) { - MUTTMENU *p = (MUTTMENU *) safe_calloc (1, sizeof (MUTTMENU)); + MUTTMENU *p = (MUTTMENU *) mem_calloc (1, sizeof (MUTTMENU)); p->current = 0; p->top = 0; @@ -669,16 +673,16 @@ void mutt_menuDestroy (MUTTMENU ** p) { int i; - FREE (&(*p)->searchBuf); + mem_free (&(*p)->searchBuf); if ((*p)->dialog) { for (i = 0; i < (*p)->max; i++) - FREE (&(*p)->dialog[i]); + mem_free (&(*p)->dialog[i]); - FREE (&(*p)->dialog); + mem_free (&(*p)->dialog); } - FREE (p); + mem_free (p); } #define M_SEARCH_UP 1 @@ -697,7 +701,7 @@ static int menu_search (MUTTMENU * menu, int op) _("Reverse search for: "), buf, sizeof (buf), M_CLEAR) != 0 || !buf[0]) return (-1); - mutt_str_replace (&menu->searchBuf, buf); + str_replace (&menu->searchBuf, buf); menu->searchDir = (op == OP_SEARCH) ? M_SEARCH_DOWN : M_SEARCH_UP; } else { @@ -828,13 +832,16 @@ int mutt_menuLoop (MUTTMENU * menu) menu->oldcurrent = menu->current; - - /* move the cursor out of the way */ - move (menu->current - menu->top + menu->offset, - (option (OPTARROWCURSOR) ? 2 : COLS - 1)); + if (option (OPTARROWCURSOR)) + move (menu->current - menu->top + menu->offset, 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else + move (menu->current - menu->top + menu->offset, COLS - 1); mutt_refresh (); + /* try to catch dialog keys before ops */ if (menu->dialog && menu_dialog_dokey (menu, &i) == 0) return i;