GPL + CeCILL Header change
[scilab.git] / scilab / modules / string / src / c / isletter.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA - Allan CORNET
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  * === LICENSE_END ===
14  *
15  */
16
17 /*--------------------------------------------------------------------------*/
18 #include <string.h>
19 #include <ctype.h>
20 #include <wchar.h>
21 #include <wctype.h> /* iswalpha */
22 #include "isletter.h"
23 #include "sci_malloc.h"
24
25 /*--------------------------------------------------------------------------*/
26 BOOL *isletter(char *input_string, int *sizeArray)
27 {
28     BOOL *returnedValues = NULL;
29     if (input_string)
30     {
31         int i = 0;
32         int length_input_string = (int)strlen(input_string);
33         *sizeArray = 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 ( isalpha(input_string[i]) )
43                     {
44                         returnedValues[i] = TRUE;
45                     }
46                     else
47                     {
48                         returnedValues[i] = FALSE;
49                     }
50                 }
51             }
52         }
53     }
54     return returnedValues;
55 }
56 /*--------------------------------------------------------------------------*/
57 BOOL *isletterW(wchar_t *wcInput_string, int *sizeArray)
58 {
59     BOOL *returnedValues = NULL;
60     if (wcInput_string)
61     {
62         int i = 0;
63         int length_input_string = (int)wcslen(wcInput_string);
64
65         *sizeArray = length_input_string;
66
67         if (length_input_string > 0)
68         {
69             returnedValues = (BOOL*)MALLOC(sizeof(BOOL) * length_input_string);
70             if (returnedValues)
71             {
72                 for (i = 0; i < length_input_string; i++)
73                 {
74                     if ( iswalpha(wcInput_string[i]) )
75                     {
76                         returnedValues[i] = TRUE;
77                     }
78                     else
79                     {
80                         returnedValues[i] = FALSE;
81                     }
82                 }
83             }
84         }
85     }
86     return returnedValues;
87 }
88 /*--------------------------------------------------------------------------*/