- try to fix sidebar issue screwing up display when interactively changing $sidebar_w...
[apps/madmutt.git] / pager.c
diff --git a/pager.c b/pager.c
index 9eb3547..7bb69ff 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -57,6 +57,7 @@
 #define IsSendAttach(x) (x && (x)->bdy && !(x)->fp)
 #define IsMsgAttach(x) (x && (x)->fp && (x)->bdy && (x)->bdy->hdr)
 #define IsHeader(x) (x && (x)->hdr && !(x)->bdy)
+#define SW              (option(OPTMBOXPANE)?SidebarWidth:0)
 
 static const char *Not_available_in_this_menu =
 N_("Not available in this menu.");
@@ -105,7 +106,7 @@ struct syntax_t {
 };
 
 struct line_t {
-  long offset;
+  LOFF_T offset;
   short type;
   short continuation;
   short chunks;
@@ -908,7 +909,7 @@ static int trim_incomplete_mbyte(unsigned char *buf, size_t len) {
 }
 
 static int
-fill_buffer (FILE * f, long *last_pos, long offset, unsigned char *buf,
+fill_buffer (FILE * f, LOFF_T *last_pos, LOFF_T offset, unsigned char *buf,
              unsigned char *fmt, size_t blen, int *buf_ready)
 {
   unsigned char *p;
@@ -917,12 +918,12 @@ fill_buffer (FILE * f, long *last_pos, long offset, unsigned char *buf,
   if (*buf_ready == 0) {
     buf[blen - 1] = 0;
     if (offset != *last_pos)
-      fseek (f, offset, 0);
+      fseeko (f, offset, 0);
     if (fgets ((char *) buf, blen - 1, f) == NULL) {
       fmt[0] = 0;
       return (-1);
     }
-    *last_pos = ftell (f);
+    *last_pos = ftello (f);
     b_read = (int) (*last_pos - offset);
     *buf_ready = 1;
 
@@ -982,7 +983,7 @@ static int format_line (struct line_t **lineInfo, int n, unsigned char *buf,
 
   if (!(flags & (M_SHOWFLAT)))
     wrap_cols -= WrapMargin;
-  wrap_cols -= SidebarWidth;
+  wrap_cols -= SW;
 
   if (wrap_cols <= 0)
     wrap_cols = COLS;
@@ -1130,7 +1131,7 @@ static int format_line (struct line_t **lineInfo, int n, unsigned char *buf,
  */
 
 static int
-display_line (FILE * f, long *last_pos, struct line_t **lineInfo, int n,
+display_line (FILE * f, LOFF_T *last_pos, struct line_t **lineInfo, int n,
               int *last, int *max, int flags, struct q_class_t **QuoteList,
               int *q_level, int *force_redraw, regex_t * SearchRE)
 {
@@ -1423,7 +1424,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
   int r = -1;
   int redraw = REDRAW_FULL;
   FILE *fp = NULL;
-  long last_pos = 0, last_offset = 0;
+  LOFF_T last_pos = 0, last_offset = 0;
   int old_smart_wrap, old_markers;
   struct stat sb;
   regex_t SearchRE;
@@ -1604,7 +1605,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
 
     if ((redraw & REDRAW_BODY) || topline != oldtopline) {
       do {
-        move (bodyoffset, SidebarWidth);
+        move (bodyoffset, SW);
         curline = oldtopline = topline;
         lines = 0;
         force_redraw = 0;
@@ -1617,7 +1618,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
                             &SearchRE) > 0)
             lines++;
           curline++;
-          move (lines + bodyoffset, SidebarWidth);
+          move (lines + bodyoffset, SW);
           redraw |= REDRAW_SIDEBAR;
         }
         last_offset = lineInfo[curline].offset;
@@ -1631,7 +1632,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
           addch ('~');
         addch ('\n');
         lines++;
-        move (lines + bodyoffset, SidebarWidth);
+        move (lines + bodyoffset, SW);
       }
       /* We are going to update the pager status bar, so it isn't
        * necessary to reset to normal color now. */
@@ -1660,10 +1661,10 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
       }
       if (option(OPTSTATUSONTOP)) {
         move(0,0);
+      } else {
+        move(LINES-2,SW);
       }
-      /*move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (InHelp?(LINES-2):(indexlen - 1))),
-            option (OPTSTATUSONTOP) ? 0 : SidebarWidth);*/
-      mutt_paddstr (COLS - 10 - (option(OPTSTATUSONTOP)?0:SidebarWidth), IsHeader (extra)
+      mutt_paddstr (COLS - 10 - (option(OPTSTATUSONTOP)?0:SW), IsHeader (extra)
                     || IsMsgAttach (extra) ? buffer : banner);
 
       addstr (" -- (");
@@ -1686,10 +1687,10 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
       /* print out the index status bar */
       menu_status_line (buffer, sizeof (buffer), index, NONULL (Status));
       move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)),
-            option (OPTSTATUSONTOP) ? 0 : SidebarWidth);
+            option (OPTSTATUSONTOP) ? 0 : SW);
       SETCOLOR (MT_COLOR_STATUS);
       BKGDSET (MT_COLOR_STATUS);
-      mutt_paddstr (COLS - (option (OPTSTATUSONTOP) ? 0 : SidebarWidth),
+      mutt_paddstr (COLS - (option (OPTSTATUSONTOP) ? 0 : SW),
                     buffer);
       SETCOLOR (MT_COLOR_NORMAL);
       BKGDSET (MT_COLOR_NORMAL);