summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--libbb/unicode.c8
-rw-r--r--testsuite/date/date-works-12
-rwxr-xr-xtestsuite/mdev.tests4
3 files changed, 8 insertions, 6 deletions
diff --git a/libbb/unicode.c b/libbb/unicode.c
index 844c154e0..39b173e9c 100644
--- a/libbb/unicode.c
+++ b/libbb/unicode.c
@@ -203,11 +203,13 @@ size_t FAST_FUNC mbstowcs(wchar_t *dest, const char *src, size_t n)
while (n) {
wchar_t wc;
- const char *rc = mbstowc_internal(dest ? dest : &wc, src);
- if (rc == NULL) /* error */
+ src = mbstowc_internal(&wc, src);
+ if (src == NULL) /* error */
return (size_t) -1L;
if (dest)
- dest++;
+ *dest++ = wc;
+ if (wc == 0) /* end-of-string */
+ break;
n--;
}
diff --git a/testsuite/date/date-works-1 b/testsuite/date/date-works-1
index bd984c0be..1b3e47ab0 100644
--- a/testsuite/date/date-works-1
+++ b/testsuite/date/date-works-1
@@ -126,4 +126,4 @@ test x"$res" = xOK
# This should error out (by showing usage text). Testing for that
dt=`busybox date -d 012311332000.30 %+c 2>&1 | head -n 1`
-test x"${dt#BusyBox * multi-call binary}" = x
+test x"${dt##BusyBox * multi-call binary*}" = x""
diff --git a/testsuite/mdev.tests b/testsuite/mdev.tests
index 319c670da..036738e52 100755
--- a/testsuite/mdev.tests
+++ b/testsuite/mdev.tests
@@ -7,9 +7,9 @@
# ls -ln is showing date. Need to remove that, it's variable
# sed: (1) "maj, min" -> "maj,min" (2) coalesce spaces
# cut: remove date
-FILTER_LS="sed -e 's/, */,/g' -e 's/ */ /g' | cut -d' ' -f 1-5,9-"
+FILTER_LS="grep -v '^total ' | sed -e 's/, */,/g' -e 's/ */ /g' | cut -d' ' -f 1-5,9-"
# cut: remove size+date
-FILTER_LS2="sed -e 's/, */,/g' -e 's/ */ /g' | cut -d' ' -f 1-4,9-"
+FILTER_LS2="grep -v '^total ' | sed -e 's/, */,/g' -e 's/ */ /g' | cut -d' ' -f 1-4,9-"
# testing "test name" "options" "expected result" "file input" "stdin"