X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=browser.c;h=2cc33417944fb282ae7cfbf873f7dde332d9662b;hp=ae9c5405555628c6723cf39aa87d2e93b274c9e4;hb=59f5843ea1ff2f68a60ceaeb497cf195bb512238;hpb=98cf5779d8184a74541be1bc61d15c5f35efd310 diff --git a/browser.c b/browser.c index ae9c540..2cc3341 100644 --- a/browser.c +++ b/browser.c @@ -17,22 +17,19 @@ #include #include #include +#include #include "mutt.h" -#include "mx.h" #include "buffy.h" #include "sort.h" #include "browser.h" #include "attach.h" #include -#include #ifdef USE_NNTP -#include "nntp.h" +#include #endif -#include "lib/list.h" - static struct mapping_t FolderHelp[] = { {N_("Exit"), OP_EXIT}, {N_("Chdir"), OP_CHANGE_DIRECTORY}, @@ -148,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[SHORT_STRING], tmp[SHORT_STRING], permission[11], date[16]; + 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); @@ -303,24 +300,23 @@ static const char *folder_format_str (char *dest, ssize_t destlen, char op, break; } - if (optional) - mutt_FormatString (dest, destlen, ifstring, folder_format_str, data, 0); - else if (flags & M_FORMAT_OPTIONAL) - mutt_FormatString (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[SHORT_STRING], tmp[SHORT_STRING]; - FOLDER *folder = (FOLDER *) data; + char fn[STRING], tmp[STRING]; + FOLDER *folder = data.ptr; switch (op) { case 'C': @@ -353,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) - mutt_FormatString (dest, destlen, ifstring, newsgroup_format_str, - data, flags); + m_strformat(dest, destlen, 0, ifstr, newsgroup_format_str, + data, flags); else - mutt_FormatString (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); @@ -465,8 +461,7 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state, if (!(data = (NNTP_DATA *) tmp->data)) continue; nntp_sync_sidebar (data); - if (prefix && *prefix && strncmp (prefix, data->group, - m_strlen(prefix)) != 0) + if (m_strncmp (prefix, data->group, m_strlen(prefix)) != 0) continue; if (!((regexec (Mask.rx, data->group, 0, NULL, 0) == 0) ^ Mask.not)) continue; @@ -484,7 +479,7 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state, struct stat s; DIR *dp; struct dirent *de; - char buffer[_POSIX_PATH_MAX + SHORT_STRING]; + char buffer[_POSIX_PATH_MAX + STRING]; int i = -1; while (stat (d, &s) == -1) { @@ -519,8 +514,7 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state, if (m_strcmp(de->d_name, ".") == 0) continue; /* we don't need . */ - if (prefix && *prefix - && m_strncmp(prefix, de->d_name, m_strlen(prefix)) != 0) + if (m_strncmp(prefix, de->d_name, m_strlen(prefix)) != 0) continue; if (!((regexec (Mask.rx, de->d_name, 0, NULL, 0) == 0) ^ Mask.not)) continue; @@ -535,9 +529,9 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state, i = buffy_lookup (buffer); #ifdef USE_NNTP - add_folder (menu, state, de->d_name, &s, NULL, i >= 0 ? ((BUFFY*) Incoming->data[i])->new : 0); + add_folder (menu, state, de->d_name, &s, NULL, i >= 0 ? Incoming.arr[i]->new : 0); #else - add_folder (menu, state, de->d_name, &s, i >= 0 ? ((BUFFY*) Incoming->data[i])->new : 0); + add_folder (menu, state, de->d_name, &s, i >= 0 ? Incoming.arr[i]->new : 0); #endif } closedir (dp); @@ -578,14 +572,14 @@ static int examine_mailboxes (MUTTMENU * menu, struct browser_state *state) int i = 0; BUFFY* tmp; - if (!Incoming) + if (!Incoming.len) return (-1); buffy_check (0); init_state (state, menu); - for (i = 0; i < Incoming->length; i++) { - tmp = (BUFFY*) Incoming->data[i]; + for (i = 0; i < Incoming.len; i++) { + tmp = Incoming.arr[i]; tmp->magic = mx_get_magic (tmp->path); if (tmp->magic == M_IMAP) { #ifdef USE_NNTP @@ -650,12 +644,12 @@ static void folder_entry (char *s, ssize_t slen, MUTTMENU * menu, int num) #ifdef USE_NNTP if (option (OPTNEWS)) - mutt_FormatString (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 - mutt_FormatString (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, @@ -722,7 +716,7 @@ void _mutt_select_file (char *f, ssize_t flen, int flags, char ***files, { char buf[_POSIX_PATH_MAX]; char prefix[_POSIX_PATH_MAX] = ""; - char helpstr[SHORT_STRING]; + char helpstr[STRING]; char title[STRING]; struct browser_state state; MUTTMENU *menu; @@ -783,7 +777,7 @@ void _mutt_select_file (char *f, ssize_t flen, int flags, char ***files, } else { if (f[0] == '/') - strcpy (LastDir, "/"); /* __STRCPY_CHECKED__ */ + m_strcpy(LastDir, sizeof(LastDir), "/"); else getcwd (LastDir, sizeof (LastDir)); } @@ -874,7 +868,7 @@ void _mutt_select_file (char *f, ssize_t flen, int flags, char ***files, if (m_strcmp(state.entry[menu->current].name, "..") == 0) { if (m_strcmp("..", LastDir + m_strlen(LastDir) - 2) == 0) - strcat (LastDir, "/.."); /* __STRCAT_CHECKED__ */ + m_strcat(LastDir, sizeof(LastDir), "/.."); else { char *p = strrchr (LastDir + 1, '/'); @@ -884,7 +878,7 @@ void _mutt_select_file (char *f, ssize_t flen, int flags, char ***files, if (LastDir[0] == '/') LastDir[1] = 0; else - strcat (LastDir, "/.."); /* __STRCAT_CHECKED__ */ + m_strcat(LastDir, sizeof(LastDir), "/.."); } } } @@ -1059,7 +1053,7 @@ void _mutt_select_file (char *f, ssize_t flen, int flags, char ***files, if (!state.entry[menu->current].imap) mutt_error (_("Delete is only supported for IMAP mailboxes")); else { - char msg[SHORT_STRING]; + char msg[STRING]; IMAP_MBOX mx; int nentry = menu->current;