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