X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=curs_main.c;h=757b0069c745e44b7a3af49406a1f359bf656ff0;hp=230fdf912e0de2a9f043b25614af7b5023c6bf22;hb=865e330e5b0c6cc1d5800417bdef165547b3624d;hpb=c3e57678c8be193fc137854020f3a90887be97c9 diff --git a/curs_main.c b/curs_main.c index 230fdf9..757b006 100644 --- a/curs_main.c +++ b/curs_main.c @@ -2,6 +2,9 @@ * Copyright notice from original mutt: * Copyright (C) 1996-2000 Michael R. Elkins * + * Parts were written/modified by: + * Nico Golde + * * 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. @@ -15,7 +18,6 @@ #include "mutt_curses.h" #include "mx.h" #include "mutt_menu.h" -#include "mailbox.h" #include "mapping.h" #include "sort.h" #include "buffy.h" @@ -36,6 +38,10 @@ #include "nntp.h" #endif +#include "lib/mem.h" +#include "lib/intl.h" +#include "lib/str.h" +#include "lib/debug.h" #include #include @@ -80,17 +86,6 @@ static const char *No_visible = N_("No visible messages."); break; \ } -#ifdef USE_IMAP -/* the error message returned here could be better. */ -#define CHECK_IMAP_ACL(aclbit) if (Context->magic == M_IMAP) \ - if (mutt_bit_isset (((IMAP_DATA *)Context->data)->capabilities, ACL) \ - && !mutt_bit_isset(((IMAP_DATA *)Context->data)->rights,aclbit)){ \ - mutt_flushinp(); \ - mutt_error ("Operation not permitted by the IMAP ACL for this mailbox"); \ - break; \ - } -#endif - #define CHECK_ATTACH if(option(OPTATTACHMSG)) \ {\ mutt_flushinp (); \ @@ -450,10 +445,10 @@ int mutt_index_menu (void) IndexHelp); if (!attach_msg) { - mutt_buffy_check (1); /* force the buffy check after we enter the folder */ + buffy_check (1); /* force the buffy check after we enter the folder */ /* record folder we open to place sidebar indicator properly */ if (Context && Context->path) - set_curbuffy (Context->path); + sidebar_set_current (Context->path); } FOREVER { @@ -508,7 +503,7 @@ int mutt_index_menu (void) ("Mailbox was externally modified. Flags may be wrong.")); else if (check == M_NEW_MAIL) { /* on new mail: redraw sidebar */ - draw_sidebar (CurrentMenu); + sidebar_draw (CurrentMenu); mutt_message (_("New mail in this mailbox.")); if (option (OPTBEEPNEW)) @@ -535,12 +530,12 @@ int mutt_index_menu (void) if (!attach_msg) { /* check for new mail in the incoming folders */ oldcount = newcount; - if ((newcount = mutt_buffy_check (0)) != oldcount) { + if ((newcount = buffy_check (0)) != oldcount) { menu->redraw |= REDRAW_STATUS; menu->redraw |= REDRAW_SIDEBAR; } if (do_buffy_notify) { - if (mutt_buffy_notify () && option (OPTBEEPNEW)) + if (buffy_notify () && option (OPTBEEPNEW)) beep (); } else @@ -550,10 +545,10 @@ int mutt_index_menu (void) if (op != -1) mutt_curs_set (0); if (menu->redraw & REDRAW_SIDEBAR) - draw_sidebar (menu->menu); + sidebar_draw (menu->menu); if (menu->redraw & REDRAW_FULL) { menu_redraw_full (menu); - draw_sidebar (menu->menu); + sidebar_draw (menu->menu); mutt_show_error (); } @@ -579,7 +574,7 @@ int mutt_index_menu (void) SETCOLOR (MT_COLOR_STATUS); mutt_paddstr (COLS, buf); SETCOLOR (MT_COLOR_NORMAL); - set_buffystats (Context); + sidebar_set_buffystats (Context); menu->redraw &= ~REDRAW_STATUS; if (option (OPTXTERMSETTITLES)) { menu_status_line (buf, sizeof (buf), menu, NONULL (XtermTitle)); @@ -603,8 +598,7 @@ int mutt_index_menu (void) op = km_dokey (MENU_MAIN); - dprint (4, - (debugfile, "mutt_index_menu[%d]: Got op %d\n", __LINE__, op)); + debug_print (4, ("Got op %d\n", op)); #if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM) if (SigWinch) { @@ -915,9 +909,7 @@ int mutt_index_menu (void) CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_DELETE); -#endif + CHECK_MX_ACL (Context, ACL_DELETE, _("Deletion")); CHECK_ATTACH; mutt_pattern_func (M_DELETE, _("Delete messages matching: ")); @@ -1095,9 +1087,7 @@ int mutt_index_menu (void) CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_DELETE); -#endif + CHECK_MX_ACL (Context, ACL_DELETE, _("Undeletion")); if (mutt_pattern_func (M_UNDELETE, _("Undelete messages matching: ")) == 0) @@ -1213,13 +1203,11 @@ int mutt_index_menu (void) { if (Context && Context->path) strncpy (buf, Context->path, sizeof (buf)); - mutt_buffy (buf, sizeof (buf)); + buffy_next (buf, sizeof (buf)); } if (op == OP_SIDEBAR_OPEN) { - if (!CurBuffy) - break; - strncpy (buf, CurBuffy->path, sizeof (buf)); + strncpy (buf, NONULL(sidebar_get_current ()), sizeof (buf)); } else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) @@ -1237,23 +1225,23 @@ int mutt_index_menu (void) else #endif mutt_expand_path (buf, sizeof (buf)); - set_curbuffy (buf); + sidebar_set_current (buf); if (mx_get_magic (buf) <= 0) { mutt_error (_("%s is not a mailbox."), buf); break; } - mutt_str_replace (&CurrentFolder, buf); + str_replace (&CurrentFolder, buf); if (Context) { int check; #ifdef USE_COMPRESSED if (Context->compressinfo && Context->realpath) - mutt_str_replace (&LastFolder, Context->realpath); + str_replace (&LastFolder, Context->realpath); else #endif - mutt_str_replace (&LastFolder, Context->path); + str_replace (&LastFolder, Context->path); oldcount = Context ? Context->msgcount : 0; if ((check = mx_close_mailbox (Context, &index_hint)) != 0) { @@ -1284,7 +1272,7 @@ int mutt_index_menu (void) menu->current = 0; #ifdef USE_NNTP - /* mutt_buffy_check() must be done with mail-reader mode! */ + /* buffy_check() must be done with mail-reader mode! */ menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_MAIN, (Context && (Context->magic == @@ -1292,7 +1280,7 @@ int mutt_index_menu (void) IndexHelp); #endif mutt_clear_error (); - mutt_buffy_check (1); /* force the buffy check after we have changed + buffy_check (1); /* force the buffy check after we have changed the folder */ menu->redraw = REDRAW_FULL; set_option (OPTSEARCHINVALID); @@ -1645,27 +1633,7 @@ int mutt_index_menu (void) CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_POP - if (Context->magic == M_POP) { - mutt_flushinp (); - mutt_error (_("Can't change 'important' flag on POP server.")); - - break; - } -#endif - -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_WRITE); -#endif - -#ifdef USE_NNTP - if (Context->magic == M_NNTP) { - mutt_flushinp (); - mutt_error (_("Can't change 'important' flag on NNTP server.")); - - break; - } -#endif + CHECK_MX_ACL (Context, ACL_WRITE, _("Flagging")); if (tag) { for (j = 0; j < Context->vcount; j++) { @@ -1698,9 +1666,7 @@ int mutt_index_menu (void) CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_SEEN); -#endif + CHECK_MX_ACL (Context, ACL_SEEN, _("Toggling")); if (tag) { for (j = 0; j < Context->vcount; j++) { @@ -1807,10 +1773,6 @@ int mutt_index_menu (void) CHECK_VISIBLE; CHECK_READONLY; -/* #ifdef USE_IMAP -CHECK_IMAP_ACL(IMAP_ACL_WRITE); -#endif */ - if (mutt_change_flag (tag ? NULL : CURHDR, (op == OP_MAIN_SET_FLAG)) == 0) { menu->redraw = REDRAW_STATUS; @@ -1944,9 +1906,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_DELETE); -#endif + CHECK_MX_ACL (Context, ACL_DELETE, _("Deletion")); if (tag) { mutt_tag_set_flag (M_DELETE, 1); @@ -1986,9 +1946,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_DELETE); -#endif + CHECK_MX_ACL (Context, ACL_DELETE, _("Deletion")); rc = mutt_thread_set_flag (CURHDR, M_DELETE, 1, op == OP_DELETE_THREAD ? 0 : 1); @@ -2039,27 +1997,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); CHECK_READONLY; CHECK_ATTACH; -#ifdef USE_POP - if (Context->magic == M_POP) { - mutt_flushinp (); - mutt_error (_("Can't edit message on POP server.")); - - break; - } -#endif - -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_INSERT); -#endif - -#ifdef USE_NNTP - if (Context->magic == M_NNTP) { - mutt_flushinp (); - mutt_error (_("Can't edit message on newsserver.")); - - break; - } -#endif + CHECK_MX_ACL (Context, ACL_INSERT, _("Editing")); if (option (OPTPGPAUTODEC) && (tag || !(CURHDR->security & PGP_TRADITIONAL_CHECKED))) @@ -2165,9 +2103,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_SEEN); -#endif + CHECK_MX_ACL (Context, ACL_SEEN, _("Marking as read")); rc = mutt_thread_set_flag (CURHDR, M_READ, 1, op == OP_MAIN_READ_THREAD ? 0 : 1); @@ -2221,7 +2157,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); sleep (2); } else if (op != OP_FOLLOWUP || !CURHDR->env->followup_to || - mutt_strcasecmp (CURHDR->env->followup_to, "poster") || + safe_strcasecmp (CURHDR->env->followup_to, "poster") || query_quadoption (OPT_FOLLOWUPTOPOSTER, _("Reply by mail as poster prefers?")) != M_YES) { @@ -2288,9 +2224,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_DELETE); -#endif + CHECK_MX_ACL (Context, ACL_DELETE, _("Undeletion")); if (tag) { mutt_tag_set_flag (M_DELETE, 0); @@ -2317,9 +2251,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); CHECK_VISIBLE; CHECK_READONLY; -#ifdef USE_IMAP - CHECK_IMAP_ACL (IMAP_ACL_DELETE); -#endif + CHECK_MX_ACL (Context, ACL_DELETE, _("Undeletion")); rc = mutt_thread_set_flag (CURHDR, M_DELETE, 0, op == OP_UNDELETE_THREAD ? 0 : 1) @@ -2345,7 +2277,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); break; case OP_BUFFY_LIST: - mutt_buffy_list (); + buffy_list (); menu->redraw = REDRAW_FULL; break; @@ -2371,7 +2303,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); case OP_SIDEBAR_PREV: case OP_SIDEBAR_NEXT_NEW: case OP_SIDEBAR_PREV_NEW: - scroll_sidebar (op, menu->menu); + sidebar_scroll (op, menu->menu); break; default: if (menu->menu == MENU_MAIN)