projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use signed size parameter in quote_entry()
[apps/madmutt.git]
/
curs_main.c
diff --git
a/curs_main.c
b/curs_main.c
index
39973fa
..
ae62c47
100644
(file)
--- a/
curs_main.c
+++ b/
curs_main.c
@@
-14,11
+14,17
@@
# include "config.h"
#endif
# include "config.h"
#endif
+#include <lib-lib/mem.h>
+#include <lib-lib/str.h>
+#include <lib-lib/macros.h>
+#include <lib-lib/mapping.h>
+
+#include <pop/pop.h>
+
#include "mutt.h"
#include "mutt_curses.h"
#include "mx.h"
#include "mutt_menu.h"
#include "mutt.h"
#include "mutt_curses.h"
#include "mx.h"
#include "mutt_menu.h"
-#include "mapping.h"
#include "sort.h"
#include "recvattach.h"
#include "buffy.h"
#include "sort.h"
#include "recvattach.h"
#include "buffy.h"
@@
-27,23
+33,18
@@
#include "thread.h"
#include "xterm.h"
#include "thread.h"
#include "xterm.h"
-#ifdef USE_POP
-#include "pop.h"
-#endif
-
-#ifdef USE_IMAP
-#include "imap_private.h"
-#endif
+#include <imap/imap_private.h>
-#include
"mutt_crypt.h"
+#include
<lib-crypt/crypt.h>
#ifdef USE_NNTP
#include "nntp.h"
#endif
#ifdef USE_NNTP
#include "nntp.h"
#endif
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
+#ifdef USE_SASL
+#include "mutt_sasl.h"
+#endif
+
#include "lib/debug.h"
#include <ctype.h>
#include "lib/debug.h"
#include <ctype.h>
@@
-106,11
+107,11
@@
static const char *No_visible = N_("No visible messages.");
#define CURHDR Context->hdrs[Context->v2r[menu->current]]
#define OLDHDR Context->hdrs[Context->v2r[menu->oldcurrent]]
#define UNREAD(h) mutt_thread_contains_unread (Context, h)
#define CURHDR Context->hdrs[Context->v2r[menu->current]]
#define OLDHDR Context->hdrs[Context->v2r[menu->oldcurrent]]
#define UNREAD(h) mutt_thread_contains_unread (Context, h)
+#define SW (option(OPTMBOXPANE)?SidebarWidth:0)
-extern const char *ReleaseDate;
extern size_t UngetCount;
extern size_t UngetCount;
-void index_make_entry (char *s, s
ize_t l, MUTTMENU
* menu, int num)
+void index_make_entry (char *s, s
size_t l, struct menu_t
* menu, int num)
{
format_flag flag =
M_FORMAT_MAKEPRINT | M_FORMAT_ARROWCURSOR | M_FORMAT_INDEX;
{
format_flag flag =
M_FORMAT_MAKEPRINT | M_FORMAT_ARROWCURSOR | M_FORMAT_INDEX;
@@
-256,7
+257,7
@@
static int mx_toggle_write (CONTEXT * ctx)
return 0;
}
return 0;
}
-static void update_index (MUTTMENU * menu, CONTEXT * ctx, int check,
+static void update_index (MUTTMENU * menu, CONTEXT * ctx
__attribute__ ((unused))
, int check,
int oldcount, int index_hint)
{
/* store pointers to the newly added messages */
int oldcount, int index_hint)
{
/* store pointers to the newly added messages */
@@
-293,9
+294,7
@@
static void update_index (MUTTMENU * menu, CONTEXT * ctx, int check,
/* save the list of new messages */
if (oldcount && check != M_REOPENED && ((Sort & SORT_MASK) == SORT_THREADS)) {
/* save the list of new messages */
if (oldcount && check != M_REOPENED && ((Sort & SORT_MASK) == SORT_THREADS)) {
- save_new =
- (HEADER **) mem_malloc (sizeof (HEADER *) *
- (Context->msgcount - oldcount));
+ save_new = p_new(HEADER*, Context->msgcount - oldcount);
for (j = oldcount; j < Context->msgcount; j++)
save_new[j - oldcount] = Context->hdrs[j];
}
for (j = oldcount; j < Context->msgcount; j++)
save_new[j - oldcount] = Context->hdrs[j];
}
@@
-306,13
+305,13
@@
static void update_index (MUTTMENU * menu, CONTEXT * ctx, int check,
/* uncollapse threads with new mail */
if ((Sort & SORT_MASK) == SORT_THREADS) {
if (check == M_REOPENED) {
/* uncollapse threads with new mail */
if ((Sort & SORT_MASK) == SORT_THREADS) {
if (check == M_REOPENED) {
- THREAD *h, *
j
;
+ THREAD *h, *
c
;
Context->collapsed = 0;
for (h = Context->tree; h; h = h->next) {
Context->collapsed = 0;
for (h = Context->tree; h; h = h->next) {
- for (
j = h; !j->message; j = j
->child);
- mutt_uncollapse_thread (Context,
j
->message);
+ for (
c = h; !c->message; c = c
->child);
+ mutt_uncollapse_thread (Context,
c
->message);
}
mutt_set_virtual (Context);
}
}
mutt_set_virtual (Context);
}
@@
-327,7
+326,7
@@
static void update_index (MUTTMENU * menu, CONTEXT * ctx, int check,
mutt_uncollapse_thread (Context, h);
}
}
mutt_uncollapse_thread (Context, h);
}
}
-
mem_free
(&save_new);
+
p_delete
(&save_new);
mutt_set_virtual (Context);
}
}
mutt_set_virtual (Context);
}
}
@@
-381,7
+380,7
@@
struct mapping_t IndexHelp[] = {
{N_("Reply"), OP_REPLY},
{N_("Group"), OP_GROUP_REPLY},
{N_("Help"), OP_HELP},
{N_("Reply"), OP_REPLY},
{N_("Group"), OP_GROUP_REPLY},
{N_("Help"), OP_HELP},
- {NULL}
+ {NULL
, OP_NULL
}
};
#ifdef USE_NNTP
};
#ifdef USE_NNTP
@@
-394,7
+393,7
@@
struct mapping_t IndexNewsHelp[] = {
{N_("Followup"), OP_FOLLOWUP},
{N_("Catchup"), OP_CATCHUP},
{N_("Help"), OP_HELP},
{N_("Followup"), OP_FOLLOWUP},
{N_("Catchup"), OP_CATCHUP},
{N_("Help"), OP_HELP},
- {NULL}
+ {NULL
, OP_NULL
}
};
#endif
};
#endif
@@
-416,14
+415,14
@@
int mutt_index_menu (void)
char *cp; /* temporary variable. */
int index_hint; /* used to restore cursor position */
int do_buffy_notify = 1;
char *cp; /* temporary variable. */
int index_hint; /* used to restore cursor position */
int do_buffy_notify = 1;
- int close = 0; /* did we OP_QUIT or OP_EXIT out of this menu? */
+ int close
d
= 0; /* did we OP_QUIT or OP_EXIT out of this menu? */
int attach_msg = option (OPTATTACHMSG);
menu = mutt_new_menu ();
menu->menu = MENU_MAIN;
menu->offset = 1;
menu->pagelen = LINES - 3;
int attach_msg = option (OPTATTACHMSG);
menu = mutt_new_menu ();
menu->menu = MENU_MAIN;
menu->offset = 1;
menu->pagelen = LINES - 3;
- menu->make_entry = index_make_entry;
+ menu->make_entry =
(void *)
index_make_entry;
menu->color = index_color;
menu->current = ci_first_message ();
menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_MAIN,
menu->color = index_color;
menu->current = ci_first_message ();
menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_MAIN,
@@
-441,7
+440,7
@@
int mutt_index_menu (void)
sidebar_set_current (Context->path);
}
sidebar_set_current (Context->path);
}
-
FOREVER
{
+
for (;;)
{
tag = 0; /* clear the tag-prefix */
menu->max = Context ? Context->vcount : 0;
tag = 0; /* clear the tag-prefix */
menu->max = Context ? Context->vcount : 0;
@@
-469,9
+468,7
@@
int mutt_index_menu (void)
* modified underneath us.)
*/
* modified underneath us.)
*/
-#ifdef USE_IMAP
imap_allow_reopen (Context);
imap_allow_reopen (Context);
-#endif
index_hint = (Context->vcount && menu->current >= 0
&& menu->current < Context->vcount) ? CURHDR->index : 0;
index_hint = (Context->vcount && menu->current >= 0
&& menu->current < Context->vcount) ? CURHDR->index : 0;
@@
-479,7
+476,7
@@
int mutt_index_menu (void)
if ((check = mx_check_mailbox (Context, &index_hint, 0)) < 0) {
if (!Context->path) {
/* fatal error occurred */
if ((check = mx_check_mailbox (Context, &index_hint, 0)) < 0) {
if (!Context->path) {
/* fatal error occurred */
-
mem_free
(&Context);
+
p_delete
(&Context);
menu->redraw = REDRAW_FULL;
}
set_option (OPTSEARCHINVALID);
menu->redraw = REDRAW_FULL;
}
set_option (OPTSEARCHINVALID);
@@
-512,10
+509,8
@@
int mutt_index_menu (void)
}
}
}
}
-#ifdef USE_IMAP
imap_keepalive ();
imap_disallow_reopen (Context);
imap_keepalive ();
imap_disallow_reopen (Context);
-#endif
if (!attach_msg) {
/* check for new mail in the incoming folders */
if (!attach_msg) {
/* check for new mail in the incoming folders */
@@
-557,13
+552,13
@@
int mutt_index_menu (void)
}
if (menu->redraw & REDRAW_STATUS) {
}
if (menu->redraw & REDRAW_STATUS) {
- DrawFullLine = 1;
menu_status_line (buf, sizeof (buf), menu, NONULL (Status));
menu_status_line (buf, sizeof (buf), menu, NONULL (Status));
- DrawFullLine = 0;
CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES - 2);
CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES - 2);
+ sidebar_draw_frames();
SETCOLOR (MT_COLOR_STATUS);
BKGDSET (MT_COLOR_STATUS);
SETCOLOR (MT_COLOR_STATUS);
BKGDSET (MT_COLOR_STATUS);
- mutt_paddstr (COLS, buf);
+ move(option (OPTSTATUSONTOP) ? 0 : LINES - 2,SW);
+ mutt_paddstr (COLS-SW, buf);
SETCOLOR (MT_COLOR_NORMAL);
BKGDSET (MT_COLOR_NORMAL);
sidebar_set_buffystats (Context);
SETCOLOR (MT_COLOR_NORMAL);
BKGDSET (MT_COLOR_NORMAL);
sidebar_set_buffystats (Context);
@@
-590,10
+585,6
@@
int mutt_index_menu (void)
move (menu->current - menu->top + menu->offset, COLS - 1);
mutt_refresh ();
move (menu->current - menu->top + menu->offset, COLS - 1);
mutt_refresh ();
- op = km_dokey (MENU_MAIN);
-
- debug_print (4, ("Got op %d\n", op));
-
#if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM)
if (SigWinch) {
mutt_flushinp ();
#if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM)
if (SigWinch) {
mutt_flushinp ();
@@
-611,6
+602,10
@@
int mutt_index_menu (void)
}
#endif
}
#endif
+ op = km_dokey (MENU_MAIN);
+
+ debug_print (4, ("Got op %d\n", op));
+
if (op == -1)
continue; /* either user abort or timeout */
if (op == -1)
continue; /* either user abort or timeout */
@@
-751,7
+746,7
@@
int mutt_index_menu (void)
if (op == OP_GET_MESSAGE) {
buf[0] = 0;
if (op == OP_GET_MESSAGE) {
buf[0] = 0;
- if (mutt_get_field (_("Enter Message-I
d
: "), buf, sizeof (buf), 0)
+ if (mutt_get_field (_("Enter Message-I
D
: "), buf, sizeof (buf), 0)
!= 0 || !buf[0])
break;
}
!= 0 || !buf[0])
break;
}
@@
-763,7
+758,7
@@
int mutt_index_menu (void)
break;
}
break;
}
-
strfcpy (buf, ref->data, sizeof (buf)
);
+
m_strcpy(buf, sizeof(buf), ref->data
);
}
if (!Context->id_hash)
Context->id_hash = mutt_make_id_hash (Context);
}
if (!Context->id_hash)
Context->id_hash = mutt_make_id_hash (Context);
@@
-802,14
+797,14
@@
int mutt_index_menu (void)
int old = CURHDR->index, i;
if (!CURHDR->env->message_id) {
int old = CURHDR->index, i;
if (!CURHDR->env->message_id) {
- mutt_error (_("No Message-I
d
. Unable to perform operation"));
+ mutt_error (_("No Message-I
D
. Unable to perform operation"));
break;
}
if (!Context->id_hash)
Context->id_hash = mutt_make_id_hash (Context);
break;
}
if (!Context->id_hash)
Context->id_hash = mutt_make_id_hash (Context);
-
strfcpy (buf, CURHDR->env->message_id, sizeof (buf)
);
+
m_strcpy(buf, sizeof(buf), CURHDR->env->message_id
);
if (op == OP_RECONSTRUCT_THREAD) {
LIST *ref = CURHDR->env->references;
if (op == OP_RECONSTRUCT_THREAD) {
LIST *ref = CURHDR->env->references;
@@
-818,7
+813,7
@@
int mutt_index_menu (void)
nntp_check_msgid (Context, ref->data);
/* the last msgid in References is the root message */
if (!ref->next)
nntp_check_msgid (Context, ref->data);
/* the last msgid in References is the root message */
if (!ref->next)
-
strfcpy (buf, ref->data, sizeof (buf)
);
+
m_strcpy(buf, sizeof(buf), ref->data
);
ref = ref->next;
}
}
ref = ref->next;
}
}
@@
-910,14
+905,12
@@
int mutt_index_menu (void)
menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
break;
menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
break;
-#ifdef USE_POP
case OP_MAIN_FETCH_MAIL:
CHECK_ATTACH;
pop_fetch_mail ();
menu->redraw = REDRAW_FULL;
break;
case OP_MAIN_FETCH_MAIL:
CHECK_ATTACH;
pop_fetch_mail ();
menu->redraw = REDRAW_FULL;
break;
-#endif /* USE_POP */
case OP_HELP:
case OP_HELP:
@@
-931,11
+924,11
@@
int mutt_index_menu (void)
mutt_message (_("No limit pattern is in effect."));
else {
mutt_message (_("No limit pattern is in effect."));
else {
- char buf[STRING];
+ char buf
fer
[STRING];
/* i18n: ask for a limit to apply */
/* i18n: ask for a limit to apply */
- snprintf (buf
, sizeof (buf
), _("Limit: %s"), Context->pattern);
- mutt_message ("%s", buf);
+ snprintf (buf
fer, sizeof (buffer
), _("Limit: %s"), Context->pattern);
+ mutt_message ("%s", buf
fer
);
}
break;
}
break;
@@
-947,22
+940,22
@@
int mutt_index_menu (void)
&& menu->current <
Context->vcount) ? CURHDR->index : -1;
if (op == OP_TOGGLE_READ) {
&& menu->current <
Context->vcount) ? CURHDR->index : -1;
if (op == OP_TOGGLE_READ) {
- char buf[LONG_STRING];
+ char buf
fer
[LONG_STRING];
if (!Context->pattern
|| strncmp (Context->pattern, "!~R!~D~s", 8) != 0) {
if (!Context->pattern
|| strncmp (Context->pattern, "!~R!~D~s", 8) != 0) {
- snprintf (buf
, sizeof (buf
), "!~R!~D~s%s",
+ snprintf (buf
fer, sizeof (buffer
), "!~R!~D~s%s",
Context->pattern ? Context->pattern : ".*");
set_option (OPTHIDEREAD);
}
else {
Context->pattern ? Context->pattern : ".*");
set_option (OPTHIDEREAD);
}
else {
-
strfcpy (buf, Context->pattern + 8, sizeof (buf)
);
+
m_strcpy(buf, sizeof(buf), Context->pattern + 8
);
if (!*buf || strncmp (buf, ".*", 2) == 0)
snprintf (buf, sizeof (buf), "~A");
unset_option (OPTHIDEREAD);
}
if (!*buf || strncmp (buf, ".*", 2) == 0)
snprintf (buf, sizeof (buf), "~A");
unset_option (OPTHIDEREAD);
}
-
mem_free
(&Context->pattern);
- Context->pattern =
str_dup
(buf);
+
p_delete
(&Context->pattern);
+ Context->pattern =
m_strdup
(buf);
}
if ((op == OP_TOGGLE_READ && mutt_pattern_func (M_LIMIT, NULL) == 0) ||
mutt_pattern_func (M_LIMIT, _("Limit to messages matching: ")) == 0)
}
if ((op == OP_TOGGLE_READ && mutt_pattern_func (M_LIMIT, NULL) == 0) ||
mutt_pattern_func (M_LIMIT, _("Limit to messages matching: ")) == 0)
@@
-985,11
+978,13
@@
int mutt_index_menu (void)
mutt_draw_tree (Context);
menu->redraw = REDRAW_FULL;
}
mutt_draw_tree (Context);
menu->redraw = REDRAW_FULL;
}
+ if (Context->pattern)
+ mutt_message _("To view all messages, limit to \"all\".");
break;
case OP_QUIT:
break;
case OP_QUIT:
- close = op;
+ close
d
= op;
if (attach_msg) {
done = 1;
break;
if (attach_msg) {
done = 1;
break;
@@
-1100,12
+1095,10
@@
int mutt_index_menu (void)
* The following operations can be performed inside of the pager.
*/
* The following operations can be performed inside of the pager.
*/
-#ifdef USE_IMAP
case OP_MAIN_IMAP_FETCH:
if (Context->magic == M_IMAP)
imap_check_mailbox (Context, &index_hint, 1);
break;
case OP_MAIN_IMAP_FETCH:
if (Context->magic == M_IMAP)
imap_check_mailbox (Context, &index_hint, 1);
break;
-#endif
case OP_MAIN_SYNC_FOLDER:
case OP_MAIN_SYNC_FOLDER:
@@
-1117,7
+1110,7
@@
int mutt_index_menu (void)
CHECK_READONLY;
{
int oldvcount = Context->vcount;
CHECK_READONLY;
{
int oldvcount = Context->vcount;
-
int
oldcount = Context->msgcount;
+ oldcount = Context->msgcount;
int dcount = 0;
int check;
int dcount = 0;
int check;
@@
-1147,7
+1140,7
@@
int mutt_index_menu (void)
/* check for a fatal error, or all messages deleted */
if (!Context->path)
/* check for a fatal error, or all messages deleted */
if (!Context->path)
-
mem_free
(&Context);
+
p_delete
(&Context);
/* if we were in the pager, redisplay the message */
if (menu->menu == MENU_PAGER) {
/* if we were in the pager, redisplay the message */
if (menu->menu == MENU_PAGER) {
@@
-1196,17
+1189,21
@@
int mutt_index_menu (void)
#endif
{
if (Context && Context->path)
#endif
{
if (Context && Context->path)
-
strncpy (buf, Context->path, sizeof (buf)
);
+
m_strcpy(buf, sizeof(buf), Context->path
);
if (op != OP_SIDEBAR_OPEN)
buffy_next (buf, sizeof (buf));
}
if (op == OP_SIDEBAR_OPEN) {
if (op != OP_SIDEBAR_OPEN)
buffy_next (buf, sizeof (buf));
}
if (op == OP_SIDEBAR_OPEN) {
- strncpy (buf, NONULL(sidebar_get_current ()), sizeof (buf));
+ m_strcpy(buf, sizeof(buf), sidebar_get_current());
+ }
+ else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) {
+ if (menu->menu == MENU_PAGER) {
+ op = OP_DISPLAY_MESSAGE;
+ continue;
+ } else
+ break;
}
}
- else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) ==
- -1)
- break;
if (!buf[0]) {
CLEARLINE (LINES - 1);
break;
if (!buf[0]) {
CLEARLINE (LINES - 1);
break;
@@
-1224,18
+1221,15
@@
int mutt_index_menu (void)
mutt_error (_("%s is not a mailbox."), buf);
break;
}
mutt_error (_("%s is not a mailbox."), buf);
break;
}
-
str_replace
(&CurrentFolder, buf);
+
m_strreplace
(&CurrentFolder, buf);
if (Context) {
int check;
if (Context) {
int check;
-#ifdef USE_COMPRESSED
if (Context->compressinfo && Context->realpath)
if (Context->compressinfo && Context->realpath)
-
str_replace
(&LastFolder, Context->realpath);
+
m_strreplace
(&LastFolder, Context->realpath);
else
else
-#endif
-
- str_replace (&LastFolder, Context->path);
+ m_strreplace(&LastFolder, Context->path);
oldcount = Context ? Context->msgcount : 0;
if ((check = mx_close_mailbox (Context, &index_hint)) != 0) {
oldcount = Context ? Context->msgcount : 0;
if ((check = mx_close_mailbox (Context, &index_hint)) != 0) {
@@
-1246,7
+1240,7
@@
int mutt_index_menu (void)
menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
break;
}
menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
break;
}
-
mem_free
(&Context);
+
p_delete
(&Context);
}
mutt_sleep (0);
}
mutt_sleep (0);
@@
-1317,7
+1311,7
@@
int mutt_index_menu (void)
case OP_EXIT:
case OP_EXIT:
- close = op;
+ close
d
= op;
if (menu->menu == MENU_MAIN && attach_msg) {
done = 1;
break;
if (menu->menu == MENU_MAIN && attach_msg) {
done = 1;
break;
@@
-1329,7
+1323,7
@@
int mutt_index_menu (void)
{
if (Context) {
mx_fastclose_mailbox (Context);
{
if (Context) {
mx_fastclose_mailbox (Context);
-
mem_free
(&Context);
+
p_delete
(&Context);
}
done = 1;
}
}
done = 1;
}
@@
-1503,9
+1497,6
@@
int mutt_index_menu (void)
case OP_DECRYPT_COPY:
case OP_DECRYPT_SAVE:
case OP_DECRYPT_COPY:
case OP_DECRYPT_SAVE:
- if (!WithCrypto)
- break;
- /* fall thru */
case OP_COPY_MESSAGE:
case OP_SAVE:
case OP_DECODE_COPY:
case OP_COPY_MESSAGE:
case OP_SAVE:
case OP_DECODE_COPY:
@@
-2062,8
+2053,6
@@
int mutt_index_menu (void)
break;
case OP_MAIL_KEY:
break;
case OP_MAIL_KEY:
- if (!(WithCrypto & APPLICATION_PGP))
- break;
CHECK_ATTACH;
ci_send_message (SENDKEY, NULL, NULL, NULL, NULL);
menu->redraw = REDRAW_FULL;
CHECK_ATTACH;
ci_send_message (SENDKEY, NULL, NULL, NULL, NULL);
menu->redraw = REDRAW_FULL;
@@
-2071,8
+2060,6
@@
int mutt_index_menu (void)
case OP_EXTRACT_KEYS:
case OP_EXTRACT_KEYS:
- if (!WithCrypto)
- break;
CHECK_MSGCOUNT;
CHECK_VISIBLE;
crypt_extract_keys_from_messages (tag ? NULL : CURHDR);
CHECK_MSGCOUNT;
CHECK_VISIBLE;
crypt_extract_keys_from_messages (tag ? NULL : CURHDR);
@@
-2081,8
+2068,6
@@
int mutt_index_menu (void)
case OP_CHECK_TRADITIONAL:
case OP_CHECK_TRADITIONAL:
- if (!(WithCrypto & APPLICATION_PGP))
- break;
CHECK_MSGCOUNT;
CHECK_VISIBLE;
if (tag || !(CURHDR->security & PGP_TRADITIONAL_CHECKED))
CHECK_MSGCOUNT;
CHECK_VISIBLE;
if (tag || !(CURHDR->security & PGP_TRADITIONAL_CHECKED))
@@
-2099,6
+2084,12
@@
int mutt_index_menu (void)
CHECK_MSGCOUNT;
CHECK_VISIBLE;
mutt_pipe_message (tag ? NULL : CURHDR);
CHECK_MSGCOUNT;
CHECK_VISIBLE;
mutt_pipe_message (tag ? NULL : CURHDR);
+ /* in an IMAP folder index with imap_peek=no, piping could change
+ * * new or old messages status to read. Redraw what's needed.
+ */
+ if (Context->magic == M_IMAP && !option (OPTIMAPPEEK)) {
+ menu->redraw = (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS;
+ }
MAYBE_REDRAW (menu->redraw);
break;
MAYBE_REDRAW (menu->redraw);
break;
@@
-2107,6
+2098,12
@@
int mutt_index_menu (void)
CHECK_MSGCOUNT;
CHECK_VISIBLE;
mutt_print_message (tag ? NULL : CURHDR);
CHECK_MSGCOUNT;
CHECK_VISIBLE;
mutt_print_message (tag ? NULL : CURHDR);
+ /* in an IMAP folder index with imap_peek=no, piping could change
+ * * new or old messages status to read. Redraw what's needed.
+ */
+ if (Context->magic == M_IMAP && !option (OPTIMAPPEEK)) {
+ menu->redraw = (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS;
+ }
break;
case OP_MAIN_READ_THREAD:
break;
case OP_MAIN_READ_THREAD:
@@
-2170,7
+2167,7
@@
int mutt_index_menu (void)
sleep (2);
}
else if (op != OP_FOLLOWUP || !CURHDR->env->followup_to ||
sleep (2);
}
else if (op != OP_FOLLOWUP || !CURHDR->env->followup_to ||
-
str_casecmp
(CURHDR->env->followup_to, "poster") ||
+
m_strcasecmp
(CURHDR->env->followup_to, "poster") ||
query_quadoption (OPT_FOLLOWUPTOPOSTER,
_("Reply by mail as poster prefers?")) !=
M_YES) {
query_quadoption (OPT_FOLLOWUPTOPOSTER,
_("Reply by mail as poster prefers?")) !=
M_YES) {
@@
-2317,6
+2314,10
@@
int mutt_index_menu (void)
mutt_what_key ();
break;
mutt_what_key ();
break;
+ case OP_REBUILD_CACHE:
+ mx_rebuild_cache ();
+ break;
+
case OP_SIDEBAR_SCROLL_UP:
case OP_SIDEBAR_SCROLL_DOWN:
case OP_SIDEBAR_NEXT:
case OP_SIDEBAR_SCROLL_UP:
case OP_SIDEBAR_SCROLL_DOWN:
case OP_SIDEBAR_NEXT:
@@
-2342,19
+2343,20
@@
int mutt_index_menu (void)
break;
}
break;
}
-#ifdef USE_IMAP
+ if (!attach_msg) {
/* Close all open IMAP connections */
/* Close all open IMAP connections */
- if (!attach_msg)
imap_logout_all ();
imap_logout_all ();
-#endif
#ifdef USE_NNTP
/* Close all open NNTP connections */
#ifdef USE_NNTP
/* Close all open NNTP connections */
- if (!attach_msg)
nntp_logout_all ();
#endif
nntp_logout_all ();
#endif
+#ifdef USE_SASL
+ mutt_sasl_done ();
+#endif
+ }
mutt_menuDestroy (&menu);
mutt_menuDestroy (&menu);
- return (close);
+ return (close
d
);
}
void mutt_set_header_color (CONTEXT * ctx, HEADER * curhdr)
}
void mutt_set_header_color (CONTEXT * ctx, HEADER * curhdr)