bug 2472 fix
Serge Steer [Sun, 6 Apr 2008 21:18:03 +0000 (21:18 +0000)]
scilab/modules/string/macros/evstr.sci

index 82481bd..cd207c1 100644 (file)
 
 function [%val,%ierr]=evstr(%str)
 
-[lhs,rhs]=argn(0)
-%val=[]
-select type(%str)
- case 10 then // matrix of character strings
+  [lhs,rhs]=argn(0)
+  %val=[]
+  select type(%str)
+   case 10 then // matrix of character strings
     for %l=1:size(%str,'r')
       %t1(%l)=strcat(%str(%l,:),',')+';'
     end
@@ -24,7 +24,7 @@ select type(%str)
     else
       execstr(%t1)
     end
- case 15 then // list
+   case 15 then // list
     %sexp=%str(2),
     %nstr=prod(size(%sexp)); %=list();
     if lhs==2 then
@@ -38,10 +38,13 @@ select type(%str)
       for %k=1:%nstr, %(%k)=evstr(%sexp(%k)),end,
       %val=evstr(%str(1))
     end
- case 1 then // real or complex constant matrix
-   %val=%str
-   %ierr=0
-else 
-   error(msprintf(gettext("%s: Wrong type for first input argument: Matrix of strings or list expected.\n"),"evstr"));
-end
+   case 1 then // real or complex constant matrix
+    %val=%str
+    %ierr=0
+  else 
+    error(msprintf(gettext("%s: Wrong type for first input argument: Matrix of strings or list expected.\n"),"evstr"));
+  end
+  if exists('%val','local')==0 then
+    error(msprintf(gettext("%s: Given expression has no value.\n"),"evstr"));
+  end
 endfunction