summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scilab2c/macros/CCodeGeneration/C_Funcall.sci7
-rw-r--r--scilab2c/macros/CCodeGeneration/C_GenerateFunName.sci1
-rw-r--r--scilab2c/macros/CCodeGeneration/C_GenerateSCI2CHeader.sci21
-rw-r--r--scilab2c/macros/sci2c_gui.sci2
-rw-r--r--scilab2c/src/c/auxiliaryFunctions/interfaces/int_find.h16
5 files changed, 36 insertions, 11 deletions
diff --git a/scilab2c/macros/CCodeGeneration/C_Funcall.sci b/scilab2c/macros/CCodeGeneration/C_Funcall.sci
index 339c8451..8b629cb1 100644
--- a/scilab2c/macros/CCodeGeneration/C_Funcall.sci
+++ b/scilab2c/macros/CCodeGeneration/C_Funcall.sci
@@ -195,7 +195,12 @@ else
end
-CCall = CCall+CFunName+'(';
+if CFunName == "main"
+ CCall = CCall + CFunName + "(";
+else
+ CCall = CCall+"SCI2C("+CFunName+")(";
+end
+
// #RNU_RES_B
PrintStringInfo(' C call after output scalar args check: '+CCall,ReportFileName,'file','y');
// #RNU_RES_E
diff --git a/scilab2c/macros/CCodeGeneration/C_GenerateFunName.sci b/scilab2c/macros/CCodeGeneration/C_GenerateFunName.sci
index b5b8c12d..9d40d2b9 100644
--- a/scilab2c/macros/CCodeGeneration/C_GenerateFunName.sci
+++ b/scilab2c/macros/CCodeGeneration/C_GenerateFunName.sci
@@ -41,5 +41,4 @@ for tmpcnt = 1:NOutArg
CFunName = CFunName+OutArg(tmpcnt).Type+SCI2Cstring(OutArg(tmpcnt).Dimension);
end
end
-
endfunction
diff --git a/scilab2c/macros/CCodeGeneration/C_GenerateSCI2CHeader.sci b/scilab2c/macros/CCodeGeneration/C_GenerateSCI2CHeader.sci
new file mode 100644
index 00000000..bced7243
--- /dev/null
+++ b/scilab2c/macros/CCodeGeneration/C_GenerateSCI2CHeader.sci
@@ -0,0 +1,21 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+//
+//
+function C_GenerateSCI2CHeader(OutputPath, FunctionPrefix)
+ FileName = OutputPath+"scilab2c.h"
+ C_SCI2CHeader(FileName);
+ PrintStringInfo('#ifndef __SCILAB2C_H__',FileName,'file','y');
+ PrintStringInfo('#define __SCILAB2C_H__',FileName,'file','y');
+ PrintStringInfo('',FileName,'file','y');
+ PrintStringInfo('#define SCI2C(Name) '+FunctionPrefix+'_##Name',FileName,'file','y');
+ PrintStringInfo('',FileName,'file','y');
+ PrintStringInfo('#endif /* !__SCILAB2C_H__ */',FileName,'file','y');
+endfunction
diff --git a/scilab2c/macros/sci2c_gui.sci b/scilab2c/macros/sci2c_gui.sci
index aaae2ac2..e4dfb19e 100644
--- a/scilab2c/macros/sci2c_gui.sci
+++ b/scilab2c/macros/sci2c_gui.sci
@@ -130,7 +130,7 @@ buildtoolradiounix = uicontrol("parent", sci2cfig,...
"max", 1, ...
"callback", "cb_sci2c_gui",...
"tag", "buildtoolradiounix");
-if MSDOS
+if getos() == "Windows"
set(buildtoolradiowin, "value", 1);
set(buildtoolradiounix, "value", 0);
else
diff --git a/scilab2c/src/c/auxiliaryFunctions/interfaces/int_find.h b/scilab2c/src/c/auxiliaryFunctions/interfaces/int_find.h
index 737afc28..891aad7e 100644
--- a/scilab2c/src/c/auxiliaryFunctions/interfaces/int_find.h
+++ b/scilab2c/src/c/auxiliaryFunctions/interfaces/int_find.h
@@ -64,33 +64,33 @@
#define s2s0finds2(in1,size,in2,out) {\
int temp_out_indice[2] = {0} ;\
- sfinda(in1,size[0]*size[1],out,temp_out_indice,in2);\
+ sfinda(in1,size[0]*size[1],out,in2);\
}
#define d2d0findd2(in1,size,in2,out) {\
int temp_out_indice[2] = {0} ;\
- dfinda(in1,size[0]*size[1],out,temp_out_indice,in2);\
+ dfinda(in1,size[0]*size[1],out,in2);\
}
#define c2s0finds2(in1,size,in2,out) {\
int temp_out_indice[2] = {0} ;\
- cfinda(in1,size[0]*size[1],out,temp_out_indice,in2);\
+ cfinda(in1,size[0]*size[1],out,in2);\
}
#define z2d0findd2(in1,size,in2,out) {\
int temp_out_indice[2] = {0} ;\
- zfinda(in1,size[0]*size[1],out,temp_out_indice,in2);\
+ zfinda(in1,size[0]*size[1],out,in2);\
}
/* 2 inputs, 2 outputs */
-#define s0s0finds0s0(in1,in2,out2) s0finds0s0(in1,out2)
+#define s0s0finds0s0(in1,in2,out1,out2) s0finds0s0(in1,out1,out2)
-#define d0d0findd0d0(in1,in2,out2) d0findd0d0(in1,out2)
+#define d0d0findd0d0(in1,in2,out1,out2) d0findd0d0(in1,out1,out2)
-#define c0s0finds0s0(in1,in2,out2) c0finds0s0(in1,out2)
+#define c0s0finds0s0(in1,in2,out1,out2) c0finds0s0(in1,out1,out2)
-#define z0d0findd0d0(in1,in2,out2) z0findd0d0(in1,out2)
+#define z0d0findd0d0(in1,in2,out1,out2) z0findd0d0(in1,out1,out2)
/*FIXME : prototypes are wrong*/