diff scripts/strings/strcat.m @ 3180:c17387059fd3

[project @ 1998-09-24 18:59:11 by jwe]
author jwe
date Thu, 24 Sep 1998 19:00:19 +0000
parents 8b262e771614
children 4f40efa995c1
line wrap: on
line diff
--- a/scripts/strings/strcat.m	Wed Jul 29 19:50:02 1998 +0000
+++ b/scripts/strings/strcat.m	Thu Sep 24 19:00:19 1998 +0000
@@ -26,20 +26,26 @@
 function st = strcat (s, t, ...)
 
   if (nargin > 1)
-    if (isstr (s) && isstr (t))
-      tmpst = [s, t];
-    else
-      error ("strcat: all arguments must be strings");
-    endif
-    n = nargin - 2;
-    while (n--)
-      tmp = va_arg ();
-      if (isstr (tmp))
-        tmpst = [tmpst, tmp];
+    save_empty_list_elements_ok = empty_list_elements_ok;
+    unwind_protect
+      empty_list_elements_ok = 1;
+      if (isstr (s) && isstr (t))
+      	tmpst = [s, t];
       else
-        error ("strcat: all arguments must be strings");
+      	error ("strcat: all arguments must be strings");
       endif
-    endwhile
+      n = nargin - 2;
+      while (n--)
+      	tmp = va_arg ();
+      	if (isstr (tmp))
+          tmpst = [tmpst, tmp];
+      	else
+          error ("strcat: all arguments must be strings");
+      	endif
+      endwhile
+    unwind_protect_cleanup
+      empty_list_elements_ok = save_empty_list_elements_ok;
+    end_unwind_protect
   else
     usage ("strcat (s, t, ...)");
   endif