utf: module string 2
[scilab.git] / scilab / modules / string / src / c / isdigit.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA - Allan CORNET
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13 /*--------------------------------------------------------------------------*/
14 #include <string.h>
15 #include <ctype.h>
16 #include "isletter.h"
17 #include "sci_malloc.h"
18 #include "isdigit.h"
19 #include "charEncoding.h"
20
21 /*--------------------------------------------------------------------------*/
22 BOOL *IsDigit(const char* input_string, int *returnedSizeArray)
23 {
24     BOOL *returnedValues = NULL;
25     *returnedSizeArray = 0;
26
27     if (input_string)
28     {
29         int i = 0;
30         wchar_t* in = to_wide_string(input_string);
31         int length_input_string = (int)wcslen(in);
32
33         *returnedSizeArray = length_input_string;
34
35         if (length_input_string > 0)
36         {
37             returnedValues = (BOOL*)MALLOC(sizeof(BOOL) * length_input_string);
38             if (returnedValues)
39             {
40                 for (i = 0; i < length_input_string; i++)
41                 {
42                     if (iswdigit(in[i]))
43                     {
44                         returnedValues[i] = TRUE;
45                     }
46                     else
47                     {
48                         returnedValues[i] = FALSE;
49                     }
50                 }
51             }
52         }
53
54         FREE(in);
55     }
56     return returnedValues;
57 }
58 /*--------------------------------------------------------------------------*/