12345678910111213141516171819202122232425262728293031323334 |
- --- busybox-1.23.0/shell/ash.c
- +++ busybox-1.23.0-ash/shell/ash.c
- @@ -6746,6 +6746,14 @@ varvalue(char *name, int varflags, int f
- len = strlen(p);
- if (!(subtype == VSPLUS || subtype == VSLENGTH))
- memtodest(p, len, syntax, quotes);
- +#if ENABLE_UNICODE_SUPPORT
- + if (subtype == VSLENGTH && len > 0) {
- + reinit_unicode_for_ash();
- + if (unicode_status == UNICODE_ON) {
- + len = unicode_strlen(p);
- + }
- + }
- +#endif
- return len;
- }
-
- @@ -6829,15 +6837,7 @@ evalvar(char *p, int flags, struct strli
- varunset(p, var, 0, 0);
-
- if (subtype == VSLENGTH) {
- - ssize_t n = varlen;
- - if (n > 0) {
- - reinit_unicode_for_ash();
- - if (unicode_status == UNICODE_ON) {
- - const char *val = lookupvar(var);
- - n = unicode_strlen(val);
- - }
- - }
- - cvtnum(n > 0 ? n : 0);
- + cvtnum(varlen > 0 ? varlen : 0);
- goto record;
- }
-
|