Rocco Rutte:
[apps/madmutt.git] / pager.c
diff --git a/pager.c b/pager.c
index 25396d7..9cc94a1 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.");
@@ -832,6 +833,8 @@ static int grok_ansi (unsigned char *buf, int pos, ansi_attr * a)
       a->attr = ANSI_OFF;
       a->pair = -1;
     }
+    a->bg = -2;
+    a->fg = -2;
     while (pos < x) {
       if (buf[pos] == '1' && (pos + 1 == x || buf[pos + 1] == ';')) {
         a->attr |= ANSI_BOLD;
@@ -865,7 +868,8 @@ static int grok_ansi (unsigned char *buf, int pos, ansi_attr * a)
 #endif
         a->pair = -1;
         a->attr |= ANSI_COLOR;
-        a->fg = buf[pos + 1] - '0';
+        if (buf[pos + 1] != '9')
+          a->fg = buf[pos + 1] - '0';
         pos += 3;
       }
       else if (buf[pos] == '4' && isdigit (buf[pos + 1])) {
@@ -875,7 +879,8 @@ static int grok_ansi (unsigned char *buf, int pos, ansi_attr * a)
 #endif
         a->pair = -1;
         a->attr |= ANSI_COLOR;
-        a->bg = buf[pos + 1] - '0';
+        if (buf[pos + 1] != '9')
+          a->bg = buf[pos + 1] - '0';
         pos += 3;
       }
       else {
@@ -982,7 +987,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;
@@ -1535,8 +1540,8 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
 
       if (option (OPTHELP)) {
         SETCOLOR (MT_COLOR_STATUS);
-        move (helpoffset, 0);
-        mutt_paddstr (COLS, helpstr);
+        move (helpoffset, SW);
+        mutt_paddstr (COLS-SW, helpstr);
         SETCOLOR (MT_COLOR_NORMAL);
       }
 
@@ -1604,7 +1609,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 +1622,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 +1636,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. */
@@ -1658,13 +1663,9 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
         _mutt_make_string (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt),
                            Context, extra->bdy->hdr, M_FORMAT_MAKEPRINT);
       }
-      if (option(OPTSTATUSONTOP)) {
-        move(0,0);
-      }
-      /*move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (InHelp?(LINES-2):(indexlen - 1))),
-            option (OPTSTATUSONTOP) ? 0 : SidebarWidth);*/
-      mutt_paddstr (COLS - 10 - (option(OPTSTATUSONTOP)?0:SidebarWidth), IsHeader (extra)
-                    || IsMsgAttach (extra) ? buffer : banner);
+      move(statusoffset,SW);
+      mutt_paddstr (COLS - 10 - SW, IsHeader (extra) || 
+                    IsMsgAttach (extra) ? buffer : banner);
 
       addstr (" -- (");
       if (last_pos < sb.st_size - 1)
@@ -1685,12 +1686,10 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
       sidebar_draw (MENU_PAGER);
       /* 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);
+      move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SW);
       SETCOLOR (MT_COLOR_STATUS);
       BKGDSET (MT_COLOR_STATUS);
-      mutt_paddstr (COLS - (option (OPTSTATUSONTOP) ? 0 : SidebarWidth),
-                    buffer);
+      mutt_paddstr (COLS-SW, buffer);
       SETCOLOR (MT_COLOR_NORMAL);
       BKGDSET (MT_COLOR_NORMAL);
     }