summaryrefslogtreecommitdiff
path: root/coreutils/ls.c
diff options
context:
space:
mode:
authorDenys Vlasenko2010-01-24 07:44:03 +0100
committerDenys Vlasenko2010-01-24 07:44:03 +0100
commit9f93d621925966c22ee51fdcb5def8e131596f9b (patch)
treec1024fa92d6f422df6cf0991d5c9c8a4977b8625 /coreutils/ls.c
parent5da9f96ad85a2d9119d92c7a3d89deca7d904210 (diff)
downloadbusybox-9f93d621925966c22ee51fdcb5def8e131596f9b.zip
busybox-9f93d621925966c22ee51fdcb5def8e131596f9b.tar.gz
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>
Diffstat (limited to 'coreutils/ls.c')
-rw-r--r--coreutils/ls.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c
index b8da1ad..e754447 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -550,7 +550,7 @@ static void showfiles(struct dnode **dn, unsigned nfiles)
} else {
/* find the longest file name, use that as the column width */
for (i = 0; dn[i]; i++) {
- int len = bb_mbstrlen(dn[i]->name);
+ int len = unicode_strlen(dn[i]->name);
if (column_width < len)
column_width = len;
}
@@ -742,7 +742,7 @@ static int print_name(const char *name)
{
if (option_mask32 & OPT_Q) {
#if ENABLE_FEATURE_ASSUME_UNICODE
- unsigned len = 2 + bb_mbstrlen(name);
+ unsigned len = 2 + unicode_strlen(name);
#else
unsigned len = 2;
#endif
@@ -762,7 +762,7 @@ static int print_name(const char *name)
/* No -Q: */
#if ENABLE_FEATURE_ASSUME_UNICODE
fputs(name, stdout);
- return bb_mbstrlen(name);
+ return unicode_strlen(name);
#else
return printf("%s", name);
#endif