]> granicus.if.org Git - mutt/commitdiff
Fix columns used for $status_format and $pager_format in the pager.
authorKevin McCarthy <kevin@8t8.us>
Tue, 7 Jun 2016 20:27:45 +0000 (13:27 -0700)
committerKevin McCarthy <kevin@8t8.us>
Tue, 7 Jun 2016 20:27:45 +0000 (13:27 -0700)
The code was hardcoding use of MuttIndexWindow->cols in
mutt_make_string_info() and MuttStatusWindow->cols in
menu_status_line().

Add a parameter to mutt_make_info_string().  Change menu_status_line()
to use menu->statuswin->cols, falling back to MuttStatusWindow if no
menu is passed in.

Set menu->statuswin appropriately inside pager.c.

Thanks to Richard Russon for tracking down this problem, and for the initial patch.

commands.c
hdrline.c
pager.c
protos.h
status.c

index 3ae00038d5f85a8b57a5ec8ddda3176f3ec21ef1..4750121995e5228ecff5d70d9a50c1844d98564f 100644 (file)
@@ -140,7 +140,7 @@ int mutt_display_message (HEADER *cur)
     hfi.ctx = Context;
     hfi.pager_progress = ExtPagerProgress;
     hfi.hdr = cur;
-    mutt_make_string_info (buf, sizeof (buf), NONULL(PagerFmt), &hfi, MUTT_FORMAT_MAKEPRINT);
+    mutt_make_string_info (buf, sizeof (buf), MuttIndexWindow->cols, NONULL(PagerFmt), &hfi, MUTT_FORMAT_MAKEPRINT);
     fputs (buf, fpout);
     fputs ("\n\n", fpout);
   }
index 93d6490141b8962d7325fc29ae0d2d06b014427c..eef19e6c552cc2c6fad82e09e6e8b7d59ac8fa19 100644 (file)
--- a/hdrline.c
+++ b/hdrline.c
@@ -758,7 +758,7 @@ _mutt_make_string (char *dest, size_t destlen, const char *s, CONTEXT *ctx, HEAD
 }
 
 void
-mutt_make_string_info (char *dst, size_t dstlen, const char *s, struct hdr_format_info *hfi, format_flag flags)
+mutt_make_string_info (char *dst, size_t dstlen, int cols, const char *s, struct hdr_format_info *hfi, format_flag flags)
 {
-  mutt_FormatString (dst, dstlen, 0, MuttIndexWindow->cols, s, hdr_format_str, (unsigned long) hfi, flags);
+  mutt_FormatString (dst, dstlen, 0, cols, s, hdr_format_str, (unsigned long) hfi, flags);
 }
diff --git a/pager.c b/pager.c
index 1420d920c587b1da652d1c9dad42c2c763182f4b..f256a4ed1fd061567e058ceef32e55ad37644fc9 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -1747,6 +1747,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
          index->max = Context->vcount;
          index->current = extra->hdr->virtual;
           index->indexwin = index_window;
+          index->statuswin = index_status_window;
        }
 
        NORMAL_COLOR;
@@ -1854,7 +1855,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
        size_t l1 = pager_status_window->cols * MB_LEN_MAX;
        size_t l2 = sizeof (buffer);
        hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr;
-       mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, MUTT_FORMAT_MAKEPRINT);
+       mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, pager_status_window->cols, NONULL (PagerFmt), &hfi, MUTT_FORMAT_MAKEPRINT);
        mutt_paddstr (pager_status_window->cols, buffer);
       }
       else
index b953e760c5e1b9d622860f8b812cfb5daf72a820..c219515274ea7aff02eb22abf1b9ea094bc81e00 100644 (file)
--- a/protos.h
+++ b/protos.h
@@ -36,7 +36,7 @@ struct hdr_format_info
   const char *pager_progress;
 };
 
-void mutt_make_string_info (char *, size_t, const char *, struct hdr_format_info *, format_flag);
+void mutt_make_string_info (char *, size_t, int, const char *, struct hdr_format_info *, format_flag);
 
 int mutt_extract_token (BUFFER *, BUFFER *, int);
 BUFFER *mutt_buffer_new (void);
index 30dda73bae13ff1df3d7e8743751c335bd4a6c0a..a8921a93d9190bbe63285d8f8d0c9694f8984c8f 100644 (file)
--- a/status.c
+++ b/status.c
@@ -304,5 +304,7 @@ static void _menu_status_line (char *buf, size_t buflen, size_t col, int cols, M
 
 void menu_status_line (char *buf, size_t buflen, MUTTMENU *menu, const char *p)
 {
-  mutt_FormatString (buf, buflen, 0, MuttStatusWindow->cols, p, status_format_str, (unsigned long) menu, 0);
+  mutt_FormatString (buf, buflen, 0,
+                     menu ? menu->statuswin->cols : MuttStatusWindow->cols,
+                     p, status_format_str, (unsigned long) menu, 0);
 }