[Mutt-j-users 145] Re: Fwd: [PATCH] Make mutt_FormatString multibyte aware

アーカイブの一覧に戻る

TAKAHASHI Tamotsu ttaka****@lapis*****
2007年 3月 19日 (月) 23:05:58 JST


高橋です。
いろいろ実験していたせいか、us-ascii で送ってしまいました。
連続ダメダメですね。すみません。

* Mon Mar 19 2007 TAKAHASHI Tamotsu <ttaka****@lapis*****>
> これは mutt-dev に流れたパッチの転送なんですが、
> wc ではなく mb をそのまま memcpy で複数回連結して
> 大丈夫なんでしょうか。
> 
> 私の手元では、いったん mbstowcs で全部 wc にしてから、
> memcpy ではなく wmemcpy するようにしたものを
> 使っているのですが、これは overkill でしょうか。

もともと mutt_FormatString 自体が
ASCII 前提みたいなコードなので、
wc にしちゃったほうが扱いやすいようにも思えるんですよね。


> @@ -1203,9 +1232,10 @@ void mutt_FormatString (char *dest,		/* output buffer */
>  	  wid = mutt_strwidth (buf);
>  	  if (count > wid)
>  	  {
> +	    int i;
>  	    count -= wid; /* how many chars to pad */
> -	    memset (wptr, ch, count);
> -	    wptr += count;
> +	    for (i = 0; i < count; i++, wptr += padlen)
> +	      memcpy (wptr, pad, padlen);
>  	    wlen += count;
>  	    col += count;
>  	  }

あーあ、wcwidth してない時点でアウトですね。

というわけで、もうちょっと練ってもらわないと
お話にならないことがわかりました。お騒がせしました。

-- 
tamo



Mutt-j-users メーリングリストの案内
アーカイブの一覧に戻る