X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=browser.c;h=2cc33417944fb282ae7cfbf873f7dde332d9662b;hp=47c4b3f392af80f95b3ce4e223785950c6cb6764;hb=23976263ea635d42933503805f9eca006ae24daf;hpb=1eeaaac6bdcad962c41bf975a32078cc4a0e578c diff --git a/browser.c b/browser.c index 47c4b3f..2cc3341 100644 --- a/browser.c +++ b/browser.c @@ -145,16 +145,16 @@ static int link_is_dir (const char *folder, const char *path) return 0; } -static const char *folder_format_str (char *dest, ssize_t destlen, char op, - const char *src, const char *fmt, - const char *ifstring, - const char *elsestring, - unsigned long data, format_flag flags) +static const char * +folder_format_str(char *dest, ssize_t destlen, char op, + const char *src, const char *fmt, + const char *ifstr, const char *elstr, + anytype data, format_flag flags) { char fn[STRING], tmp[STRING], permission[11], date[16]; const char *t_fmt; time_t tnow; - FOLDER *folder = (FOLDER *) data; + FOLDER *folder = data.ptr; struct passwd *pw; struct group *gr; int optional = (flags & M_FORMAT_OPTIONAL); @@ -300,24 +300,23 @@ static const char *folder_format_str (char *dest, ssize_t destlen, char op, break; } - if (optional) - m_strformat (dest, destlen, ifstring, folder_format_str, data, 0); - else if (flags & M_FORMAT_OPTIONAL) - m_strformat (dest, destlen, elsestring, folder_format_str, data, 0); - return (src); + if (flags & M_FORMAT_OPTIONAL) + m_strformat(dest, destlen, 0, optional ? ifstr : elstr, + folder_format_str, data, 0); + + return src; } #ifdef USE_NNTP -static const char *newsgroup_format_str (char *dest, ssize_t destlen, char op, - const char *src, const char *fmt, - const char *ifstring, - const char *elsestring, - unsigned long data, - format_flag flags) +static const char * +newsgroup_format_str(char *dest, ssize_t destlen, char op, + const char *src, const char *fmt, + const char *ifstr, const char *elstr, + anytype data, format_flag flags) { char fn[STRING], tmp[STRING]; - FOLDER *folder = (FOLDER *) data; + FOLDER *folder = data.ptr; switch (op) { case 'C': @@ -350,11 +349,11 @@ static const char *newsgroup_format_str (char *dest, ssize_t destlen, char op, case 's': if (flags & M_FORMAT_OPTIONAL) { if (folder->ff->nd->unread != 0) - m_strformat (dest, destlen, ifstring, newsgroup_format_str, - data, flags); + m_strformat(dest, destlen, 0, ifstr, newsgroup_format_str, + data, flags); else - m_strformat (dest, destlen, elsestring, newsgroup_format_str, - data, flags); + m_strformat (dest, destlen, 0, elstr, newsgroup_format_str, + data, flags); } else if (Context && Context->data == folder->ff->nd) { snprintf (tmp, sizeof (tmp), "%%%sd", fmt); @@ -645,12 +644,12 @@ static void folder_entry (char *s, ssize_t slen, MUTTMENU * menu, int num) #ifdef USE_NNTP if (option (OPTNEWS)) - m_strformat (s, slen, NONULL (GroupFormat), newsgroup_format_str, - (unsigned long) &folder, M_FORMAT_ARROWCURSOR); + m_strformat(s, slen, COLS - SW, GroupFormat, newsgroup_format_str, &folder, + option(OPTARROWCURSOR) ? M_FORMAT_ARROWCURSOR : 0); else #endif - m_strformat (s, slen, NONULL (FolderFormat), folder_format_str, - (unsigned long) &folder, M_FORMAT_ARROWCURSOR); + m_strformat(s, slen, COLS - SW, FolderFormat, folder_format_str, &folder, + option(OPTARROWCURSOR) ? M_FORMAT_ARROWCURSOR : 0); } static void init_menu (struct browser_state *state, MUTTMENU * menu,