bug 3598
Allan Cornet [Mon, 29 Sep 2008 07:14:21 +0000 (07:14 +0000)]
scilab/CHANGES_5.1
scilab/modules/fileio/macros/cd.sci
scilab/modules/fileio/macros/dir.sci
scilab/modules/fileio/macros/ls.sci
scilab/modules/helptools/macros/help.sci

index 6c29ffe..d9d4419 100644 (file)
@@ -62,10 +62,12 @@ Bug fixes:
 
 * bug in the script in charge of the dispatch of localization files fixed (tools/localization/dispatchLocalizationFile.sh)
 
-* paths in examples.bat in SCI/modules/javasci/examples were wrong
+* bug 3559 fixed - paths in examples.bat in SCI/modules/javasci/examples were wrong
 
 * bug 3556 fixed - derivative was not supporting non compiled functions
 
 * bug 3565 fixed - bad detection of the IBM JDK
 
 * bug 3566, 3567 fixed - sort and gsort didn't sort correctly complex matrix.
+
+* bug 3598 fixed - ls(1) or cd(1) or dir(1) or help(1), scilab crashes
index 48de3e7..2913659 100644 (file)
@@ -8,7 +8,10 @@
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 function path=cd(path)
-  if argn(2)==1 then 
+  if argn(2)==1 then
+    if type(path) <> 10 then 
+      error(999,msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),'cd',1));
+    end 
        path=stripblanks(path)
     if or(path==['PWD' 'SCIHOME']) then path=evstr(path),end
     if MSDOS then 
index 6e67fa5..0f431b6 100644 (file)
@@ -13,6 +13,11 @@ function L=dir(str)
        dirtype  = 16384;
        
        if argn(2)==1 then
+       
+    if type(str) <> 10 then 
+      error(999,msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),'dir',1));
+    end 
+
                files    = listfiles(str);
                basepath = str;
        else
index 6ab7f8e..13a6e6d 100644 (file)
@@ -19,6 +19,9 @@ function files=ls(varargin)
                path = "./";
        else
                path = varargin(1);
+               if type(path) <> 10 then 
+      error(999,msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),'ls',1));
+    end 
                for k=2:size(varargin)
                        opts = [opts varargin(k)];
                end
index 525283e..6e6dd93 100644 (file)
@@ -20,6 +20,10 @@ if (fileinfo('SCI/modules/helptools/help') <> []) then
       return
     end
     
+    if type(key) <> 10 then 
+      error(999,msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),'help',1));
+    end 
+    
     // Search a function name
     key=stripblanks(key)