libbb: better unicode width support. Hopefully fixes bug 839.
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 24 Jan 2010 06:44:03 +0000 (07:44 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 24 Jan 2010 06:44:03 +0000 (07:44 +0100)
commit9f93d621925966c22ee51fdcb5def8e131596f9b
treec1024fa92d6f422df6cf0991d5c9c8a4977b8625
parent5da9f96ad85a2d9119d92c7a3d89deca7d904210
libbb: better unicode width support. Hopefully fixes bug 839.

Also opens up a possibility to make other unicode stuff smaller
and more correct later. but:

function                                             old     new   delta
static.combining                                       -     516    +516
bb_wcwidth                                             -     328    +328
unicode_cut_nchars                                     -     141    +141
mbstowc_internal                                       -      93     +93
in_table                                               -      78     +78
cal_main                                             899     961     +62
static.combining0x10000                                -      40     +40
unicode_strlen                                         -      31     +31
bb_mbstrlen                                           31       -     -31
bb_mbstowcs                                          173     102     -71
------------------------------------------------------------------------------
(add/remove: 7/1 grow/shrink: 1/1 up/down: 1289/-102)        Total: 1187 bytes

Uses code of Markus Kuhn, which is in public domain:
http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
"Permission to use, copy, modify, and distribute this software
 for any purpose and without fee is hereby granted. The author
 disclaims all warranties with regard to this software."

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
coreutils/cal.c
coreutils/df.c
coreutils/expand.c
coreutils/ls.c
include/unicode.h
libbb/lineedit.c
libbb/unicode.c
libbb/unicode_wcwidth.c [new file with mode: 0644]
modutils/lsmod.c
networking/udhcp/dumpleases.c