diff options
Diffstat (limited to 'main/busybox/busybox-1.23.0-ash.patch')
-rw-r--r-- | main/busybox/busybox-1.23.0-ash.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/main/busybox/busybox-1.23.0-ash.patch b/main/busybox/busybox-1.23.0-ash.patch new file mode 100644 index 0000000000..fb494aa251 --- /dev/null +++ b/main/busybox/busybox-1.23.0-ash.patch @@ -0,0 +1,34 @@ +--- 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; + } + |