From: Tomas Heinrich Date: Fri, 26 Mar 2010 08:40:47 +0000 (+0100) Subject: [un]expand: account for different character widths. +16 bytes. X-Git-Tag: 1_17_0~363 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1abc07dcca237e6b5c98fea740e59d59c801c9e2;p=oweals%2Fbusybox.git [un]expand: account for different character widths. +16 bytes. Signed-off-by: Tomas Heinrich Signed-off-by: Denys Vlasenko --- diff --git a/coreutils/expand.c b/coreutils/expand.c index 2f6a708b5..60ac9f568 100644 --- a/coreutils/expand.c +++ b/coreutils/expand.c @@ -49,7 +49,11 @@ static void expand(FILE *file, unsigned tab_size, unsigned opt) unsigned len; *ptr = '\0'; # if ENABLE_FEATURE_ASSUME_UNICODE - len = unicode_strlen(ptr_strbeg); + { + uni_stat_t uni_stat; + printable_string(&uni_stat, ptr_strbeg); + len = uni_stat.unicode_width; + } # else len = ptr - ptr_strbeg; # endif @@ -103,9 +107,11 @@ static void unexpand(FILE *file, unsigned tab_size, unsigned opt) # if ENABLE_FEATURE_ASSUME_UNICODE { char c; + uni_stat_t uni_stat; c = ptr[n]; ptr[n] = '\0'; - len = unicode_strlen(ptr); + printable_string(&uni_stat, ptr); + len = uni_stat.unicode_width; ptr[n] = c; } # else