convert emptystr function to macro 53/1953/5
Antoine ELIAS [Thu, 16 Sep 2010 15:53:14 +0000 (17:53 +0200)]
Change-Id: I2f9591a54b691c9b099236380039a26ff16dd342

scilab/modules/string/Makefile.am
scilab/modules/string/Makefile.in
scilab/modules/string/includes/gw_string.h
scilab/modules/string/macros/emptystr.sci [new file with mode: 0644]
scilab/modules/string/sci_gateway/c/gw_string.c
scilab/modules/string/sci_gateway/c/sci_emptystr.c [deleted file]
scilab/modules/string/src/c/string.vcproj

index dac463e..8ef2fb3 100644 (file)
@@ -35,7 +35,6 @@ GATEWAY_C_SOURCES = sci_gateway/c/gw_string.c \
 sci_gateway/c/sci_ascii.c \
 sci_gateway/c/sci_code2str.c \
 sci_gateway/c/sci_convstr.c \
-sci_gateway/c/sci_emptystr.c \
 sci_gateway/c/sci_str2code.c \
 sci_gateway/c/sci_strcat.c \
 sci_gateway/c/sci_string.c \
index 47656e2..7175522 100644 (file)
@@ -134,11 +134,11 @@ am__objects_2 = libscistring_la-code2str.lo libscistring_la-convstr.lo \
 am__objects_3 =
 am__objects_4 = libscistring_la-gw_string.lo \
        libscistring_la-sci_ascii.lo libscistring_la-sci_code2str.lo \
-       libscistring_la-sci_convstr.lo libscistring_la-sci_emptystr.lo \
-       libscistring_la-sci_str2code.lo libscistring_la-sci_strcat.lo \
-       libscistring_la-sci_string.lo libscistring_la-sci_strsplit.lo \
-       libscistring_la-sci_tokens.lo libscistring_la-sci_strcmp.lo \
-       libscistring_la-sci_isletter.lo libscistring_la-sci_isdigit.lo \
+       libscistring_la-sci_convstr.lo libscistring_la-sci_str2code.lo \
+       libscistring_la-sci_strcat.lo libscistring_la-sci_string.lo \
+       libscistring_la-sci_strsplit.lo libscistring_la-sci_tokens.lo \
+       libscistring_la-sci_strcmp.lo libscistring_la-sci_isletter.lo \
+       libscistring_la-sci_isdigit.lo \
        libscistring_la-sci_isalphanum.lo \
        libscistring_la-sci_isascii.lo libscistring_la-sci_strchr.lo \
        libscistring_la-sci_strcspn.lo libscistring_la-sci_strncpy.lo \
@@ -474,7 +474,6 @@ GATEWAY_C_SOURCES = sci_gateway/c/gw_string.c \
 sci_gateway/c/sci_ascii.c \
 sci_gateway/c/sci_code2str.c \
 sci_gateway/c/sci_convstr.c \
-sci_gateway/c/sci_emptystr.c \
 sci_gateway/c/sci_str2code.c \
 sci_gateway/c/sci_strcat.c \
 sci_gateway/c/sci_string.c \
@@ -715,7 +714,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_la-sci_ascii.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_la-sci_code2str.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_la-sci_convstr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_la-sci_emptystr.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_la-sci_grep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_la-sci_isalphanum.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_la-sci_isascii.Plo@am__quote@
@@ -964,13 +962,6 @@ libscistring_la-sci_convstr.lo: sci_gateway/c/sci_convstr.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_la_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_convstr.lo `test -f 'sci_gateway/c/sci_convstr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_convstr.c
 
-libscistring_la-sci_emptystr.lo: sci_gateway/c/sci_emptystr.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_la_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_emptystr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_emptystr.Tpo -c -o libscistring_la-sci_emptystr.lo `test -f 'sci_gateway/c/sci_emptystr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_emptystr.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscistring_la-sci_emptystr.Tpo $(DEPDIR)/libscistring_la-sci_emptystr.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_emptystr.c' object='libscistring_la-sci_emptystr.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_la_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_emptystr.lo `test -f 'sci_gateway/c/sci_emptystr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_emptystr.c
-
 libscistring_la-sci_str2code.lo: sci_gateway/c/sci_str2code.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_la_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_str2code.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_str2code.Tpo -c -o libscistring_la-sci_str2code.lo `test -f 'sci_gateway/c/sci_str2code.c' || echo '$(srcdir)/'`sci_gateway/c/sci_str2code.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscistring_la-sci_str2code.Tpo $(DEPDIR)/libscistring_la-sci_str2code.Plo
index 9767945..2fc8275 100644 (file)
@@ -22,7 +22,6 @@ STRING_IMPEXP int gw_string(void);
 //STRING_IMPEXP int sci_length(char *fname,unsigned long fname_len);
 STRING_IMPEXP int sci_string(char *fname,unsigned long fname_len);
 STRING_IMPEXP int sci_convstr(char *fname,unsigned long fname_len);
-STRING_IMPEXP int sci_emptystr(char *fname,unsigned long fname_len);
 STRING_IMPEXP int sci_str2code(char *fname,unsigned long fname_len);
 STRING_IMPEXP int sci_code2str(char *fname,unsigned long fname_len);
 STRING_IMPEXP int sci_strcat(char *fname,unsigned long fname_len);
diff --git a/scilab/modules/string/macros/emptystr.sci b/scilab/modules/string/macros/emptystr.sci
new file mode 100644 (file)
index 0000000..d528cc5
--- /dev/null
@@ -0,0 +1,45 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2010 - Antoine ELIAS
+//
+// 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 result = emptystr(varargin)
+       [lhs, rhs] = argn(0);
+
+       if rhs == 1 then
+               //emptystr(x)
+               [x,y] = size(varargin(1));
+               if x == 0 & y == 0 then
+                       //emptystr([])
+                       result = [];    
+               else
+                       result(x,y) = "";
+               end
+       elseif rhs == 2 then
+               //emptystr(x,y)
+               x = varargin(1);
+               y = varargin(2);
+               
+               if type(x) <> 1 then
+                 error(msprintf(_("%s: Wrong type for input argument #%d: Matrix of integers expected.\n"), "emptystr", 1));
+               end
+               if type(y) <> 1 then
+                 error(msprintf(_("%s: Wrong type for input argument #%d: Matrix of integers expected.\n"), "emptystr", 2));
+               end
+               
+               if x == 0 | y == 0 then
+                       result = [];
+               else
+                       result(x,y) = "";
+               end
+       else
+       //emptystr() or emptystr(x,y, ... )
+               result = "";
+       end
+endfunction
+
index 656cdac..e599a0b 100644 (file)
@@ -23,7 +23,7 @@ static gw_generic_table Tab[] =
        {NULL, ""}, //part
        {sci_string,"string"},
        {sci_convstr,"convstr"},
-       {sci_emptystr,"emptystr"},
+       {NULL, ""}, //emptystr
        {sci_str2code,"str2code"},
        {sci_code2str,"code2str"},
        {sci_strcat,"strcat"},
diff --git a/scilab/modules/string/sci_gateway/c/sci_emptystr.c b/scilab/modules/string/sci_gateway/c/sci_emptystr.c
deleted file mode 100644 (file)
index 671087e..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) INRIA - Cong WU
- * Copyright (C) 2010 - DIGITEO - Allan CORNET
- * 
- * 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
- *
- */
-
-/* desc : zero length string                                              */
-/*        With no input argument returns a zero length character string   */
-/*        With a matrix for input argument returns a zero length character*/
-/*              strings matrix of the same size                           */
-/*        With two int arguments returns a mxn zero length character  */
-/*                strings matrix                                          */
-/*------------------------------------------------------------------------*/
-#include <string.h>
-#include <stdio.h>
-#include "gw_string.h"
-#include "stack-c.h"
-#include "MALLOC.h"
-#include "Scierror.h"
-#include "CreateEmptystr.h"
-#include "localization.h"
-#include "freeArrayOfString.h"
-/*--------------------------------------------------------------------------*/
-static int sci_emptystr_no_rhs(void);
-static int sci_emptystr_one_rhs(char *fname);
-static int sci_emptystr_two_rhs(char *fname);
-/*--------------------------------------------------------------------------*/
-int sci_emptystr(char *fname,unsigned long fname_len)
-{
-    Rhs = Max(0, Rhs);
-
-    CheckRhs(0,2);
-    CheckLhs(1,1);
-
-    if (Rhs < 1)
-    {
-        sci_emptystr_no_rhs();
-    }
-    else if (Rhs == 1)
-    {
-        sci_emptystr_one_rhs(fname);
-    }
-    else if (Rhs == 2)
-    {
-        sci_emptystr_two_rhs(fname);
-    }
-    return 0;
-}
-/*--------------------------------------------------------------------------*/       
-static int sci_emptystr_no_rhs(void)
-{
-    /* With no input argument returns a zero length character string */
-    int m1 = 0, n1 = 0, l1 = 0;
-
-    CreateVar(Rhs+1,STRING_DATATYPE,  &m1, &n1, &l1);
-    LhsVar(1)=Rhs+1;
-    C2F(putlhsvar)();
-    return 0;
-}
-/*--------------------------------------------------------------------------*/       
-static int sci_emptystr_one_rhs(char *fname)
-{
-    int m1 = 0,n1 = 0; /* m1 is the number of row ; n1 is the number of col*/
-
-    /*With a matrix for input argument returns a zero length character strings matrix of the same size */
-    int Type = VarType(1);
-
-    if (Type == sci_matrix) 
-    {
-        char **Input_StringMatrix_One = NULL;
-
-        GetRhsVar(1, MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &Input_StringMatrix_One);
-        if ((m1 == 0) && (n1 == 0)) /* emptystr([]) */
-        {
-            int l = 0;
-            CreateVar(Rhs + 1, MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l);
-            LhsVar(1) = Rhs + 1 ;
-            C2F(putlhsvar)();
-            return 0;
-        }
-    }
-    else
-    {
-        if ((Type == sci_mlist) || (Type == sci_tlist))
-        {
-            /* compatibility with 4.1.2 */
-            int lw = 1 + Top - Rhs;
-            C2F(overload)(&lw, fname, (int)strlen(fname));
-            return 0;
-        }
-        else
-        {
-            int RHSPOS = 1;
-            int l1 = 0;
-            int il = 0;
-            int lw = RHSPOS + Top - Rhs;
-            l1 = *Lstk(lw);
-            il = iadr(l1);
-
-            if (*istk(il ) < 0) il = iadr(*istk(il + 1));
-
-            /* get dimensions */
-            m1 = getNumberOfLines(il); /* row */
-            n1 = getNumberOfColumns(il); /* col */
-        }
-    }
-
-    /* m1 is the number of row ; n1 is the number of col*/
-    CreateVarFromPtr(Rhs + 1, MATRIX_OF_STRING_DATATYPE, &m1, &n1, NULL);   
-    LhsVar(1) = Rhs + 1;
-    C2F(putlhsvar)();
-
-    return 0;
-}
-/*--------------------------------------------------------------------------*/
-static int sci_emptystr_two_rhs(char *fname)
-{
-    /*value_param_pos_1 is the number of row ; value_param_pos_2 is the number of col*/
-
-    int Type_One = GetType(1);
-    int Type_Two = GetType(2);
-
-    if ((Type_One == sci_matrix) && (Type_Two == sci_matrix))
-    {
-        double value_param_pos_1 = 0;
-        double value_param_pos_2 = 0;
-        int matrixdimension = 0;
-
-        int m1 = 0, n1 = 0, l1 = 0;
-        int m2 = 0, n2 = 0, l2 = 0;
-        GetRhsVar(1, MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
-        GetRhsVar(2, MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
-
-        value_param_pos_1 = *stk(l1);
-        value_param_pos_2 = *stk(l2);
-
-        matrixdimension = (int)(value_param_pos_1 * value_param_pos_2);
-
-        if (matrixdimension > 0)
-        {
-            int m = (int)value_param_pos_1;
-            int n = (int)value_param_pos_2;
-            CreateVarFromPtr(Rhs + 1,MATRIX_OF_STRING_DATATYPE, &m, &n, NULL);
-        }
-        else
-        {
-            /* returns [] */
-            int l = 0;
-            int m = 0;
-            int n = 0;
-            CreateVar(Rhs + 1,MATRIX_OF_DOUBLE_DATATYPE,&m, &n,&l);
-        }
-        LhsVar(1) = Rhs + 1;
-
-        C2F(putlhsvar)();
-    }
-    else
-    {
-        if (Type_One != sci_matrix)
-        {
-            Scierror(999,_("%s: Wrong type for input argument #%d: Matrix of integers expected.\n"),fname,1);
-        }
-        else /* Type_Two */
-        {
-            Scierror(999,_("%s: Wrong type for input argument #%d: Matrix of integers expected.\n"),fname,2);
-        }
-    }
-    return 0;
-}
-/*--------------------------------------------------------------------------*/
index a5d8a6a..05b19c7 100644 (file)
                                >
                        </File>
                        <File
-                               RelativePath="..\..\sci_gateway\c\sci_emptystr.c"
-                               >
-                       </File>
-                       <File
                                RelativePath="..\..\sci_gateway\c\sci_isalphanum.c"
                                >
                        </File>
                                >
                        </File>
                        <File
-                               RelativePath=".\CreateEmptystr.h"
-                               >
-                       </File>
-                       <File
                                RelativePath="..\..\includes\cvstr.h"
                                >
                        </File>