genlib: process files sorted to ease reproducibility 47/18747/4
Clément DAVID [Wed, 30 Nov 2016 13:34:40 +0000 (14:34 +0100)]
Change-Id: Ice5f4282c102fa0be6bfea278980d3fb206d75a1

scilab/modules/functions/tests/nonreg_tests/bug_9059.dia.ref
scilab/modules/functions/tests/nonreg_tests/bug_9059.tst
scilab/modules/io/sci_gateway/cpp/sci_genlib.cpp

index 468a315..a1e1975 100644 (file)
@@ -6,6 +6,7 @@
 // =============================================================================
 //
 // <-- CLI SHELL MODE -->
+// <-- ENGLISH IMPOSED -->
 //
 // <-- Non-regression test for bug 9059 -->
 //
index 4492892..7d99743 100644 (file)
@@ -6,6 +6,7 @@
 // =============================================================================
 //
 // <-- CLI SHELL MODE -->
+// <-- ENGLISH IMPOSED -->
 //
 // <-- Non-regression test for bug 9059 -->
 //
index 9841409..1dcd01e 100644 (file)
@@ -59,12 +59,16 @@ extern "C"
 #include "scicurdir.h"
 #include "md5.h"
 #include "pathconvert.h"
+
+#include <wchar.h> // for wcscmp
+#include <stdlib.h> // for qsort
 }
 
 
 xmlTextWriterPtr openXMLFile(const wchar_t *_pstFilename, const wchar_t* _pstLibName);
 void closeXMLFile(xmlTextWriterPtr _pWriter);
 bool AddMacroToXML(xmlTextWriterPtr _pWriter, const std::wstring& name, const std::wstring& file, const std::wstring& md5);
+static int cmp(const void* p1, const void* p2);
 
 
 /*--------------------------------------------------------------------------*/
@@ -218,6 +222,9 @@ types::Function::ReturnValue sci_genlib(types::typed_list &in, int _iRetCount, t
 
 
     wchar_t **pstPath = findfilesW(pstParsePath, L"*.sci", &iNbFile, FALSE);
+    // sort by name using C-style functions
+    qsort(pstPath, iNbFile, sizeof(wchar_t*), cmp);
+
 
     if (pstPath)
     {
@@ -561,3 +568,10 @@ bool AddMacroToXML(xmlTextWriterPtr _pWriter, const std::wstring& name, const st
 
     return true;
 }
+
+
+static int cmp(const void* p1, const void* p2)
+{
+    return wcscmp(* (wchar_t * const *) p1, * (wchar_t * const *) p2);
+}
+