bug 5292
Allan CORNET [Tue, 10 Nov 2009 08:12:33 +0000 (09:12 +0100)]
scilab/CHANGES_5.2.X
scilab/modules/mexlib/includes/mex.h
scilab/modules/mexlib/tests/nonreg_tests/bug_5292.dia.ref [new file with mode: 0644]
scilab/modules/mexlib/tests/nonreg_tests/bug_5292.tst [new file with mode: 0644]

index df2175f..f181162 100644 (file)
@@ -47,7 +47,7 @@ Bug fixes:
 
 * bug 5283 fixed - Intel Fortran 11 compiler did not require to import some settings in Visual Studio.
 
-
+* bug 5292 fixed -  There is a conflict between bool and scilab header mex.h (with Visual Studio and mex files)
 
 
 
index c4503b1..3a24a3b 100644 (file)
@@ -64,7 +64,12 @@ typedef struct table_struct {
 #endif
 
 #define mxCreateFull mxCreateDoubleMatrix
-#define bool int
+
+#ifndef __cplusplus
+       #ifndef bool
+               #define bool int
+       #endif
+#endif
 
 #define mexGetMatrixPtr(name) mexGetArrayPtr(name, "caller")
 
diff --git a/scilab/modules/mexlib/tests/nonreg_tests/bug_5292.dia.ref b/scilab/modules/mexlib/tests/nonreg_tests/bug_5292.dia.ref
new file mode 100644 (file)
index 0000000..4b5d4d2
--- /dev/null
@@ -0,0 +1,32 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 5292 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=5292
+//
+// <-- Short Description -->
+// There is a conflict between bool and scilab header mex.h 
+ilib_verbose(0);
+my_current_directory = pwd();
+cd(TMPDIR);
+mputl('ilib_mex_build(''libmex'',[''mex_5292'',''mexfunction_5292'',''cmex''],[''mexfunction_5292.cpp''],[],'''','''','''','''')','builder.sce');
+mputl(["#include <mex.h>"
+"#include <list>"
+"#include <memory.h>"
+"void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])"
+"{"
+"  if(nrhs < 2)"
+"    mexErrMsgTxt(""Two input arguments required."");"
+"  if (nlhs > 1)"
+"   mexErrMsgTxt(""Too many output arguments."");"
+"}"],'mexfunction_5292.cpp');
+ierr = execstr('mex_5292()','errcatch');
+if ierr <> 999 then bugmes();quit;end
+ierr = execstr('mex_5292(2,2)','errcatch');
+if ierr <> 0 then bugmes();quit;end
+cd(my_current_directory);
diff --git a/scilab/modules/mexlib/tests/nonreg_tests/bug_5292.tst b/scilab/modules/mexlib/tests/nonreg_tests/bug_5292.tst
new file mode 100644 (file)
index 0000000..75be34a
--- /dev/null
@@ -0,0 +1,43 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 5292 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=5292
+//
+// <-- Short Description -->
+// There is a conflict between bool and scilab header mex.h 
+
+ilib_verbose(0);
+
+my_current_directory = pwd();
+cd(TMPDIR);
+mputl('ilib_mex_build(''libmex'',[''mex_5292'',''mexfunction_5292'',''cmex''],[''mexfunction_5292.cpp''],[],'''','''','''','''')','builder.sce');
+
+mputl(["#include <mex.h>"
+"#include <list>"
+"#include <memory.h>"
+
+"void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])"
+"{"
+"  if(nrhs < 2)"
+"    mexErrMsgTxt(""Two input arguments required."");"
+"  if (nlhs > 1)"
+"   mexErrMsgTxt(""Too many output arguments."");"
+"}"],'mexfunction_5292.cpp');
+
+exec('builder.sce');
+exec('loader.sce');
+
+ierr = execstr('mex_5292()','errcatch');
+if ierr <> 999 then pause,end
+
+ierr = execstr('mex_5292(2,2)','errcatch');
+if ierr <> 0 then pause,end
+
+cd(my_current_directory);