* Bug #13843 fixed - Scilab crashed when polarplot and plot2d were called with wrong...
[scilab.git] / scilab / modules / graphics / src / c / GetCommandArg.c
index c023d9b..c8eb462 100644 (file)
@@ -210,28 +210,32 @@ int get_strf_arg(void* _pvCtx, char *fname, int pos, rhs_opts opts[], char ** st
         char* pstData = NULL;
         getVarAddressFromPosition(_pvCtx, pos, &piAddr);
         getVarType(_pvCtx, piAddr, &iType);
-
-        if (iType)
+        if (iType != 10)
         {
-            getAllocatedSingleString(_pvCtx, piAddr, &pstData);
-            if ((int)strlen(pstData) != 3)
-            {
-                freeAllocatedSingleString(pstData);
-                Scierror(999, _("%s: Wrong size for input argument #%d: String of %d characters expected.\n"), fname, pos, 3);
-                return 0;
-            }
-            *strf = pstData;
+            Scierror(999, _("%s: Wrong type for input argument #%d: String expected.\n"), fname, pos);
+            return 0;
         }
-        else
+
+        getAllocatedSingleString(_pvCtx, piAddr, &pstData);
+        if ((int)strlen(pstData) != 3)
         {
-            /* def value can be changed */
-            reinitDefStrf();
-            *strf = getDefStrf();
+            freeAllocatedSingleString(pstData);
+            Scierror(999, _("%s: Wrong size for input argument #%d: String of %d characters expected.\n"), fname, pos, 3);
+            return 0;
         }
+        *strf = pstData;
     }
     else if ((kopt = FindOpt(_pvCtx, "strf", opts)) >= 0)
     {
         char* pstData = NULL;
+        int iType = 0;
+        getVarType(_pvCtx, opts[kopt].piAddr, &iType);
+        if (iType != 10)
+        {
+            Scierror(999, _("%s: Wrong type for input argument #%d: String expected.\n"), fname, pos);
+            return 0;
+        }
+
         getAllocatedSingleString(_pvCtx, opts[kopt].piAddr, &pstData);
         if ((int)strlen(pstData) != 3)
         {