[bug_14096] msscanf fixed about the %s switch to %ls 46/17546/2
Cedric Delamarre [Fri, 4 Dec 2015 16:49:20 +0000 (17:49 +0100)]
Change-Id: Iffd12f36aebc9b4188dc20d331881109496ea757

scilab/CHANGES_6.0.X
scilab/modules/fileio/src/c/do_xxscanf.c
scilab/modules/fileio/tests/nonreg_tests/bug_14096.dia.ref [new file with mode: 0644]
scilab/modules/fileio/tests/nonreg_tests/bug_14096.tst [new file with mode: 0644]

index dbb3d1a..add4e9d 100644 (file)
@@ -51,6 +51,8 @@ Bug Fixes
 
 * Bug #14041 fixed - genlib crash when the file is locked by another program.
 
+* Bug #14096 fixed - Issue with mscanf Function.
+
 * Bug #14181 fixed - Calling intg (or integrate) in a function that is being integrated failed.
 
 * Bug #14251 fixed - `spec` leaked some memory.
index 335c766..8567182 100644 (file)
@@ -364,7 +364,7 @@ int do_xxscanf (const wchar_t *fname, FILE *fp, const wchar_t *format, int *narg
         wchar_t *f2 = sformat;
         wchar_t *slast = sformat + MAX_STR - 1 - 4;
 
-        int bFirst = 1;
+        int bFirst = 0;
         while (*f1 != L'\0')
         {
             int n;
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_14096.dia.ref b/scilab/modules/fileio/tests/nonreg_tests/bug_14096.dia.ref
new file mode 100644 (file)
index 0000000..5ca1779
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 14096 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14096
+//
+// <-- Short Description -->
+// Issue with mscanf Function.
+[n,name,fn] = msscanf("Dataset Name:  Gauss2            (Gauss2.dat)","Dataset Name: %s %s");
+assert_checkequal(fn, "(Gauss2.dat)");
+assert_checkequal(name, "Gauss2");
+assert_checkequal(n, 2);
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_14096.tst b/scilab/modules/fileio/tests/nonreg_tests/bug_14096.tst
new file mode 100644 (file)
index 0000000..8fa5763
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 14096 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14096
+//
+// <-- Short Description -->
+// Issue with mscanf Function.
+
+[n,name,fn] = msscanf("Dataset Name:  Gauss2            (Gauss2.dat)","Dataset Name: %s %s");
+assert_checkequal(fn, "(Gauss2.dat)");
+assert_checkequal(name, "Gauss2");
+assert_checkequal(n, 2);