<<< Date Index >>>     <<< Thread Index >>>

Re: Bug#328921: mutt/1503: problems with utf-8 terminals



Hi.

This cause has mistaken the width of the column for the octet length.
The attached patch fixes this.

On Fri, Mar 09, 2007 at 02:25:02PM +0100,
 Christoph Berg wrote:

> The following reply was made to PR mutt/1503; it has been noted by GNATS.
> 
> From: Christoph Berg <cb@xxxxxxxx>
> To: Mutt Bugs <bug-any@xxxxxxxxxxxxx>
> Cc: 
> Subject: Bug#328921: mutt/1503: problems with utf-8 terminals
> Date: Fri, 9 Mar 2007 14:26:56 +0100
> 
>  Hi,
>  
>  mutt/1503 is still present in the current version. Stepan provides
>  some screenshots in Debian bug #328921: (See http://bugs.debian.org/32892=
>  1)

-- 
TAKIZAWA Takashi
http://www.emaillab.org/

diff -r f4d3704813fd help.c
--- a/help.c    Tue Mar 13 10:58:34 2007 +0100
+++ b/help.c    Wed Mar 14 01:09:50 2007 +0900
@@ -183,7 +183,7 @@ static void format_line (FILE *f, int is
   {
     col_a = COLS > 83 ? (COLS - 32) >> 2 : 12;
     col_b = COLS > 49 ? (COLS - 10) >> 1 : 19;
-    col = pad (f, mutt_strlen(t1), col_a);
+    col = pad (f, mutt_strwidth(t1), col_a);
   }
 
   if (ismacro > 0)
@@ -196,7 +196,7 @@ static void format_line (FILE *f, int is
     if (!split)
     {
       col += print_macro (f, col_b - col - 4, &t2);
-      if (mutt_strlen (t2) > col_b - col)
+      if (mutt_strwidth (t2) > col_b - col)
        t2 = "...";
     }
   }
@@ -223,7 +223,7 @@ static void format_line (FILE *f, int is
        SKIPWS(t3);
 
        /* FIXME: this is completely wrong */
-       if ((n = mutt_strlen (t3)) > COLS - col)
+       if ((n = mutt_strwidth (t3)) > COLS - col)
        {
          n = COLS - col;
          for (col_a = n; col_a > 0 && t3[col_a] != ' '; col_a--) ;