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