X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=pager.c;h=cb281de09e6da0bbd37c553cce503bf85e36ad90;hb=3714b39a106889e8f9ca6de2664e7aabe9a7e853;hp=7e9a41b493cd52c89978610226d2da89c8373980;hpb=07232d8229d07417da518d8c68a80f5386905d8d;p=apps%2Fmadmutt.git diff --git a/pager.c b/pager.c index 7e9a41b..cb281de 100644 --- a/pager.c +++ b/pager.c @@ -971,7 +971,7 @@ fill_buffer (FILE *f, long *last_pos, long offset, unsigned char *buf, unsigned char *fmt, size_t blen, int *buf_ready) { unsigned char *p; - static int b_read; + static int b_read = 0; if (*buf_ready == 0) { @@ -1677,13 +1677,15 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) j = -1; while (display_line (fp, &last_pos, &lineInfo, ++i, &lastLine, &maxLine, has_types | SearchFlag, &QuoteList, &q_level, &force_redraw, - &SearchRE) == 0) - if (!lineInfo[i].continuation && ++j == lines) - { - topline = i; - if (!SearchFlag) - break; - } + &SearchRE) == 0) { + if (!lineInfo[i].continuation && ++j == lines) + { + topline = i; + if (!SearchFlag) + break; + } + redraw |= REDRAW_SIDEBAR; + } /* while */ } if ((redraw & REDRAW_BODY) || topline != oldtopline) @@ -1703,6 +1705,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) lines++; curline++; move(lines + bodyoffset, SidebarWidth); + redraw |= REDRAW_SIDEBAR; } last_offset = lineInfo[curline].offset; } while (force_redraw); @@ -1755,6 +1758,9 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) SETCOLOR (MT_COLOR_NORMAL); } + if (redraw & REDRAW_SIDEBAR) + draw_sidebar(MENU_PAGER); + if ((redraw & REDRAW_INDEX) && index) { /* redraw the pager_index indicator, because the @@ -2046,8 +2052,10 @@ search_next: while (display_line (fp, &last_pos, &lineInfo, i, &lastLine, &maxLine, M_SEARCH | (flags & M_PAGER_NSKIP), &QuoteList, &q_level, - &force_redraw, &SearchRE) == 0) + &force_redraw, &SearchRE) == 0) { i++; + redraw |= REDRAW_SIDEBAR; + } if (!SearchBack) { @@ -2127,8 +2135,10 @@ search_next: (0 == (dretval = display_line (fp, &last_pos, &lineInfo, new_topline, &lastLine, &maxLine, M_TYPES, &QuoteList, &q_level, &force_redraw, &SearchRE)))) - && lineInfo[new_topline].type != MT_COLOR_QUOTED) + && lineInfo[new_topline].type != MT_COLOR_QUOTED) { + redraw |= REDRAW_SIDEBAR; new_topline++; + } if (dretval < 0) { @@ -2140,8 +2150,10 @@ search_next: (0 == (dretval = display_line (fp, &last_pos, &lineInfo, new_topline, &lastLine, &maxLine, M_TYPES, &QuoteList, &q_level, &force_redraw, &SearchRE)))) - && lineInfo[new_topline].type == MT_COLOR_QUOTED) + && lineInfo[new_topline].type == MT_COLOR_QUOTED) { new_topline++; + redraw |= REDRAW_SIDEBAR; + } if (dretval < 0) { @@ -2160,8 +2172,10 @@ search_next: while (display_line (fp, &last_pos, &lineInfo, i, &lastLine, &maxLine, has_types, &QuoteList, &q_level, &force_redraw, - &SearchRE) == 0) + &SearchRE) == 0) { i++; + redraw |= REDRAW_SIDEBAR; + } topline = upNLines (bodylen, lineInfo, lastLine, hideQuoted); } else @@ -2204,6 +2218,17 @@ search_next: mutt_resend_message (NULL, extra->ctx, extra->hdr); redraw = REDRAW_FULL; break; + + 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; + } + break; case OP_CREATE_ALIAS: CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra)); @@ -2345,6 +2370,7 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); &QuoteList, &q_level, &force_redraw, &SearchRE) == 0) { + redraw |= REDRAW_SIDEBAR; if (! lineInfo[topline].continuation) j--; if (j > 0) @@ -2415,7 +2441,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); case OP_MAIL: CHECK_MODE(IsHeader (extra) && !IsAttach (extra)); CHECK_ATTACH; - ci_send_message (0, NULL, NULL, extra->ctx, extra->hdr); + ci_send_message (0, NULL, NULL, extra->ctx, NULL); redraw = REDRAW_FULL; break; @@ -2486,7 +2512,7 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); break; case OP_RECALL_MESSAGE: - CHECK_MODE(IsHeader (extra)); + CHECK_MODE(IsHeader (extra) && !IsAttach(extra)); CHECK_ATTACH; ci_send_message (SENDPOSTPONED, NULL, NULL, extra->ctx, extra->hdr); redraw = REDRAW_FULL; @@ -2578,6 +2604,11 @@ CHECK_IMAP_ACL(IMAP_ACL_WRITE); case OP_TAG: CHECK_MODE(IsHeader (extra)); mutt_set_flag (Context, extra->hdr, M_TAG, !extra->hdr->tagged); + + Context->last_tag = extra->hdr->tagged ? extra->hdr : + ((Context->last_tag == extra->hdr && !extra->hdr->tagged) + ? NULL : Context->last_tag); + redraw = REDRAW_STATUS | REDRAW_INDEX; if (option (OPTRESOLVE)) {