X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=browser.c;h=1dbc64433aaf88cd408f9f97d28aa34a8faf6fac;hp=f47b8fbed4f9856aaa4d7b3b2aea1d38eed61b37;hb=f422bddfe7468c3f36388a8830c832c01841eabc;hpb=df70e07e24add1869bcc9b7af2277d9d0c09a281 diff --git a/browser.c b/browser.c index f47b8fb..1dbc644 100644 --- a/browser.c +++ b/browser.c @@ -1,19 +1,10 @@ /* + * Copyright notice from original mutt: * Copyright (C) 1996-2000 Michael R. Elkins - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * + * This file is part of mutt-ng, see http://www.muttng.org/. + * It's licensed under the GNU General Public License, + * please see the file GPL in the top level source directory. */ #if HAVE_CONFIG_H @@ -36,6 +27,11 @@ #endif #include "sidebar.h" +#include "lib/mem.h" +#include "lib/intl.h" +#include "lib/str.h" +#include "lib/list.h" + #include #include #include @@ -488,7 +484,7 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state, if (!(data = (NNTP_DATA *) tmp->data)) continue; if (prefix && *prefix && strncmp (prefix, data->group, - strlen (prefix)) != 0) + mutt_strlen (prefix)) != 0) continue; if (!((regexec (Mask.rx, data->group, 0, NULL, 0) == 0) ^ Mask.not)) continue; @@ -502,7 +498,7 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state, DIR *dp; struct dirent *de; char buffer[_POSIX_PATH_MAX + SHORT_STRING]; - BUFFY *tmp; + int i = -1; while (stat (d, &s) == -1) { if (errno == ENOENT) { @@ -550,14 +546,12 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state, (!S_ISLNK (s.st_mode))) continue; - tmp = Incoming; - while (tmp && mutt_strcmp (buffer, tmp->path)) - tmp = tmp->next; - add_folder (menu, state, de->d_name, &s, NULL, (tmp) ? tmp->new : 0); + i = buffy_lookup (buffer); + add_folder (menu, state, de->d_name, &s, NULL, i >= 0 ? ((BUFFY*) Incoming->data[i])->new : 0); } closedir (dp); } - draw_sidebar (CurrentMenu); + sidebar_draw (CurrentMenu); browser_sort (state); return 0; } @@ -590,7 +584,8 @@ static int examine_mailboxes (MUTTMENU * menu, struct browser_state *state) else #endif { - BUFFY *tmp = Incoming; + int i = 0; + BUFFY* tmp; if (!Incoming) return (-1); @@ -598,7 +593,8 @@ static int examine_mailboxes (MUTTMENU * menu, struct browser_state *state) init_state (state, menu); - do { + for (i = 0; i < Incoming->length; i++) { + tmp = (BUFFY*) Incoming->data[i]; #ifdef USE_IMAP if (mx_is_imap (tmp->path)) { add_folder (menu, state, tmp->path, NULL, NULL, tmp->new); @@ -629,7 +625,6 @@ static int examine_mailboxes (MUTTMENU * menu, struct browser_state *state) add_folder (menu, state, buffer, &s, NULL, tmp->new); } - while ((tmp = tmp->next)); } browser_sort (state); return 0; @@ -923,7 +918,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, strfcpy (LastDir, state.entry[menu->current].name, sizeof (LastDir)); /* tack on delimiter here */ - n = strlen (LastDir) + 1; + n = mutt_strlen (LastDir) + 1; /* special case "" needs no delimiter */ url_parse_ciss (&url, state.entry[menu->current].name);