On Sun, Mar 04, 2007 at 07:18:14PM +0900, TAKAHASHI Tamotsu wrote: > I'm for it, as MLTerm has "col_size_of_width_a" option > and vim has "ambwidth". But I have several questions: > > 1. What is legacy_ja? > Most of your code is clean, but the only thing I can't > understand is legacy_ja. Isn't there any side effect? > Why don't you just make it optional, e.g. > $more_widechars="00A2:00A3:00A5:00A6:00AC:00AF:2212"? > I think this is better than hard-coding them, though > much slower. Or am I missing something?
The conversion table of most iconv refers to the following table for Japanese. ftp://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXT It is necessary to treat the character as Wide, Fullwidth, or Ambiguous in this table. However, some of the above-mentioned character have been treated as Narrow or Neutral in the following table. ftp://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt Therefore, lagacy_ja need not be customized, and is additional as the bugfix to the table. > 2. Why not use macros for mutt_strwidth/_tree? > Mutt calls mutt_strwidth very often. What about macros? > #define mutt_strwidth(s) _mutt_strwidth(s,0) > #define mutt_strwidth_tree(s) _mutt_strwidth(s,1) Your idea is good. > 3. Can't we special-case East Asian Ambiguous class? > Many users are using their system's wcwidth instead of > mutt's one at this moment. So I don't think it is good > to use mutt's wcwidth by default. Instead, what about > using system's wcwidth after checking Ambiguous in mutt? > Of cource this requires many s/wcwidth/mutt_wcwidth/g, > but it worth the effort, doesn't it? I had tried to use mutt_wcwidth() that wrapped wcwidth() before. However, it did not go well. The cause is for the curses library to use wcwidth(). If mutt_wcwidth() is not the same as the result of wcwidth() of the system, the column in the display shifts. The patch was corrected in consideration of the opinion of Tamotsu-san. http://www.emaillab.org/mutt/1.5.14/patch-1.5.14.tt.wcwidth.2 It uses wcwidth() of the system by default. Ambiguous cannot be handled. It comes to be able to treat Ambiguous by putting --enable-cjk-ambiguous-width by the configure script. -- TAKIZAWA Takashi http://www.emaillab.org/