As reported in bug 8506:
$ X=abcdÉfghÍjklmnÓpqrstÚvwcyz
$ echo ${#X}
abcd26
The result should be 26.
This regression was introduced by:
<
d68d1fb> 2015-05-18 [Ron Yorston] ash: code shrink around varvalue
The length in characters was being used to discard the contents of
the variable instead of the length in bytes.
URL: https://bugs.busybox.net/8506
Reported-by: Martijn Dekker <martijn@inlv.org>
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
(cherry picked from commit
3e3bfb896e0dd8a54caad9c6264e2452566b4012)
if (subtype == VSLENGTH && len > 0) {
reinit_unicode_for_ash();
if (unicode_status == UNICODE_ON) {
+ STADJUST(-len, expdest);
+ discard = 0;
len = unicode_strlen(p);
}
}
--- /dev/null
+X=abcdÉfghÍjklmnÓpqrstÚvwcyz
+echo ${#X}