# include "config.h"
#endif
+#include <wchar.h>
+#include <wctype.h>
+#include <sys/stat.h>
+#include <ctype.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
#include <lib-lib/mem.h>
#include <lib-lib/str.h>
#include <lib-lib/macros.h>
+#include <lib-lib/mapping.h>
+#include <lib-lib/rx.h>
+
+#include <lib-ui/curses.h>
+#include <lib-ui/enter.h>
+#include <lib-ui/menu.h>
#include "mutt.h"
-#include "enter.h"
-#include "mutt_curses.h"
+#include "alias.h"
#include "keymap.h"
-#include "mutt_menu.h"
-#include "mapping.h"
#include "sort.h"
#include "pager.h"
#include "attach.h"
#include "recvattach.h"
-#include "mbyte.h"
+#include "charset.h"
#include "sidebar.h"
#include "buffy.h"
#include "mx.h"
-#ifdef USE_IMAP
-#include "imap_private.h"
-#endif
-
-#include "mutt_crypt.h"
+#include <imap/imap_private.h>
-#include "lib/rx.h"
-#include "lib/debug.h"
+#include <lib-crypt/crypt.h>
-#include <wchar.h>
-#include <sys/stat.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
#define ISHEADER(x) ((x) == MT_COLOR_HEADER || (x) == MT_COLOR_HDEFAULT)
static void
shift_class_colors (struct q_class_t *QuoteList, struct q_class_t *new_class,
- int index, int *q_level)
+ int lindex, int *q_level)
{
struct q_class_t *q_list;
new_class->index = -1;
while (q_list) {
- if (q_list->index >= index) {
+ if (q_list->index >= lindex) {
q_list->index++;
q_list->color = ColorQuote[q_list->index % ColorQuoteUsed];
}
}
}
- new_class->index = index;
- new_class->color = ColorQuote[index % ColorQuoteUsed];
+ new_class->index = lindex;
+ new_class->color = ColorQuote[lindex % ColorQuoteUsed];
(*q_level)++;
}
struct q_class_t *class = NULL, *tmp = NULL, *ptr, *save;
char *tail_qptr;
int offset, tail_lng;
- int index = -1;
+ int lindex = -1;
if (ColorQuoteUsed <= 1) {
/* not much point in classifying quotes... */
if (q_list == *QuoteList)
*QuoteList = tmp;
- index = q_list->index;
+ lindex = q_list->index;
/* tmp should be the return class too */
class = tmp;
q_list->prev = ptr;
q_list->up = tmp;
- index = q_list->index;
+ lindex = q_list->index;
/* next class to test; as above, we shouldn't go down */
q_list = save;
q_list->next = NULL;
q_list->prev = NULL;
- index = q_list->index;
+ lindex = q_list->index;
/* tmp should be the return class too */
class = tmp;
q_list->prev = ptr;
q_list->up = tmp;
- index = q_list->index;
+ lindex = q_list->index;
/* next class to test */
q_list = save;
return tmp;
}
else {
- if (index != -1)
- shift_class_colors (*QuoteList, tmp, index, q_level);
+ if (lindex != -1)
+ shift_class_colors (*QuoteList, tmp, lindex, q_level);
return class;
}
*QuoteList = class;
}
- if (index != -1)
- shift_class_colors (*QuoteList, tmp, index, q_level);
+ if (lindex != -1)
+ shift_class_colors (*QuoteList, tmp, lindex, q_level);
return class;
}
static int check_attachment_marker (char *);
static void
-resolve_types (char *buf, char *raw, struct line_t *lineInfo, int n, int last,
+resolve_types (char *buf, char *rawbuf, struct line_t *lineInfo, int n, int last,
struct q_class_t **QuoteList, int *q_level, int *force_redraw,
int q_classify)
{
}
}
}
- else if (m_strncmp("\033[0m", raw, 4) == 0) /* a little hack... */
+ else if (m_strncmp("\033[0m", rawbuf, 4) == 0) /* a little hack... */
lineInfo[n].type = MT_COLOR_NORMAL;
#if 0
else if (m_strncmp("[-- ", buf, 4) == 0)
lineInfo[n].type = MT_COLOR_ATTACHMENT;
#else
- else if (check_attachment_marker ((char *) raw) == 0)
+ else if (check_attachment_marker ((char *) rawbuf) == 0)
lineInfo[n].type = MT_COLOR_ATTACHMENT;
#endif
else if (m_strcmp("-- \n", buf) == 0
/* trim tail of buf so that it contains complete multibyte characters */
static int trim_incomplete_mbyte(unsigned char *buf, size_t len) {
mbstate_t mbstate;
- size_t k;
+ ssize_t k;
p_clear(&mbstate, 1);
for (; len > 0; buf += k, len -= k) {
static int
fill_buffer (FILE * f, off_t *last_pos, off_t offset, unsigned char *buf,
- unsigned char *fmt, size_t blen, int *buf_ready)
+ unsigned char *fmt, ssize_t blen, int *buf_ready)
{
unsigned char *p;
static int b_read = 0;
}
else if (*p == '\033' && *(p + 1) == ']'
&& check_attachment_marker ((char *) p) == 0) {
- debug_print (2, ("seen attachment marker.\n"));
while (*p++ != '\a') /* skip pseudo-ANSI sequence */
;
}
k = mbrtowc (&wc, (char *) buf + ch, cnt - ch, &mbstate);
if (k == -2 || k == -1) {
- debug_print (1, ("mbrtowc returned %d; errno = %d.\n", k, errno));
if (col + 4 > wrap_cols)
break;
col += 4;
int helpoffset = LINES - 2; /* offset for the help bar. */
int bodylen = LINES - 2 - bodyoffset; /* length of displayable area */
- MUTTMENU *index = NULL; /* the Pager Index (PI) */
+ MUTTMENU *pager_index = NULL; /* the Pager Index (PI) */
int indexoffset = 0; /* offset for the PI */
int indexlen = PagerIndexLines; /* indexlen not always == PIL */
int indicator = indexlen / 3; /* the indicator line of the PI */
mutt_compile_help (helpstr, sizeof (helpstr), MENU_PAGER, PagerHelp);
if (IsHeader (extra)) {
- strfcpy (tmphelp, helpstr, sizeof (tmphelp));
+ m_strcpy(tmphelp, sizeof(tmphelp), helpstr);
mutt_compile_help (buffer, sizeof (buffer), MENU_PAGER,
#ifdef USE_NNTP
(Context
snprintf (helpstr, sizeof (helpstr), "%s %s", tmphelp, buffer);
}
if (!InHelp) {
- strfcpy (tmphelp, helpstr, sizeof (tmphelp));
+ m_strcpy(tmphelp, sizeof(tmphelp), helpstr);
mutt_make_help (buffer, sizeof (buffer), _("Help"), MENU_PAGER, OP_HELP);
snprintf (helpstr, sizeof (helpstr), "%s %s", tmphelp, buffer);
}
while (ch != -1) {
mutt_curs_set (0);
-
-#ifdef USE_IMAP
imap_keepalive ();
-#endif
if (redraw & REDRAW_FULL) {
SETCOLOR (MT_COLOR_NORMAL);
#endif
if (IsHeader (extra) && PagerIndexLines) {
- if (index == NULL) {
+ if (pager_index == NULL) {
/* only allocate the space if/when we need the index.
Initialise the menu as per the main index */
- index = mutt_new_menu ();
- index->menu = MENU_MAIN;
- index->make_entry = index_make_entry;
- index->color = index_color;
- index->max = Context->vcount;
- index->current = extra->hdr->virtual;
+ pager_index = mutt_new_menu ();
+ pager_index->menu = MENU_MAIN;
+ pager_index->make_entry = index_make_entry;
+ pager_index->color = index_color;
+ pager_index->max = Context->vcount;
+ pager_index->current = extra->hdr->virtual;
}
SETCOLOR (MT_COLOR_NORMAL);
- index->offset = indexoffset + (option (OPTSTATUSONTOP) ? 1 : 0);
+ pager_index->offset = indexoffset + (option (OPTSTATUSONTOP) ? 1 : 0);
- index->pagelen = indexlen - 1;
+ pager_index->pagelen = indexlen - 1;
/* some fudge to work out where abouts the indicator should go */
- if (index->current - indicator < 0)
- index->top = 0;
- else if (index->max - index->current < index->pagelen - indicator)
- index->top = index->max - index->pagelen;
+ if (pager_index->current - indicator < 0)
+ pager_index->top = 0;
+ else if (pager_index->max - pager_index->current < pager_index->pagelen - indicator)
+ pager_index->top = pager_index->max - pager_index->pagelen;
else
- index->top = index->current - indicator;
+ pager_index->top = pager_index->current - indicator;
- menu_redraw_index (index);
+ menu_redraw_index (pager_index);
}
redraw |= REDRAW_BODY | REDRAW_INDEX | REDRAW_STATUS;
if (redraw & REDRAW_SIDEBAR)
sidebar_draw (MENU_PAGER);
- if ((redraw & REDRAW_INDEX) && index) {
+ if ((redraw & REDRAW_INDEX) && pager_index) {
/* redraw the pager_index indicator, because the
* flags for this message might have changed. */
- menu_redraw_current (index);
+ menu_redraw_current (pager_index);
sidebar_draw (MENU_PAGER);
- /* print out the index status bar */
- menu_status_line (buffer, sizeof (buffer), index, NONULL (Status));
+ /* print out the pager_index status bar */
+ menu_status_line (buffer, sizeof (buffer), pager_index, NONULL (Status));
move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SW);
SETCOLOR (MT_COLOR_STATUS);
BKGDSET (MT_COLOR_STATUS);
case OP_SEARCH:
case OP_SEARCH_REVERSE:
- strfcpy (buffer, searchbuf, sizeof (buffer));
+ m_strcpy(buffer, sizeof(buffer), searchbuf);
if (mutt_get_field ((SearchBack ? _("Reverse search: ") :
_("Search: ")), buffer, sizeof (buffer),
M_CLEAR) != 0)
if (!buffer[0])
break;
- strfcpy (searchbuf, buffer, sizeof (searchbuf));
+ m_strcpy(searchbuf, sizeof(searchbuf), buffer);
/* leave SearchBack alone if ch == OP_SEARCH_NEXT */
if (ch == OP_SEARCH)
case OP_CHECK_TRADITIONAL:
CHECK_MODE (IsHeader (extra));
- if (!(WithCrypto & APPLICATION_PGP))
- break;
if (!(extra->hdr->security & PGP_TRADITIONAL_CHECKED)) {
ch = -1;
rc = OP_CHECK_TRADITIONAL;
}
if (old_PagerIndexLines != PagerIndexLines) {
- if (index)
- mutt_menuDestroy (&index);
- index = NULL;
+ if (pager_index)
+ mutt_menuDestroy (&pager_index);
+ pager_index = NULL;
}
if (option (OPTWRAP) != old_smart_wrap ||
break;
case OP_DECRYPT_SAVE:
- if (!WithCrypto) {
- ch = -1;
- break;
- }
- /* fall through */
case OP_SAVE:
if (IsAttach (extra)) {
mutt_save_attachment_list (extra->fp, 0, extra->bdy, extra->hdr,
case OP_DECODE_SAVE:
case OP_DECODE_COPY:
case OP_DECRYPT_COPY:
- if (!WithCrypto && ch == OP_DECRYPT_COPY) {
- ch = -1;
- break;
- }
CHECK_MODE (IsHeader (extra));
if (mutt_save_message (extra->hdr,
(ch == OP_DECRYPT_SAVE) ||
case OP_MAIL_KEY:
- if (!(WithCrypto & APPLICATION_PGP)) {
- ch = -1;
- break;
- }
CHECK_MODE (IsHeader (extra));
CHECK_ATTACH;
ci_send_message (SENDKEY, NULL, NULL, extra->ctx, extra->hdr);
break;
case OP_EXTRACT_KEYS:
- if (!WithCrypto) {
- ch = -1;
- break;
- }
CHECK_MODE (IsHeader (extra));
crypt_extract_keys_from_messages (extra->hdr);
redraw = REDRAW_FULL;
SearchCompiled = 0;
}
p_delete(&lineInfo);
- if (index)
- mutt_menuDestroy (&index);
+ if (pager_index)
+ mutt_menuDestroy (&pager_index);
return (rc != -1 ? rc : 0);
}