Sat, 27 Aug 2011 04:56:12 +0900 i18n: calculate terminal columns by width information of each characters stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 27 Aug 2011 04:56:12 +0900] rev 15066
i18n: calculate terminal columns by width information of each characters neither number of 'bytes' in any encoding nor 'characters' is appropriate to calculate terminal columns for specified string. this patch modifies MBTextWrapper for: - overriding '_wrap_chunks()' to make it use not built-in 'len()' but 'encoding.colwidth()' for columns of string - fixing '_cutdown()' to make it use 'encoding.colwidth()' instead of local, similar but incorrect implementation this patch also modifies 'encoding.py': - dividing 'colwith()' into 2 pieces: one for calculation columns of specified UNICODE string, and another for rest part of original one. the former is used from MBTextWrapper in 'util.py'. - preventing 'colwidth()' from evaluating HGENCODINGAMBIGUOUS configuration per each invocation: 'unicodedata.east_asian_width' checking is kept intact for reducing startup cost.
Sat, 06 Aug 2011 23:52:20 +0200 util: wrap lines with multi-byte characters correctly (issue2943) stable
Mads Kiilerich <mads@kiilerich.com> [Sat, 06 Aug 2011 23:52:20 +0200] rev 15065
util: wrap lines with multi-byte characters correctly (issue2943) This re-introduces the unicode conversion what was lost in d320e70442a5 5 years ago and had the comment: To avoid corrupting multi-byte characters in line, we must wrap a Unicode string instead of a bytestring.
(0) -10000 -3000 -1000 -300 -100 -30 -10 -2 +2 +10 +30 +100 +300 +1000 +3000 +10000 +30000 tip