add context argument to api_scilab macros nbxxxArgument, AssignOutputVariable and... 94/8494/2
Antoine ELIAS [Thu, 2 Aug 2012 14:14:16 +0000 (16:14 +0200)]
Change-Id: I7c98db295822ea049c2ac3a89035e60a4f8381c4

scilab/modules/api_scilab/includes/api_common.h
scilab/modules/api_scilab/src/cpp/api_common.cpp
scilab/modules/fftw/sci_gateway/c/sci_fftw.c
scilab/modules/gui/sci_gateway/c/sci_mpopup.c
scilab/modules/gui/sci_gateway/cpp/sci_toprint.cpp

index e9a5374..34e37b0 100644 (file)
@@ -55,7 +55,7 @@ extern "C" {
 
 /*Rhs*/
     int* getNbInputArgument(void* _pvCtx);
-#define nbInputArgument (*getNbInputArgument(pvApiCtx))
+#define nbInputArgument(PVCTX) (*getNbInputArgument(PVCTX))
 
 #ifdef Rhs
 #undef Rhs
@@ -64,7 +64,7 @@ extern "C" {
 
 /*Top*/
     int* getNbArgumentOnStack(void* _pvCtx);
-#define nbArgumentOnStack (*getNbArgumentOnStack(pvApiCtx))
+#define nbArgumentOnStack(PVCTX) (*getNbArgumentOnStack(PVCTX))
 
 #ifdef Top
 #undef Top
@@ -73,21 +73,23 @@ extern "C" {
 
 /*Lhs*/
     int* getNbOutputArgument(void* _pvCtx);
-#define nbOutputArgument (*getNbOutputArgument(pvApiCtx))
+#define nbOutputArgument(PVCTX) (*getNbOutputArgument(PVCTX))
 #ifdef Lhs
 #undef Lhs
 #endif
 #define Lhs (*getNbOutputArgument(pvApiCtx))
 
+/*PutLhs*/
     int* assignOutputVariable(void* _pvCtx, int _iVal);
-#define AssignOutputVariable(x) (*assignOutputVariable(pvApiCtx, x))
+#define AssignOutputVariable(PVCTX, x) (*assignOutputVariable(PVCTX, x))
 #ifdef LhsVar
 #undef LhsVar
 #endif
 #define LhsVar(x) (*assignOutputVariable(pvApiCtx, x))
 
+/*PutLhsVar*/
     int returnArguments(void* _pvCtx);
-#define ReturnArguments() if (! returnArguments(pvApiCtx)) { return 0; }
+#define ReturnArguments(PVCTX) if (! returnArguments(PVCTX)) { return 0; }
 #ifdef PutLhsVar
 #undef PutLhsVar
 #endif
index 2d3118d..f4a46e8 100644 (file)
@@ -88,7 +88,7 @@ int checkInputArgument(void* _pvCtx, int _iMin, int _iMax)
     int cx0 = 0;
     C2F(cvname) (&C2F(recu).ids[(C2F(recu).pt + 1) * nsiz - nsiz],  ((StrCtx *) _pvCtx)->pstName, &cx0, (unsigned long int)strlen(((StrCtx *)_pvCtx)->pstName));
 
-    if (_iMin <= nbInputArgument && _iMax >= nbInputArgument)
+    if (_iMin <= nbInputArgument(_pvCtx) && _iMax >= nbInputArgument(_pvCtx))
     {
         return 1;
     }
@@ -112,7 +112,7 @@ int checkInputArgumentAtLeast(void* _pvCtx, int _iMin)
     sciErr.iErr = 0;
     sciErr.iMsgCount = 0;
 
-    if (_iMin <= nbInputArgument)
+    if (_iMin <= nbInputArgument(_pvCtx))
     {
         return 1;
     }
@@ -128,7 +128,7 @@ int checkInputArgumentAtMost(void* _pvCtx, int _iMax)
     sciErr.iErr = 0;
     sciErr.iMsgCount = 0;
 
-    if (_iMax >= nbInputArgument)
+    if (_iMax >= nbInputArgument(_pvCtx))
     {
         return 1;
     }
@@ -145,7 +145,7 @@ int checkOutputArgument(void* _pvCtx, int _iMin, int _iMax)
     sciErr.iMsgCount = 0;
 
 
-    if (_iMin <= nbOutputArgument && _iMax >= nbOutputArgument)
+    if (_iMin <= nbOutputArgument(_pvCtx) && _iMax >= nbOutputArgument(_pvCtx))
     {
         return 1;
     }
@@ -169,7 +169,7 @@ int checkOutputArgumentAtLeast(void* _pvCtx, int _iMin)
     sciErr.iErr = 0;
     sciErr.iMsgCount = 0;
 
-    if (_iMin <= nbOutputArgument)
+    if (_iMin <= nbOutputArgument(_pvCtx))
     {
         return 1;
     }
@@ -185,7 +185,7 @@ int checkOutputArgumentAtMost(void* _pvCtx, int _iMax)
     sciErr.iErr = 0;
     sciErr.iMsgCount = 0;
 
-    if (_iMax >= nbOutputArgument)
+    if (_iMax >= nbOutputArgument(_pvCtx))
     {
         return 1;
     }
index 1363383..d64e7f5 100644 (file)
@@ -572,8 +572,8 @@ int sci_fft_2args(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar,
     /* void or scalar input gives void output or scalar*/
     if (ndims == 0 )
     {
-        *assignOutputVariable(_pvCtx, 1) =  1;
-        returnArguments(_pvCtx);
+        AssignOutputVariable(_pvCtx, 1) =  1;
+        ReturnArguments(_pvCtx);
         return(0);
     }
 
@@ -608,7 +608,7 @@ int sci_fft_2args(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar,
     * Return results in lhs argument *
     ***********************************/
 
-    returnArguments(_pvCtx);
+    ReturnArguments(_pvCtx);
 ERR:
     FREE(gdim.dims);
     FREE(gdim.howmany_dims);
@@ -650,8 +650,8 @@ int  sci_fft_3args(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar
     /* void or scalar input gives void output or scalar*/
     if (ndims == 0 )
     {
-        *assignOutputVariable(_pvCtx, 1) =  1;
-        returnArguments(_pvCtx);
+        AssignOutputVariable(_pvCtx, 1) =  1;
+        ReturnArguments(_pvCtx);
         return(0);
     }
 
@@ -788,7 +788,7 @@ int  sci_fft_3args(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar
     * Return results in lhs argument *
     ***********************************/
 
-    returnArguments(_pvCtx);
+    ReturnArguments(_pvCtx);
 ERR:
     FREE(gdim.dims);
     FREE(gdim.howmany_dims);
@@ -827,8 +827,8 @@ int sci_fft_4args(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar,
     /* void or scalar input gives void output or scalar*/
     if (lA <= 1 )
     {
-        *assignOutputVariable(_pvCtx, 1) =  1;
-        returnArguments(_pvCtx);
+        AssignOutputVariable(_pvCtx, 1) =  1;
+        ReturnArguments(_pvCtx);
         return(0);
     }
 
@@ -1047,7 +1047,7 @@ int sci_fft_4args(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar,
     * Return results in lhs argument *
     ***********************************/
 
-    returnArguments(_pvCtx);
+    ReturnArguments(_pvCtx);
 ERR:
     FREE(Dim1);
     FREE(Incr);
@@ -1168,7 +1168,7 @@ int sci_fft_gen(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar,
         issymA = 0;
     }
 
-    *assignOutputVariable(_pvCtx, 1) =  1;/* assume inplace transform*/
+    AssignOutputVariable(_pvCtx, 1) =  1;/* assume inplace transform*/
 
     if (WITHMKL)
     {
@@ -1199,7 +1199,7 @@ int sci_fft_gen(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar,
                 C2F(dcopy)(&lA, Ar, &one, ri, &one);
                 Ar = ri;
                 C2F(dset)(&lA, &dzero, Ai, &one);
-                *assignOutputVariable(_pvCtx, 1) =  *getNbInputArgument(_pvCtx) + 1;
+                AssignOutputVariable(_pvCtx, 1) =  nbInputArgument(_pvCtx) + 1;
                 isrealA = 0;
             }
         }
@@ -1216,7 +1216,7 @@ int sci_fft_gen(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar,
         }
         C2F(dcopy)(&lA, Ar, &one, ri, &one);
         Ar = ri;
-        *assignOutputVariable(pvApiCtx, 1) = *getNbInputArgument(_pvCtx) + 1;
+        AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(_pvCtx) + 1;
     }
 
     /* Set pointers on real and imaginary part of the input */
@@ -1252,7 +1252,7 @@ int sci_fft_gen(void* _pvCtx, char *fname, int ndimsA, int *dimsA, double *Ar,
                 Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
                 goto ERR;
             }
-            *assignOutputVariable(pvApiCtx, 1) = *getNbInputArgument(_pvCtx) + 1;
+            AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(_pvCtx) + 1;
             type = R2C_PLAN; /* fftw_plan_guru_split_dft_r2c plans for an FFTW_FORWARD transform*/
             if (isn == FFTW_BACKWARD)
             {
index b3bb550..64a965b 100644 (file)
@@ -94,7 +94,7 @@ int sci_mpopup(char *fname, unsigned long fname_len)
 
     pstRes = uiWaitContextMenu(pstUicontextmenuUID);
 
-    iRet = createSingleString(pvApiCtx, nbInputArgument + 1, pstRes);
+    iRet = createSingleString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, pstRes);
     if (iRet)
     {
         freeAllocatedMatrixOfString(iRows, iCols, pstAllMenuLabels);
@@ -103,9 +103,9 @@ int sci_mpopup(char *fname, unsigned long fname_len)
 
     freeAllocatedMatrixOfString(iRows, iCols, pstAllMenuLabels);
 
-    AssignOutputVariable(1) = nbInputArgument + 1;
+    AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
 
-    ReturnArguments();
+    ReturnArguments(pvApiCtx);
 
     return TRUE;
 }
index 3d605d5..a3ad3f2 100644 (file)
@@ -39,8 +39,8 @@ static BOOL loadedDep = FALSE;
 using namespace org_scilab_modules_gui_bridge;
 
 /*--------------------------------------------------------------------------*/
-static int sci_toprint_one_rhs(const char *fname);
-static int sci_toprint_two_rhs(const char *fname);
+static int sci_toprint_one_rhs(void* _pvCtx, const char *fname);
+static int sci_toprint_two_rhs(void* _pvCtx, const char *fname);
 
 /*--------------------------------------------------------------------------*/
 int sci_toprint(char *fname, unsigned long l)
@@ -56,22 +56,22 @@ int sci_toprint(char *fname, unsigned long l)
 
     if (Rhs == 1)
     {
-        return sci_toprint_one_rhs(fname);
+        return sci_toprint_one_rhs(pvApiCtx, fname);
     }
     else
     {
-        return sci_toprint_two_rhs(fname);
+        return sci_toprint_two_rhs(pvApiCtx, fname);
     }
     return 0;
 }
 
 /*--------------------------------------------------------------------------*/
-static int sci_toprint_one_rhs(const char *fname)
+static int sci_toprint_one_rhs(void* _pvCtx, const char *fname)
 {
     SciErr sciErr;
     int *piAddressVarOne = NULL;
 
-    sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddressVarOne);
+    sciErr = getVarAddressFromPosition(_pvCtx, 1, &piAddressVarOne);
     if (sciErr.iErr)
     {
         printError(&sciErr, 0);
@@ -79,12 +79,12 @@ static int sci_toprint_one_rhs(const char *fname)
         return 0;
     }
 
-    if (isStringType(pvApiCtx, piAddressVarOne))
+    if (isStringType(_pvCtx, piAddressVarOne))
     {
         char *fileName = NULL;
         BOOL iRet = FALSE;
 
-        if (getAllocatedSingleString(pvApiCtx, piAddressVarOne, &fileName) == 0)
+        if (getAllocatedSingleString(_pvCtx, piAddressVarOne, &fileName) == 0)
         {
             char *fullName = getFullFilename(fileName);
 
@@ -118,9 +118,9 @@ static int sci_toprint_one_rhs(const char *fname)
                 fullName = NULL;
             }
 
-            createScalarBoolean(pvApiCtx, Rhs + 1, iRet);
-            LhsVar(1) = Rhs + 1;
-            PutLhsVar();
+            createScalarBoolean(_pvCtx, nbInputArgument(_pvCtx) + 1, iRet);
+            AssignOutputVariable(_pvCtx, 1) = nbInputArgument(_pvCtx) + 1;
+            ReturnArguments(_pvCtx);
         }
         else
         {
@@ -133,7 +133,7 @@ static int sci_toprint_one_rhs(const char *fname)
         {
             double dValue = 0.;
 
-            if (!getScalarDouble(pvApiCtx, piAddressVarOne, &dValue))
+            if (!getScalarDouble(_pvCtx, piAddressVarOne, &dValue))
             {
                 int num_win = (int)dValue;
                 BOOL iRet = FALSE;
@@ -160,9 +160,9 @@ static int sci_toprint_one_rhs(const char *fname)
                     return 0;
                 }
 
-                createScalarBoolean(pvApiCtx, Rhs + 1, iRet);
-                LhsVar(1) = Rhs + 1;
-                PutLhsVar();
+                createScalarBoolean(_pvCtx, nbInputArgument(_pvCtx) + 1, iRet);
+                AssignOutputVariable(_pvCtx, 1) = nbInputArgument(_pvCtx) + 1;
+                ReturnArguments(_pvCtx);
             }
             else
             {
@@ -182,13 +182,13 @@ static int sci_toprint_one_rhs(const char *fname)
 }
 
 /*--------------------------------------------------------------------------*/
-static int sci_toprint_two_rhs(const char *fname)
+static int sci_toprint_two_rhs(void* _pvCtx, const char *fname)
 {
     SciErr sciErr;
     int *piAddressVarOne = NULL;
     int *piAddressVarTwo = NULL;
 
-    sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddressVarOne);
+    sciErr = getVarAddressFromPosition(_pvCtx, 1, &piAddressVarOne);
     if (sciErr.iErr)
     {
         printError(&sciErr, 0);
@@ -197,7 +197,7 @@ static int sci_toprint_two_rhs(const char *fname)
         return 0;
     }
 
-    sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddressVarTwo);
+    sciErr = getVarAddressFromPosition(_pvCtx, 2, &piAddressVarTwo);
     if (sciErr.iErr)
     {
         printError(&sciErr, 0);
@@ -205,11 +205,11 @@ static int sci_toprint_two_rhs(const char *fname)
         return 0;
     }
 
-    if (isStringType(pvApiCtx, piAddressVarOne))
+    if (isStringType(_pvCtx, piAddressVarOne))
     {
-        if (isScalar(pvApiCtx, piAddressVarTwo))
+        if (isScalar(_pvCtx, piAddressVarTwo))
         {
-            if (isStringType(pvApiCtx, piAddressVarTwo))
+            if (isStringType(_pvCtx, piAddressVarTwo))
             {
                 char *pageHeader = NULL;
                 char **pStVarOne = NULL;
@@ -220,7 +220,7 @@ static int sci_toprint_two_rhs(const char *fname)
                 int i = 0;
                 char *lines = NULL;
 
-                sciErr = getMatrixOfString(pvApiCtx, piAddressVarOne, &mOne, &nOne, NULL, NULL);
+                sciErr = getMatrixOfString(_pvCtx, piAddressVarOne, &mOne, &nOne, NULL, NULL);
                 if (sciErr.iErr)
                 {
                     printError(&sciErr, 0);
@@ -243,7 +243,7 @@ static int sci_toprint_two_rhs(const char *fname)
                     return 0;
                 }
 
-                sciErr = getMatrixOfString(pvApiCtx, piAddressVarOne, &mOne, &nOne, lenStVarOne, NULL);
+                sciErr = getMatrixOfString(_pvCtx, piAddressVarOne, &mOne, &nOne, lenStVarOne, NULL);
                 if (sciErr.iErr)
                 {
                     printError(&sciErr, 0);
@@ -281,7 +281,7 @@ static int sci_toprint_two_rhs(const char *fname)
                     }
                 }
 
-                sciErr = getMatrixOfString(pvApiCtx, piAddressVarOne, &mOne, &nOne, lenStVarOne, pStVarOne);
+                sciErr = getMatrixOfString(_pvCtx, piAddressVarOne, &mOne, &nOne, lenStVarOne, pStVarOne);
                 if (lenStVarOne)
                 {
                     FREE(lenStVarOne);
@@ -316,7 +316,7 @@ static int sci_toprint_two_rhs(const char *fname)
                 }
                 freeArrayOfString(pStVarOne, mnOne);
 
-                if (getAllocatedSingleString(pvApiCtx, piAddressVarTwo, &pageHeader) == 0)
+                if (getAllocatedSingleString(_pvCtx, piAddressVarTwo, &pageHeader) == 0)
                 {
                     BOOL iRet = FALSE;
 
@@ -345,9 +345,9 @@ static int sci_toprint_two_rhs(const char *fname)
                         lines = NULL;
                     }
 
-                    createScalarBoolean(pvApiCtx, Rhs + 1, iRet);
-                    LhsVar(1) = Rhs + 1;
-                    PutLhsVar();
+                    createScalarBoolean(_pvCtx, nbInputArgument(_pvCtx) + 1, iRet);
+                    AssignOutputVariable(_pvCtx, 1) = nbInputArgument(_pvCtx) + 1;
+                    ReturnArguments(_pvCtx);
                 }
                 else
                 {
@@ -372,14 +372,14 @@ static int sci_toprint_two_rhs(const char *fname)
             return 0;
         }
     }
-    else if (isDoubleType(pvApiCtx, piAddressVarOne))
+    else if (isDoubleType(_pvCtx, piAddressVarOne))
     {
-        if (isScalar(pvApiCtx, piAddressVarOne))
+        if (isScalar(_pvCtx, piAddressVarOne))
         {
             int num_win = 0;
             double dValue = 0.;
 
-            if (!getScalarDouble(pvApiCtx, piAddressVarOne, &dValue))
+            if (!getScalarDouble(_pvCtx, piAddressVarOne, &dValue))
             {
                 num_win = (int)dValue;
 
@@ -401,15 +401,15 @@ static int sci_toprint_two_rhs(const char *fname)
                 return 0;
             }
 
-            if (isStringType(pvApiCtx, piAddressVarTwo))
+            if (isStringType(_pvCtx, piAddressVarTwo))
             {
                 BOOL iRet = FALSE;
 
-                if (isScalar(pvApiCtx, piAddressVarTwo))
+                if (isScalar(_pvCtx, piAddressVarTwo))
                 {
                     char *outputType = NULL;
 
-                    if (getAllocatedSingleString(pvApiCtx, piAddressVarTwo, &outputType) == 0)
+                    if (getAllocatedSingleString(_pvCtx, piAddressVarTwo, &outputType) == 0)
                     {
                         if ((strcmp(outputType, "pos") == 0) || (strcmp(outputType, "gdi") == 0))
                         {
@@ -432,9 +432,9 @@ static int sci_toprint_two_rhs(const char *fname)
                                 return 0;
                             }
 
-                            createScalarBoolean(pvApiCtx, Rhs + 1, iRet);
-                            LhsVar(1) = Rhs + 1;
-                            PutLhsVar();
+                            createScalarBoolean(_pvCtx, nbInputArgument(_pvCtx) + 1, iRet);
+                            AssignOutputVariable(_pvCtx, 1) = nbInputArgument(_pvCtx) + 1;
+                            ReturnArguments(_pvCtx);
                         }
                         else
                         {