105 lines
2.7 KiB
Diff
105 lines
2.7 KiB
Diff
|
diff -up ./src/expand.c.orig ./src/expand.c
|
||
|
--- ./src/expand.c.orig 2016-06-01 12:42:49.330373488 +0200
|
||
|
+++ ./src/expand.c 2016-06-07 14:35:16.011142041 +0200
|
||
|
@@ -173,15 +173,19 @@ expand (void)
|
||
|
|
||
|
do
|
||
|
{
|
||
|
- do {
|
||
|
+ while (true) {
|
||
|
mbf_getc (c, mbf);
|
||
|
- if (mb_iseof (c))
|
||
|
+ if ((mb_iseof (c)) && (fp = next_file (fp)))
|
||
|
{
|
||
|
- mbf_init (mbf, fp = next_file (fp));
|
||
|
+ mbf_init (mbf, fp);
|
||
|
continue;
|
||
|
}
|
||
|
+ else
|
||
|
+ {
|
||
|
+ break;
|
||
|
+ }
|
||
|
}
|
||
|
- while (false);
|
||
|
+
|
||
|
|
||
|
if (convert)
|
||
|
{
|
||
|
diff -up ./src/unexpand.c.orig ./src/unexpand.c
|
||
|
--- ./src/unexpand.c.orig 2016-06-07 14:26:57.380746446 +0200
|
||
|
+++ ./src/unexpand.c 2016-06-07 14:34:54.059256698 +0200
|
||
|
@@ -220,15 +220,19 @@ unexpand (void)
|
||
|
|
||
|
do
|
||
|
{
|
||
|
- do {
|
||
|
+ while (true) {
|
||
|
mbf_getc (c, mbf);
|
||
|
- if (mb_iseof (c))
|
||
|
+ if ((mb_iseof (c)) && (fp = next_file (fp)))
|
||
|
{
|
||
|
- mbf_init (mbf, fp = next_file (fp));
|
||
|
+ mbf_init (mbf, fp);
|
||
|
continue;
|
||
|
}
|
||
|
+ else
|
||
|
+ {
|
||
|
+ break;
|
||
|
+ }
|
||
|
}
|
||
|
- while (false);
|
||
|
+
|
||
|
|
||
|
if (convert)
|
||
|
{
|
||
|
diff -up ./tests/expand/mb.sh.orig ./tests/expand/mb.sh
|
||
|
--- ./tests/expand/mb.sh.orig 2016-05-11 14:13:53.095289000 +0200
|
||
|
+++ ./tests/expand/mb.sh 2016-06-07 14:38:48.259033445 +0200
|
||
|
@@ -44,6 +44,20 @@ EOF
|
||
|
expand < in > out || fail=1
|
||
|
compare exp out > /dev/null 2>&1 || fail=1
|
||
|
|
||
|
+#multiple files as an input
|
||
|
+cat <<\EOF >> exp || framework_failure_
|
||
|
+1234567812345678123456781
|
||
|
+. . . .
|
||
|
+a b c d
|
||
|
+. . . .
|
||
|
+ä ö ü ß
|
||
|
+. . . .
|
||
|
+ äöü . öüä. ä xx
|
||
|
+EOF
|
||
|
+
|
||
|
+expand ./in ./in > out || fail=1
|
||
|
+compare exp out > /dev/null 2>&1 || fail=1
|
||
|
+
|
||
|
#test characters with display widths != 1
|
||
|
env printf '12345678
|
||
|
e\t|ascii(1)
|
||
|
diff -up ./tests/unexpand/mb.sh.orig ./tests/unexpand/mb.sh
|
||
|
--- ./tests/unexpand/mb.sh.orig 2016-06-07 14:41:44.210106466 +0200
|
||
|
+++ ./tests/unexpand/mb.sh 2016-06-07 14:52:28.848639772 +0200
|
||
|
@@ -44,6 +44,22 @@ EOF
|
||
|
unexpand -a < in > out || fail=1
|
||
|
compare exp out > /dev/null 2>&1 || fail=1
|
||
|
|
||
|
+
|
||
|
+#multiple files as an input
|
||
|
+cat >> exp <<\EOF
|
||
|
+1234567812345678123456781
|
||
|
+. . . .
|
||
|
+a b c d
|
||
|
+. . . .
|
||
|
+ä ö ü ß
|
||
|
+. . . .
|
||
|
+ äöü . öüä. ä xx
|
||
|
+EOF
|
||
|
+
|
||
|
+
|
||
|
+unexpand -a ./in ./in > out || fail=1
|
||
|
+compare exp out > /dev/null 2>&1 || fail=1
|
||
|
+
|
||
|
#test characters with a display width larger than 1
|
||
|
|
||
|
env printf '12345678
|