X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=menu.c;h=404dc796fecc7f0b54975713b6b1905aaca2c889;hp=e88e8f41f5b3e3873d3232c7d4b2ecfdeb4e9e86;hb=c228dbc78fa40b09da8bcf5c1650d6006c389ce4;hpb=c3e57678c8be193fc137854020f3a90887be97c9 diff --git a/menu.c b/menu.c index e88e8f4..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" @@ -21,6 +22,10 @@ #include "imap.h" #endif +#include "lib/mem.h" +#include "lib/intl.h" +#include "lib/str.h" + #include #include @@ -32,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)); @@ -145,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, 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) @@ -199,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); @@ -216,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); @@ -649,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; @@ -665,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 @@ -693,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 { @@ -824,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;