X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=pager.c;h=b735abf4747b19c9c1c830006fff72a224782993;hp=721c0295cdd16b24a0a275129fb6f6aa75dd99e5;hb=5c310cabcfafe551dcad7638c007daae1c7d3710;hpb=3d937534e7b1ee723f86594b5e4c64c95158a933 diff --git a/pager.c b/pager.c index 721c029..b735abf 100644 --- a/pager.c +++ b/pager.c @@ -16,6 +16,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ +#if HAVE_CONFIG_H +# include "config.h" +#endif + #include "mutt.h" #include "mutt_curses.h" #include "mutt_regex.h" @@ -971,7 +975,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) { @@ -1038,8 +1042,11 @@ static int format_line (struct line_t **lineInfo, int n, unsigned char *buf, wchar_t wc; mbstate_t mbstate; - int wrap_cols = COLS - WrapMargin - SidebarWidth; - + int wrap_cols = COLS; + if (!(flags & (M_SHOWFLAT))) + wrap_cols -= WrapMargin; + wrap_cols -= SidebarWidth; + if (wrap_cols <= 0) wrap_cols = COLS; @@ -1735,17 +1742,17 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) CLEARLINE_WIN(statusoffset); if (IsHeader (extra)) { - _mutt_make_string (buffer, - COLS-9-SidebarWidth < sizeof (buffer) ? - COLS-9-SidebarWidth : sizeof (buffer), - NONULL (PagerFmt), Context, extra->hdr, M_FORMAT_MAKEPRINT); + size_t l1 = (COLS - 9) * MB_LEN_MAX; + size_t l2 = sizeof (buffer); + _mutt_make_string (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), + Context, extra->hdr, M_FORMAT_MAKEPRINT); } else if (IsMsgAttach (extra)) { - _mutt_make_string (buffer, - COLS - 9 - SidebarWidth < sizeof (buffer) ? - COLS - 9 - SidebarWidth : sizeof (buffer), - NONULL (PagerFmt), Context, extra->bdy->hdr, M_FORMAT_MAKEPRINT); + size_t l1 = (COLS - 9) * MB_LEN_MAX; + size_t l2 = sizeof (buffer); + _mutt_make_string (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), + Context, extra->bdy->hdr, M_FORMAT_MAKEPRINT); } mutt_paddstr (COLS-10-SidebarWidth, IsHeader (extra) || IsMsgAttach (extra) ? buffer : banner);