diff --git a/Examples/Makefile.in b/Examples/Makefile.in index 96d08753e..e8c9969ca 100644 --- a/Examples/Makefile.in +++ b/Examples/Makefile.in @@ -1152,8 +1152,14 @@ SCILAB = @SCILAB@ scilab: $(SRCS) $(SWIG) -scilab $(SWIGOPT) $(INTERFACEPATH) - +# ----------------------------------------------------------------- +# Running a Scilab example +# ----------------------------------------------------------------- + +scilab_run: + env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH $(SCILAB) -nwni < runme.sci + # ----------------------------------------------------------------- # Cleaning the scilab examples # ----------------------------------------------------------------- diff --git a/Examples/octave/pointer/Makefile b/Examples/octave/pointer/Makefile index 627b0a977..27267e131 100644 --- a/Examples/octave/pointer/Makefile +++ b/Examples/octave/pointer/Makefile @@ -1,6 +1,6 @@ TOP = ../.. SWIG = $(TOP)/../preinst-swig -SRCS = example.c +SRCS = example.i TARGET = example INTERFACE = example.i diff --git a/Examples/octave/pointer/example.i b/Examples/octave/pointer/example.i index a8ac79499..ce1bc4ec0 100644 --- a/Examples/octave/pointer/example.i +++ b/Examples/octave/pointer/example.i @@ -1,30 +1,6 @@ /* File : example.i */ %module example - -%{ -extern void add(int *, int *, int *); -extern void sub(int *, int *, int *); -extern int divide(int, int, int *); -%} - -/* This example illustrates a couple of different techniques - for manipulating C pointers */ - -/* First we'll use the pointer library */ -extern void add(int *x, int *y, int *result); -%include cpointer.i -%pointer_functions(int, intp); - -/* Next we'll use some typemaps */ - -%include typemaps.i -extern void sub(int *INPUT, int *INPUT, int *OUTPUT); - -/* Next we'll use typemaps and the %apply directive */ - -%apply int *OUTPUT { int *r }; -extern int divide(int n, int d, int *r); - - - +FILE *fopen(char *filename, char *mode); +int fputs(char* , FILE *); +int fclose(FILE *); diff --git a/Examples/python/pointer/Makefile b/Examples/python/pointer/Makefile index 0f4a1e077..7414d3f09 100644 --- a/Examples/python/pointer/Makefile +++ b/Examples/python/pointer/Makefile @@ -1,6 +1,6 @@ TOP = ../.. SWIG = $(TOP)/../preinst-swig -SRCS = example.c +SRCS = example.i TARGET = example INTERFACE = example.i diff --git a/Examples/scilab/constants/runme.sci b/Examples/scilab/constants/runme.sci index 509138b86..d2241fb67 100644 --- a/Examples/scilab/constants/runme.sci +++ b/Examples/scilab/constants/runme.sci @@ -20,3 +20,5 @@ try catch printf("FOO is not defined (good)\n"); end + +exit diff --git a/Examples/scilab/contract/runme.sci b/Examples/scilab/contract/runme.sci index 0c318cfdf..d3ab63349 100644 --- a/Examples/scilab/contract/runme.sci +++ b/Examples/scilab/contract/runme.sci @@ -32,3 +32,7 @@ y=105; g=gcd(x,y); printf("The gcd of %d and %d is %d\n",x,y,g); +exit + + + diff --git a/Examples/scilab/enum/runme.sci b/Examples/scilab/enum/runme.sci index 74f67ba59..ba06ce81f 100644 --- a/Examples/scilab/enum/runme.sci +++ b/Examples/scilab/enum/runme.sci @@ -20,3 +20,5 @@ enum_test(color.BLUE); enum_test(color.GREEN); enum_test(1234); +exit + diff --git a/Examples/scilab/pointer/runme.sci b/Examples/scilab/pointer/runme.sci index e65c68731..461e2dd38 100644 --- a/Examples/scilab/pointer/runme.sci +++ b/Examples/scilab/pointer/runme.sci @@ -18,3 +18,5 @@ printf("Testing multiple return values\n"); [q,r] = divide(42,37); printf(" 42/37 = %d remainder %d\n",q,r); +exit + diff --git a/Examples/scilab/simple/runme.sci b/Examples/scilab/simple/runme.sci index 2ce80cb9b..74c38cfd9 100644 --- a/Examples/scilab/simple/runme.sci +++ b/Examples/scilab/simple/runme.sci @@ -22,3 +22,5 @@ Foo_set(3.1415926) // See if the change took effect Foo_get() +exit + diff --git a/Examples/scilab/variables/example.c b/Examples/scilab/variables/example.c index 0818bff81..c665c3e3b 100644 --- a/Examples/scilab/variables/example.c +++ b/Examples/scilab/variables/example.c @@ -23,9 +23,12 @@ char cvar = 0; float fvar = 0; double dvar = 0; char *strvar=0; +char name[5] = "Dave"; double *Foo1; double *Foo2; - +int *pivar; +short *psvar; +char **foo; /* A debugging function to print out their values */ @@ -43,6 +46,7 @@ void print_vars() { printf("dvar = %g\n", dvar); printf("cvar = %c\n", cvar); printf("strvar = %s\n",strvar); + printf("name = %c%c%c%c%c\n", name[0],name[1],name[2],name[3],name[4]); } diff --git a/Examples/scilab/variables/example.i b/Examples/scilab/variables/example.i index 9f9bb52cd..399c3fa2f 100644 --- a/Examples/scilab/variables/example.i +++ b/Examples/scilab/variables/example.i @@ -17,8 +17,12 @@ extern float fvar; extern double dvar; extern char *strvar; + extern char name[256]; extern double *Foo1; extern double *Foo2; + extern int *pivar; + extern short *psvar; + extern char **foo; %} diff --git a/Examples/scilab/variables/runme.sci b/Examples/scilab/variables/runme.sci index 52a0f3751..6e9ede1bb 100644 --- a/Examples/scilab/variables/runme.sci +++ b/Examples/scilab/variables/runme.sci @@ -18,8 +18,16 @@ cvar_set ("S"); fvar_set (3.14159); dvar_set (2.1828); strvar_set("Hello World"); +name_set ("Bill"); Foo1_set([1,2,3;4,5,6]); Foo2_set([1+2*%i,2+3*%i;3+4*%i,7+8*%i]); +pivar_set(int32([ 1 2 3 4 5; + 6 7 8 9 10; + 11 12 13 14 15])); +psvar_set(int16([ 1 2 3 4 5; + 6 7 8 9 10; + 11 12 13 14 15])); +foo_set(["sample", "strings", "manipulation"; "with","gateway","API"]); // Now print out the values of the variables @@ -37,10 +45,16 @@ printf("fvar = %f\n", fvar_get()); printf("dvar = %f\n", dvar_get()); printf("cvar = %s\n", cvar_get()); printf("strvar = %s\n", strvar_get()); +printf("name = %s\n", name_get()); Foo1_get() Foo2_get() +pivar_get() +psvar_get() +foo_get() printf("\nVariables (values printed from C)\n"); -print_vars(); +print_vars() + +exit diff --git a/Lib/scilab/scitypemaps.swg b/Lib/scilab/scitypemaps.swg index b11d8ab1b..ead57c67f 100644 --- a/Lib/scilab/scitypemaps.swg +++ b/Lib/scilab/scitypemaps.swg @@ -26,7 +26,7 @@ unsigned long (int *piAddrVar, int iRows, int iCols), float (int *piAddrVar, int iRows, int iCols), double (int *piAddrVar, int iRows, int iCols) { - double* _piData; + double *_piData; getVarAddressFromPosition($argnum, &piAddrVar); getVarDimension(piAddrVar, &iRows, &iCols); @@ -34,11 +34,11 @@ Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), fname, $argnum); } getMatrixOfDouble(piAddrVar, &iRows, &iCols, &_piData); - $1=($1_ltype)*_piData; + $1 = ($1_ltype)*_piData; } %typemap(in) char (int *piAddrVar, int iRows, int iCols) { - char* _pstStrings; + char *_pstStrings; int _piLength; getVarAddressFromPosition($argnum, &piAddrVar); getVarDimension(piAddrVar, &iRows, &iCols); @@ -47,13 +47,13 @@ Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), fname, $argnum); } getMatrixOfString(piAddrVar, &iRows, &iCols,&_piLength, &_pstStrings); - $1=($1_ltype)*_pstStrings; + $1 = ($1_ltype)*_pstStrings; } /* Pointers */ %typemap(in) signed char *(int *piAddrVar, int iRows, int iCols) { - char* _piData; + char *_piData; int index; getVarAddressFromPosition($argnum, &piAddrVar); getVarDimension(piAddrVar, &iRows, &iCols); @@ -62,12 +62,12 @@ Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), fname, $argnum); } getMatrixOfInteger8(piAddrVar, &iRows, &iCols, &_piData); - $1=($1_ltype)_piData; + $1 = ($1_ltype)_piData; } %typemap(in) short *(int *piAddrVar, int iRows, int iCols), unsigned char *(int *piAddrVar, int iRows, int iCols) { - short* _piData; + short *_piData; int index; getVarAddressFromPosition($argnum, &piAddrVar); getVarDimension(piAddrVar, &iRows, &iCols); @@ -76,7 +76,7 @@ Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), fname, $argnum); } getMatrixOfInteger16(piAddrVar, &iRows, &iCols, &_piData); - $1=($1_ltype)_piData; + $1 = ($1_ltype)_piData; } %typemap(in) unsigned short *(int *piAddrVar, int iRows, int iCols), @@ -84,7 +84,7 @@ unsigned int *(int *piAddrVar, int iRows, int iCols), long *(int *piAddrVar, int iRows, int iCols), unsigned long *(int *piAddrVar, int iRows, int iCols) { - int* _piData; + int *_piData; int index; getVarAddressFromPosition($argnum, &piAddrVar); getVarDimension(piAddrVar, &iRows, &iCols); @@ -93,12 +93,12 @@ Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), fname, $argnum); } getMatrixOfInteger32(piAddrVar, &iRows, &iCols, &_piData); - $1=($1_ltype)_piData; + $1 = ($1_ltype)_piData; } %typemap(in) double *(int *piAddrVar, int iRows, int iCols), float *(int *piAddrVar, int iRows, int iCols) { - double* _piData; + double *_piData; int index; getVarAddressFromPosition($argnum, &piAddrVar); getVarDimension(piAddrVar, &iRows, &iCols); @@ -107,11 +107,11 @@ Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), fname, $argnum); } getMatrixOfDouble(piAddrVar, &iRows, &iCols, &_piData); - $1=($1_ltype)_piData; + $1 = ($1_ltype)_piData; } %typemap(in) char *(int *piAddrVar, int iRows, int iCols){ - char* _pstStrings; + char *_pstStrings; int _piLength; getVarAddressFromPosition($argnum, &piAddrVar); getVarDimension(piAddrVar, &iRows, &iCols); @@ -120,11 +120,11 @@ Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), fname, $argnum); } getMatrixOfString(piAddrVar, &iRows, &iCols,&_piLength, &_pstStrings); - $1=strdup(_pstStrings); + $1 = strdup(_pstStrings); } -%typemap(in) signed char [ANY](int *piAddrVar, int iRows, int iCols) { - char* _piData; +%typemap(in) signed char [ANY] (int *piAddrVar, int iRows, int iCols) { + char *_piData; int index; getVarAddressFromPosition($argnum, &piAddrVar); getVarDimension(piAddrVar, &iRows, &iCols); @@ -133,18 +133,18 @@ Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), fname, $argnum); } getMatrixOfInteger8(piAddrVar, &iRows, &iCols, &_piData); - if($1!=NULL) { + if($1 != NULL) { free($1); } $1=($1_ltype)malloc(iRows*iCols*sizeof($*1_ltype)); - for(index=0;index