Exemple #1
0
/*------------------------------------------------------------------------*/
static char *ASCIItime(const struct tm *timeptr)
{
    char **wday_name = getDays();
    char **mon_name = getMonths();
    char *result = NULL;

    if ((wday_name) && (mon_name))
    {
#define FORMAT_TIME "%s %s%3d %.2d:%.2d:%.2d %d"
        int len_result = (int)strlen(wday_name[timeptr->tm_wday]) + (int)strlen(mon_name[timeptr->tm_mon]) + (int)strlen(FORMAT_TIME);

        result = (char *)MALLOC(sizeof(char) * (len_result + 1));
        if (result)
        {
            sprintf(result, FORMAT_TIME,
                    wday_name[timeptr->tm_wday],
                    mon_name[timeptr->tm_mon], timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec, 1900 + timeptr->tm_year);
        }
    }
    else
    {
        strcpy(result, "");
    }

    /* free pointers */
    freeArrayOfString(wday_name, MAX_wday);
    freeArrayOfString(mon_name, MAX_mon);

    return result;
}
Exemple #2
0
/*--------------------------------------------------------------------------*/
int checkPList(void* _pvCtx, int * _piAddress)
{
    int nb_param = 0, i = 0, var_type = 0;
    int m_label = 0, n_label = 0;
    int * len_label = NULL;
    char ** label_list = NULL;
    int result = 0;
    SciErr _SciErr;

    _SciErr.iErr = 0;
    _SciErr.iMsgCount = 0;

    _SciErr = getVarType(_pvCtx, _piAddress, &var_type);
    if (var_type != sci_mlist)
    {
        return 0;
    }

    _SciErr = getListItemNumber(_pvCtx, _piAddress, &nb_param);

    if (nb_param != 0)
    {
        _SciErr = getMatrixOfStringInList(_pvCtx, _piAddress, 1, &m_label, &n_label, NULL, NULL);

        len_label = (int *)MALLOC(m_label * n_label * sizeof(int));
        _SciErr = getMatrixOfStringInList(_pvCtx, _piAddress, 1, &m_label, &n_label, len_label, NULL);

        label_list = (char **)MALLOC(m_label * n_label * sizeof(char *));
        for (i = 0; i < n_label * m_label; i++)
        {
            label_list[i] = (char *)MALLOC((len_label[i] + 1) * sizeof(char));
        }
        _SciErr = getMatrixOfStringInList(_pvCtx, _piAddress, 1, &m_label, &n_label, len_label, label_list);
        if (strcmp(label_list[0], "plist") != 0)
        {
            if (len_label)
            {
                FREE(len_label);
                len_label = NULL;
            }
            freeArrayOfString(label_list, m_label * n_label);

            return 0;
        }

        if (len_label)
        {
            FREE(len_label);
            len_label = NULL;
        }
        freeArrayOfString(label_list, m_label * n_label);
    }

    result = 1;

    return result;
}
Exemple #3
0
// =============================================================================
static void freeVar(char** separator, char** decimal, char** filename, char** precisionFormat, char*** pHeadersLines, int sizeHeader)
{
    if (separator && *separator)
    {
        FREE(*separator);
        *separator = NULL;
    }

    if (decimal && *decimal)
    {
        FREE(*decimal);
        *decimal = NULL;
    }

    if (filename && *filename)
    {
        FREE(*filename);
        *filename = NULL;
    }

    if (precisionFormat && *precisionFormat)
    {
        FREE(*precisionFormat);
        *precisionFormat = NULL;
    }

    if (pHeadersLines && *pHeadersLines)
    {
        freeArrayOfString(*pHeadersLines, sizeHeader);
        *pHeadersLines = NULL;
    }

}
/*--------------------------------------------------------------------------*/
SciErr createMatrixOfWideString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const wchar_t* const* _pstwStrings)
{
    char **pStrings = NULL;

    //return empty matrix
    if (_iRows == 0 && _iCols == 0)
    {
        double dblReal = 0;
        SciErr sciErr = createMatrixOfDouble(_pvCtx, _iVar, 0, 0, &dblReal);
        if (sciErr.iErr)
        {
            addErrorMessage(&sciErr, API_ERROR_CREATE_EMPTY_MATRIX, _("%s: Unable to create variable in Scilab memory"), "createEmptyMatrix");
        }
        return sciErr;
    }

    pStrings = (char**)MALLOC( sizeof(char*) * (_iRows * _iCols) );

    for (int i = 0; i < (_iRows * _iCols) ; i++)
    {
        pStrings[i] = wide_string_to_UTF8(_pstwStrings[i]);
    }

    SciErr sciErr = createMatrixOfString(_pvCtx, _iVar, _iRows, _iCols, pStrings);
    if (sciErr.iErr)
    {
        addErrorMessage(&sciErr, API_ERROR_CREATE_WIDE_STRING, _("%s: Unable to create variable in Scilab memory"), "createMatrixOfWideString");
    }

    freeArrayOfString(pStrings, _iRows * _iCols);

    return sciErr;
}
/*--------------------------------------------------------------------------*/
int sci_librarieslist(char *fname, unsigned long fname_len)
{
    char **libraries = NULL;
    int sizelibraries = 0;

    CheckRhs(0, 0);
    CheckLhs(0, 1);

    libraries = getlibrarieslist(&sizelibraries);

    if (libraries)
    {
        int m = 0, n = 0;
        m = sizelibraries;
        n = 1;
        CreateVarFromPtr(Rhs + 1, MATRIX_OF_STRING_DATATYPE, &m, &n, libraries);
    }
    else
    {
        int m = 0, n = 0, l = 0;
        CreateVarFromPtr(Rhs + 1, MATRIX_OF_DOUBLE_DATATYPE, &n, &m, &l);
    }

    LhsVar(1) = Rhs + 1;

    freeArrayOfString(libraries, sizelibraries);

    PutLhsVar();
    return 0;
}
Exemple #6
0
 /*--------------------------------------------------------------------------*/
 static int OneLhs(struct VariableStruct* Vstruct,int lenStructArray,BOOL Sorted)
 {
	 int i=0;
	 int m=0;
	 int n=0;

	 char **LocalTab = NULL;

	 if (Sorted) SortVarsStructByStrings(Vstruct,lenStructArray);

	 LocalTab=(char **)MALLOC(sizeof(char*)*(lenStructArray));

	 for (i=0;i<lenStructArray;i++)
	 {
		 if (strlen(Vstruct[i].NameVariable)>0)
		 {
			 LocalTab[i] = strdup(Vstruct[i].NameVariable);
		 }
	 }

	 m=lenStructArray;
	 n=1;
	 CreateVarFromPtr(Rhs+1,MATRIX_OF_STRING_DATATYPE, &m, &n,LocalTab);
	 LhsVar(1)=Rhs+1;

	 freeArrayOfString(LocalTab, lenStructArray);
	 PutLhsVar();
	 return 0;
 }
Exemple #7
0
/*--------------------------------------------------------------------------*/
 static int TwoLhs(struct VariableStruct* Vstruct,int lenStructArray,BOOL Sorted)
 {
	 char **Tab=NULL;
	 int *Size=NULL;
	 int i=0;
	 int m=0;
	 int n=0;

	 if (Sorted) SortVarsStructByStrings(Vstruct,lenStructArray);

	 Tab=(char **)MALLOC(sizeof(char*)*lenStructArray);
	 Size=(int *)MALLOC(sizeof(int)*lenStructArray);

	 for (i=0;i<lenStructArray;i++)
	 {
		 Tab[i] = strdup(Vstruct[i].NameVariable);
		 Size[i]=Vstruct[i].SizeVariable;
	 }

	 m=lenStructArray;
	 n=1;

	 CreateVarFromPtr(Rhs+1,MATRIX_OF_STRING_DATATYPE, &m, &n, Tab);
	 LhsVar(1) = Rhs+1;

	 CreateVarFromPtr(Rhs+2,MATRIX_OF_INTEGER_DATATYPE, &m, &n, &Size);
	 LhsVar(2) = Rhs+2;

	 freeArrayOfString(Tab, lenStructArray);
	 if (Size) {FREE(Size);Size=NULL;}

     PutLhsVar();
	 return 0;
 }
Exemple #8
0
/*--------------------------------------------------------------------------*/
void freeFscanfMatResult(fscanfMatResult *resultStruct)
{
    if (resultStruct)
    {
        if (resultStruct->text)
        {
            freeArrayOfString(resultStruct->text, resultStruct->sizeText);
            resultStruct->text = NULL;
        }

        if (resultStruct->values)
        {
            FREE(resultStruct->values);
            resultStruct->values = NULL;
        }

        resultStruct->err = FSCANFMAT_ERROR;
        resultStruct->m = 0;
        resultStruct->n = 0;
        resultStruct->sizeText = 0;

        FREE(resultStruct);
        resultStruct = NULL;
    }
}
Exemple #9
0
/*--------------------------------------------------------------------------*/
int scitokenize(char * legend, char *** Strptr, int *n)
{
    int arobaseIndex = 0;
    int i = 0;
    int count = 1;
    int prevIndex = 0;
    int stringLength = 0, j = 0;
    char **Str = NULL;
    int lenlegend = (int)strlen(legend);

    /* first get the number of tokens */
    for (i = 0; i < lenlegend; i++)
    {
        if (legend[i] == '@')
        {
            count++;
        }
    }
    *Strptr = (char **)MALLOC(count * sizeof(char *));
    Str = *Strptr;
    if (Str == NULL)
    {
        return 1;    /* not enough memory */
    }
    for (i = 0; i < count; i++)
    {
        Str[i] = NULL;
    }

    for (i = 0; i < count; i++)
    {
        while (legend[arobaseIndex] != '@' && legend[arobaseIndex] != 0)
        {
            arobaseIndex++;
        }
        /* we found a token */
        stringLength =  arobaseIndex - prevIndex;
        Str[i] = (char *)MALLOC((stringLength + 1) * sizeof(char)); /*  +1 for null terminating character*/

        if (Str[i] == NULL)
        {
            freeArrayOfString(Str, i - 1);
            return 1;
        }

        for (j = 0; j < stringLength; j++)
        {
            Str[i][j] = legend[prevIndex + j];
        }
        Str[i][stringLength] = 0;

        /* skip the @*/
        arobaseIndex++;
        prevIndex = arobaseIndex;
    }
    *n = count;
    return 0;
}
/*--------------------------------------------------------------------------*/
static BOOL CleanBuffers(char *bufCommands, char **LOCALJOBS, int numberjobs)
{
    if (bufCommands)
    {
        FREE(bufCommands);
        bufCommands = NULL;
    }
    freeArrayOfString(LOCALJOBS, numberjobs);
    return TRUE;
}
Exemple #11
0
/*--------------------------------------------------------------------------*/
int sci_typename_no_rhs(char *fname, unsigned long fname_len)
{
    SciErr sciErr;
    int numberOfTypes = 0;
    int *TypesNumbers = NULL;

    int m_out1 = 0, n_out1 = 0;

    TypesNumbers = getAllTypesNumber(&numberOfTypes);
    m_out1 = numberOfTypes;
    n_out1 = 1;

    sciErr = createMatrixOfInteger32(pvApiCtx, Rhs + 1, m_out1, n_out1, TypesNumbers);
    if (sciErr.iErr)
    {
        printError(&sciErr, 0);
        Scierror(999, _("%s: Memory allocation error.\n"), fname);
        return 0;
    }

    if (TypesNumbers)
    {
        FREE(TypesNumbers);
        TypesNumbers = NULL;
    }
    LhsVar(1) = Rhs + 1;

    if (Lhs > 1)
    {
        int m_out2 = 0, n_out2 = 0;
        char **TypesNames = NULL;

        TypesNames = getAllTypesName(&numberOfTypes);
        m_out2 = numberOfTypes;
        n_out2 = 1;

        sciErr = createMatrixOfString(pvApiCtx, Rhs + 2, m_out2, n_out2,
                                      (const char *const *)TypesNames);
        if (sciErr.iErr)
        {
            printError(&sciErr, 0);
            Scierror(999, _("%s: Memory allocation error.\n"), fname);
            return 0;
        }

        if (TypesNames)
        {
            freeArrayOfString(TypesNames, numberOfTypes);
        }
        LhsVar(2) = Rhs + 2;
    }
    PutLhsVar();

    return 0;
}
Exemple #12
0
/*--------------------------------------------------------------------------*/
BOOL isTypeNameAlreadyExist(char *name)
{
    int sizeArray = 0;
    char **TypeNames = getAllTypesName(&sizeArray);
    int i = 0;

    if (TypeNames)
    {
        for (i = 0; i < sizeArray; i++)
        {
            if (strcmp(name, TypeNames[i]) == 0)
            {
                freeArrayOfString(TypeNames, sizeArray);
                return TRUE;
            }
        }
        freeArrayOfString(TypeNames, sizeArray);
    }
    return FALSE;
}
Exemple #13
0
/*--------------------------------------------------------------------------*/
static int IsACommand(char *primitive)
{
    int sizecommandwords = 0;
    char **commandwords = getcommandkeywords(&sizecommandwords);
    int bOK = FALSE;
    int i = 0;

    for (i = 0; i < sizecommandwords ; i++)
    {
        if (strcmp(commandwords[i], primitive) == 0)
        {
            freeArrayOfString(commandwords, sizecommandwords);
            return TRUE;
        }
    }

    freeArrayOfString(commandwords, sizecommandwords);

    return bOK;
}
/*------------------------------------------------------------------------*/
int getSizeAllLinesOfScilabHistory(void)
{
    int nbElements = 0;
    char **lines = NULL;

    if (ScilabHistory)
        lines = ScilabHistory->getAllLines(&nbElements);

    freeArrayOfString(lines, nbElements);

    return nbElements;
}
Exemple #15
0
// =============================================================================
void freeCsvResult(csvResult *result)
{
    if (result)
    {
        if (result->pstrValues)
        {
            freeArrayOfString(result->pstrValues, result->m * result->n);
            result->pstrValues = NULL;
        }
        result->m = 0;
        result->n = 0;

        if (result->pstrComments)
        {
            freeArrayOfString(result->pstrComments, result->nbComments);
            result->pstrComments = NULL;
        }
        result->err = CSV_READ_ERROR;
        FREE(result);
        result = NULL;
    }
}
Exemple #16
0
/*----------------------------------------------------------------------------*/
int sci_strrev(char *fname,unsigned long fname_len)
{
	CheckRhs(1,1);
	CheckLhs(0,1);

	if (GetType(1) == sci_strings)
	{
		int m1 = 0; int n1 = 0;
		char **InputStrings = NULL;
		int m1n1 = 0; /* m1 * n1 */

		char **OutputStrings = NULL;

		GetRhsVar(1,MATRIX_OF_STRING_DATATYPE,&m1,&n1,&InputStrings);
		m1n1 = m1 * n1;

		OutputStrings = strings_strrev(InputStrings,m1n1);

		if (OutputStrings)
		{
			CreateVarFromPtr(Rhs+1,MATRIX_OF_STRING_DATATYPE,&m1,&n1,OutputStrings);
			freeArrayOfString(InputStrings,m1n1);
			freeArrayOfString(OutputStrings,m1n1);
            LhsVar(1) = Rhs+1 ;
            PutLhsVar();
		}
		else
		{
			freeArrayOfString(InputStrings,m1n1);
			Scierror(999,_("%s: No more memory.\n"),fname);
			return 0;
		}
	}
	else
	{
		Scierror(999,_("%s: Wrong type for input argument #%d: Matrix of strings expected.\n"),fname,1);
	}
	return 0;
}
Exemple #17
0
/*--------------------------------------------------------------------------*/
int C2F(sci_what)(char *fname, unsigned long fname_len)
{
    int sizecommandwords = 0;
    char **commandwords = getcommandkeywords(&sizecommandwords);

    Rhs = Max(0, Rhs);
    CheckRhs(0, 0);
    CheckLhs(1, 2);

    CreateLocalFunctionsTab();
    qsort( LocalFunctionsTab , SizeLocalFunctionsTab ,  sizeof (char *)  , cmpfunctionnames);

    if (Lhs == 1)
    {
        DispInternalFunctions();
        DispCommands();
        LhsVar(1) = 0;
    }
    else /* Lhs == 2 */
    {
        int ncol = 1;
        int nrowFunctions = SizeLocalFunctionsTab;
        int nrowCommands = sizecommandwords;

        CreateVarFromPtr(Rhs + 1, MATRIX_OF_STRING_DATATYPE, &nrowFunctions, &ncol, LocalFunctionsTab);
        LhsVar(1) = Rhs + 1;

        CreateVarFromPtr(Rhs + 2, MATRIX_OF_STRING_DATATYPE, &nrowCommands, &ncol, commandwords);
        LhsVar(2) = Rhs + 2;

        freeArrayOfString(LocalFunctionsTab, nrowFunctions);
        freeArrayOfString(commandwords, nrowCommands);

    }

    PutLhsVar();
    return 0;
}
Exemple #18
0
/*--------------------------------------------------------------------------*/
static int CreateLocalFunctionsTab(void)
{
    char **LocalFunctionsTabTmp = NULL;
    int i = 0;
    int j = 0;
    int SizeTab = 0;
    int MaxSizeWithoutCommands = 0;

    LocalFunctionsTabTmp = GetFunctionsList(&SizeTab);

    if (LocalFunctionsTabTmp)
    {
        for (i = 0; i < SizeTab; i++)
        {
            if ( !IsACommand(LocalFunctionsTabTmp[i]) )
            {
                MaxSizeWithoutCommands++;
            }
        }

        LocalFunctionsTab = (char **)MALLOC(sizeof(char**) * MaxSizeWithoutCommands);

        if (LocalFunctionsTab == NULL)
        {
            SizeLocalFunctionsTab = 0;
            return FALSE;
        }

        j = 0;
        for (i = 0; i < SizeTab; i++)
        {
            if ( !IsACommand(LocalFunctionsTabTmp[i]) )
            {
                LocalFunctionsTab[j] = strdup(LocalFunctionsTabTmp[i]);
                j++;
            }
        }

        freeArrayOfString(LocalFunctionsTabTmp, SizeTab);
    }
    else
    {
        SizeLocalFunctionsTab = 0;
        return FALSE;
    }

    SizeLocalFunctionsTab = MaxSizeWithoutCommands;

    return TRUE;
}
static bool export_strings(int _iH5File, int *_piVar, char* _pstName)
{
    int iRet = 0;
    int* piLen = NULL;
    char** pstData = NULL;
    int piDims[2];

    SciErr sciErr = getMatrixOfString(pvApiCtx, _piVar, &piDims[0], &piDims[1], NULL, NULL);
    if (sciErr.iErr)
    {
        printError(&sciErr, 0);
        return false;
    }

    piLen = (int*)MALLOC(piDims[0] * piDims[1] * sizeof(int));
    sciErr = getMatrixOfString(pvApiCtx, _piVar, &piDims[0], &piDims[1], piLen, NULL);
    if (sciErr.iErr)
    {
        printError(&sciErr, 0);
        return false;
    }

    pstData = (char**)MALLOC(sizeof(char*) * piDims[0] * piDims[1]);
    for (int i = 0 ; i < piDims[0] * piDims[1] ; i++)
    {
        pstData[i] = (char*)MALLOC(sizeof(char) * (piLen[i] + 1));// for null termination
    }

    sciErr = getMatrixOfString(pvApiCtx, _piVar, &piDims[0], &piDims[1], piLen, pstData);
    if (sciErr.iErr)
    {
        printError(&sciErr, 0);
        return false;
    }

    iRet = writeStringMatrix(_iH5File, _pstName, 2, piDims, pstData);

    if (iRet)
    {
        return false;
    }

    char pstMsg[512];
    sprintf(pstMsg, "string (%d x %d)", piDims[0], piDims[1]);
    print_type(pstMsg);

    freeArrayOfString(pstData, piDims[0] * piDims[1]);
    return true;
}
Exemple #20
0
/*--------------------------------------------------------------------------*/ 
int setInternalLastErrorMessage(char** strErrorMessage, int iNbLines)
{
    int i = 0;
    if (strLastErrorMessage)
    {
        freeArrayOfString(strLastErrorMessage, iLastErrorMessageNbLines);
    }
    allocLastErrorMessage();

    for (i = 0; i < iNbLines; i++)
    {
        appendStringToInternalLastErrorMessage(strErrorMessage[i]);
    }
    return 0;
}
Exemple #21
0
/*------------------------------------------------------------------------*/
errorLoadHistoryCode HistoryFile::loadFromFile(std::string filename)
{
    errorLoadHistoryCode returnedError = ERROR_HISTORY_NOT_LOADED;
    int fd = 0;
    int f_swap = 0;
    double res = 0.0;
    int errMOPEN = MOPEN_INVALID_STATUS;
    double dErrClose = 0.;


    C2F(mopen)(&fd, (char*)filename.c_str(), "rt", &f_swap, &res, &errMOPEN);
    if (errMOPEN == MOPEN_NO_ERROR)
    {
        int errMGETL = MGETL_ERROR;
        int nblines = 0;
        char **lines = mgetl(fd, -1, &nblines, &errMGETL);

        C2F(mclose)(&fd, &dErrClose);
        if (errMGETL == MGETL_NO_ERROR)
        {
            if (lines)
            {
                int iStart = 0;
                int iEnd = 0;
                if (nblines > getDefaultMaxNbLines())
                {
                    iStart = nblines - getDefaultMaxNbLines();
                    returnedError = HISTORY_TRUNCATED;
                }
                else
                {
                    iStart = 0;
                    returnedError = NO_ERROR_HISTORY_LOADED;
                }
                iEnd = nblines;

                for (int i = iStart; i < iEnd; i++)
                {
                    CommandLine Line(lines[i]);
                    this->Commands.push_back(Line);
                }
                freeArrayOfString(lines, nblines);
                lines = NULL;
            }
        }
    }
    return returnedError;
}
Exemple #22
0
/*--------------------------------------------------------------------------*/
int C2F(msgstore)(char *str, int *n)
{
    int iRes = 0;

    char **multilines = NULL;
    int nbLines = 0;
    int i = 0;
    char *msg = NULL;
    char *msgTmp = NULL;

    if (str == NULL) return 1;
    msg = strdup(str);
    if (msg)
    {
        msg[*n] = 0;
    }

    // remove duplicate percent bug 9571
    msgTmp = strsub(msg, "%%", "%");
    if (msgTmp)
    {
        FREE(msg);
        msg = msgTmp;
    }
    multilines = splitErrorMessage(msg, &nbLines);
    if (multilines)
    {
        for (i = 0; i < nbLines; i++)
        {
            iRes = appendStringToInternalLastErrorMessage(multilines[i]);
            if (iRes) break;
        }
        freeArrayOfString(multilines, nbLines);
        multilines = NULL;
    }
    else
    {
        iRes = appendStringToInternalLastErrorMessage(msg);
    }

    if (msg)
    {
        FREE(msg);
        msg = NULL;
    }

    return iRes;
}
static void doCompletion(char *wk_buf, unsigned int *cursor, unsigned int *cursor_max)
{
    char *LineBeforeCaret = getLineBeforeCaret(wk_buf, cursor);

    char *LineAfterCaret = getLineAfterCaret(wk_buf, cursor, cursor_max);

    char *fileSearchedPattern = getFilePartLevel(LineBeforeCaret);

    char *SearchedPattern = getPartLevel(LineBeforeCaret);

    char **completionDictionaryFiles = NULL;

    int sizecompletionDictionaryFiles = 0;

    completionDictionaryFiles = completionOnFiles(fileSearchedPattern, &sizecompletionDictionaryFiles);
    if (completionDictionaryFiles)
    {
        TermCompletionOnFiles(completionDictionaryFiles, sizecompletionDictionaryFiles,
                              LineBeforeCaret, LineAfterCaret, fileSearchedPattern, SearchedPattern, wk_buf, cursor, cursor_max);

        freeArrayOfString(completionDictionaryFiles, sizecompletionDictionaryFiles);
    }
    else
    {
        TermCompletionOnAll(LineBeforeCaret, LineAfterCaret, SearchedPattern, wk_buf, cursor, cursor_max);
    }

    if (LineBeforeCaret)
    {
        FREE(LineBeforeCaret);
        LineBeforeCaret = NULL;
    }
    if (LineAfterCaret)
    {
        FREE(LineAfterCaret);
        LineAfterCaret = NULL;
    }
    if (fileSearchedPattern)
    {
        FREE(fileSearchedPattern);
        fileSearchedPattern = NULL;
    }
    if (SearchedPattern)
    {
        FREE(SearchedPattern);
        SearchedPattern = NULL;
    }
}
/*--------------------------------------------------------------------------*/
BOOL isScilabMacro(const char * functionName)
{
    if (functionName)
    {
        char **librariesResult = NULL;
        int librariesResultSize = 0;

        librariesResult = searchmacroinlibraries((char*)functionName, &librariesResultSize);
        freeArrayOfString(librariesResult, librariesResultSize);
        if (librariesResultSize > 0)
        {
            return TRUE;
        }
    }
    return FALSE;
}
/*--------------------------------------------------------------------------*/
int sci_getfilepartlevel(char *fname, unsigned long fname_len)
{
    CheckRhs(1, 1);
    CheckLhs(1, 1);

    if (GetType(1) == sci_strings)
    {
        int m = 0, n = 0;
        char **InputString = NULL;

        GetRhsVar(1, MATRIX_OF_STRING_DATATYPE, &m, &n, &InputString);
        if ( (m == 1) && (n == 1) )
        {
            char *result = NULL;
            result = getFilePartLevel(InputString[0]);
            if (result == NULL)
            {
                int l = 0;
                m = 0, n = 0;
                CreateVar(Rhs + 1, STRING_DATATYPE,  &m, &n, &l);
            }
            else
            {
                n = 1;
                CreateVarFromPtr(Rhs + 1, STRING_DATATYPE, (m = (int)strlen(result), &m), &n, &result);
                if (result)
                {
                    FREE(result);
                    result = NULL;
                }
            }

            LhsVar(1) = Rhs + 1;
        }
        else
        {
            freeArrayOfString(InputString, m * n);
            Scierror(999, _("%s: Wrong size for input argument #%d: A string expected.\n"), fname, 1);
        }
    }
    else
    {
        Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), fname, 1);
    }

    return 0;
}
Exemple #26
0
/*--------------------------------------------------------------------------*/
void TermCompletion(void)
{
    char *LineBeforeCaret = getLineBeforeCaret();
    char *LineAfterCaret = getLineAfterCaret();
    char *fileSearchedPattern = getFilePartLevel(LineBeforeCaret);
    char *SearchedPattern = getPartLevel(LineBeforeCaret);


    char **completionDictionaryFiles = NULL;
    int sizecompletionDictionaryFiles = 0;

    completionDictionaryFiles = completionOnFiles(fileSearchedPattern, &sizecompletionDictionaryFiles);
    if (completionDictionaryFiles)
    {
        TermCompletionOnFiles(completionDictionaryFiles, sizecompletionDictionaryFiles,
                              LineBeforeCaret, LineAfterCaret, fileSearchedPattern, SearchedPattern);

        freeArrayOfString(completionDictionaryFiles, sizecompletionDictionaryFiles);
    }
    else
    {
        TermCompletionOnAll(LineBeforeCaret, LineAfterCaret, SearchedPattern);
    }

    if (LineBeforeCaret)
    {
        FREE(LineBeforeCaret);
        LineBeforeCaret = NULL;
    }
    if (LineAfterCaret)
    {
        FREE(LineAfterCaret);
        LineAfterCaret = NULL;
    }
    if (fileSearchedPattern)
    {
        FREE(fileSearchedPattern);
        fileSearchedPattern = NULL;
    }
    if (SearchedPattern)
    {
        FREE(SearchedPattern);
        SearchedPattern = NULL;
    }
}
/*--------------------------------------------------------------------------*/
static BOOL Load_primitives_from_gateway_xml_file(char *modulename)
{
    BOOL bOK = FALSE;

    if (modulename)
    {
        struct gateway_struct *currentGateway = NULL;
        currentGateway = readGateway(modulename);

        if (currentGateway)
        {
            int i = 0;
            for (i = 0; i < currentGateway->dimLists; i++)
            {
                if (currentGateway->primitivesList[i])
                {
                    int GATEWAY_ID = currentGateway->gatewayIdList[i];
                    int PRIMITIVE_ID = currentGateway->primiviteIdList[i];

                    Add_a_Scilab_primitive_in_hashtable(currentGateway->primitivesList[i],
                                                        &GATEWAY_ID,
                                                        &PRIMITIVE_ID);
                }
            }

            /* FREE struct currentGateway */
            freeArrayOfString(currentGateway->primitivesList,currentGateway->dimLists);
            if (currentGateway->primiviteIdList)
            {
                FREE(currentGateway->primiviteIdList);
                currentGateway->primiviteIdList = NULL;
            }
            if (currentGateway->gatewayIdList)
            {
                FREE(currentGateway->gatewayIdList);
                currentGateway->gatewayIdList = NULL;
            }
            FREE(currentGateway);
            currentGateway = NULL;

            bOK = TRUE;
        }
    }
    return bOK;
}
Exemple #28
0
/*--------------------------------------------------------------------------*/
static void DispCommands(void)
{
	int i=0;
	int sizecommandwords = 0;
	char **commandwords = getcommandkeywords(&sizecommandwords);

	sciprint("\n");
	sciprint(_("Commands:\n"));
	sciprint("\n");
	for (i=0;i <sizecommandwords;i++)
	{
		sciprint("%+24s ",commandwords[i]);
		if ((i+1)%4==0) sciprint("\n");
	}
	sciprint("\n");

	freeArrayOfString(commandwords, sizecommandwords);
}
Exemple #29
0
/* ==================================================================== */
static void freeVar(char** filename, char** separator, char** decimal, char** conversion, int** iRange, char*** toreplace, int sizeReplace, char** regexp)
{
    if (filename && *filename)
    {
        FREE(*filename);
        *filename = NULL;
    }

    if (separator && *separator)
    {
        FREE(*separator);
        *separator = NULL;
    }

    if (decimal && *decimal)
    {
        FREE(*decimal);
        *decimal = NULL;
    }

    if (conversion && *conversion)
    {
        FREE(*conversion);
        *conversion = NULL;
    }

    if (iRange && *iRange)
    {
        FREE(*iRange);
        *iRange = NULL;
    }

    if (toreplace && *toreplace)
    {
        freeArrayOfString(*toreplace, sizeReplace);
        *toreplace = NULL;
    }

    if (regexp && *regexp)
    {
        FREE(*regexp);
        *regexp = NULL;
    }
}
Exemple #30
0
/* ==================================================================== */
int getProxyValues(char **proxyHost, long *proxyPort, char **proxyUserPwd)
{
    const char * attrs[] = {"enabled", "host", "port", "user", "password"};
    const unsigned int N = sizeof(attrs) / sizeof(char*);
    char ** values = getPrefAttributesValues("//web/body/proxy", attrs, N);

    if (!values)
    {
        return 0;
    }

    if (stricmp(values[0]/*enabled*/, "true") == 0)
    {
        const unsigned int ulen = (const unsigned int)strlen(values[3]);
        const unsigned int plen = (const unsigned int)strlen(values[4]);

        *proxyHost = values[1]; //host;
        *proxyPort = strtol(values[2], NULL, 10); //port;
        FREE(values[2]);

        if (plen == 0)
        {
            *proxyUserPwd = values[3]; //user
        }
        else
        {
            *proxyUserPwd = (char *)MALLOC((ulen + 1 + plen + 1) * sizeof(char *));
            sprintf(*proxyUserPwd, "%s:%s", values[3]/*user*/, values[4]/*password*/);
            (*proxyUserPwd)[ulen + 1 + plen] = '\0';
            FREE(values[3]);
        }

        FREE(values[4]);
        FREE(values[0]);
        FREE(values);
    }
    else
    {
        freeArrayOfString(values, N);
        return 0;
    }

    return 1;
}