12aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm/** @file
2681cc25c179fdf3462d8366edbc3a886443964c7darylm  Character classification function implementations for <ctype.h>.
32aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
4681cc25c179fdf3462d8366edbc3a886443964c7darylm  Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
52aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  This program and the accompanying materials are licensed and made available under
62aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  the terms and conditions of the BSD License that accompanies this distribution.
72aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  The full text of the license may be found at
8681cc25c179fdf3462d8366edbc3a886443964c7darylm  http://opensource.org/licenses/bsd-license.
92aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
102aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
112aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
122aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
132aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#include  <LibConfig.h>
142aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
152aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#define NO_CTYPE_MACROS            // So that we don't define the classification macros
162aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#include  <ctype.h>
172aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
18681cc25c179fdf3462d8366edbc3a886443964c7darylm/** Internal worker function for character classification.
19681cc25c179fdf3462d8366edbc3a886443964c7darylm
20681cc25c179fdf3462d8366edbc3a886443964c7darylm    Determines if a character is a member of a set of character classes.
21681cc25c179fdf3462d8366edbc3a886443964c7darylm
22681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    _c      The character to be tested.
23681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    mask    A bitmapped specification of the character classes to
24681cc25c179fdf3462d8366edbc3a886443964c7darylm                          test the character against.  These bits are defined
25681cc25c179fdf3462d8366edbc3a886443964c7darylm                          in _ctype.h.
26681cc25c179fdf3462d8366edbc3a886443964c7darylm
27681cc25c179fdf3462d8366edbc3a886443964c7darylm    @retval   0         The character, _c, is NOT a member of the character classes specified by mask.
28681cc25c179fdf3462d8366edbc3a886443964c7darylm    @retval   nonZero   The character, _c, IS a member of a specified character class.
29681cc25c179fdf3462d8366edbc3a886443964c7darylm**/
302aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylmint
31681cc25c179fdf3462d8366edbc3a886443964c7darylm__isCClass(
32681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int _c,
33681cc25c179fdf3462d8366edbc3a886443964c7darylm  unsigned int mask
34681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
352aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
362aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return ((_c < 0 || _c > 127) ? 0 : (_cClass[_c] & mask));
372aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
382aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
39681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isalnum function tests for any character for which isalpha or isdigit
40681cc25c179fdf3462d8366edbc3a886443964c7darylm    is true.
412aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
42681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
43681cc25c179fdf3462d8366edbc3a886443964c7darylm
44681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
45681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
462aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
47681cc25c179fdf3462d8366edbc3a886443964c7darylmint
48681cc25c179fdf3462d8366edbc3a886443964c7darylmisalnum(
49681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
50681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
512aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
522aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CD | _CU | _CL | _XA)));
532aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
542aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
55681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isalpha function tests for any character for which isupper or islower
56681cc25c179fdf3462d8366edbc3a886443964c7darylm    is true, or any character that is one of a locale-specific set of
57681cc25c179fdf3462d8366edbc3a886443964c7darylm    alphabetic characters for which none of iscntrl, isdigit, ispunct, or
58681cc25c179fdf3462d8366edbc3a886443964c7darylm    isspace is true. In the "C" locale, isalpha returns true only for the
59681cc25c179fdf3462d8366edbc3a886443964c7darylm    characters for which isupper or islower is true.
602aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
61681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
62681cc25c179fdf3462d8366edbc3a886443964c7darylm
63681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
64681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
652aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
66681cc25c179fdf3462d8366edbc3a886443964c7darylmint
67681cc25c179fdf3462d8366edbc3a886443964c7darylmisalpha(
68681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
69681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
702aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
712aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CU | _CL | _XA)));
722aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
732aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
74681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The iscntrl function tests for any control character.
752aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
76681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
77681cc25c179fdf3462d8366edbc3a886443964c7darylm
78681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
79681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
802aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
81681cc25c179fdf3462d8366edbc3a886443964c7darylmint
82681cc25c179fdf3462d8366edbc3a886443964c7darylmiscntrl(
83681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
84681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
852aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
862aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CC)));
872aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
882aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
89681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isdigit function tests for any decimal-digit character.
902aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
91681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
92681cc25c179fdf3462d8366edbc3a886443964c7darylm
93681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
94681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
952aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
96681cc25c179fdf3462d8366edbc3a886443964c7darylmint
97681cc25c179fdf3462d8366edbc3a886443964c7darylmisdigit(
98681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
99681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
1002aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
1012aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CD)));
1022aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
1032aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
104681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isgraph function tests for any printing character except space (' ').
1052aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
106681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
107681cc25c179fdf3462d8366edbc3a886443964c7darylm
108681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
109681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
1102aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
111681cc25c179fdf3462d8366edbc3a886443964c7darylmint
112681cc25c179fdf3462d8366edbc3a886443964c7darylmisgraph(
113681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
114681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
1152aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
1162aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CG)));
1172aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
1182aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
119681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The islower function tests for any character that is a lowercase letter or
120681cc25c179fdf3462d8366edbc3a886443964c7darylm    is one of a locale-specific set of characters for which none of iscntrl,
121681cc25c179fdf3462d8366edbc3a886443964c7darylm    isdigit, ispunct, or isspace is true.  In the "C" locale, islower returns
122681cc25c179fdf3462d8366edbc3a886443964c7darylm    true only for the lowercase letters.
1232aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
124681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
125681cc25c179fdf3462d8366edbc3a886443964c7darylm
126681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
127681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
1282aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
129681cc25c179fdf3462d8366edbc3a886443964c7darylmint
130681cc25c179fdf3462d8366edbc3a886443964c7darylmislower(
131681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
132681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
1332aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
1342aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CL)));
1352aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
1362aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
137681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isprint function tests for any printing character including space (' ').
1382aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
139681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
140681cc25c179fdf3462d8366edbc3a886443964c7darylm
141681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
142681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
1432aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
144681cc25c179fdf3462d8366edbc3a886443964c7darylmint
145681cc25c179fdf3462d8366edbc3a886443964c7darylmisprint(
146681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
147681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
1482aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
1492aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CS | _CG)));
1502aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
1512aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
152681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The ispunct function tests for any printing character that is one of a
153681cc25c179fdf3462d8366edbc3a886443964c7darylm    locale-specific set of punctuation characters for which neither isspace nor
154681cc25c179fdf3462d8366edbc3a886443964c7darylm    isalnum is true. In the "C" locale, ispunct returns true for every printing
155681cc25c179fdf3462d8366edbc3a886443964c7darylm    character for which neither isspace nor isalnum is true.
1562aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
157681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
158681cc25c179fdf3462d8366edbc3a886443964c7darylm
159681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
160681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
1612aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
162681cc25c179fdf3462d8366edbc3a886443964c7darylmint
163681cc25c179fdf3462d8366edbc3a886443964c7darylmispunct(
164681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
165681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
1662aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
1672aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CP)));
1682aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
1692aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
170681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isspace function tests for any character that is a standard white-space
171681cc25c179fdf3462d8366edbc3a886443964c7darylm    character or is one of a locale-specific set of characters for which
172681cc25c179fdf3462d8366edbc3a886443964c7darylm    isalnum is false. The standard white-space characters are the following:
173681cc25c179fdf3462d8366edbc3a886443964c7darylm    space (' '), form feed ('\f'), new-line ('\n'), carriage return ('\r'),
174681cc25c179fdf3462d8366edbc3a886443964c7darylm    horizontal tab ('\t'), and vertical tab ('\v'). In the "C" locale, isspace
175681cc25c179fdf3462d8366edbc3a886443964c7darylm    returns true only for the standard white-space characters.
1762aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
177681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
178681cc25c179fdf3462d8366edbc3a886443964c7darylm
179681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
180681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
1812aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
182681cc25c179fdf3462d8366edbc3a886443964c7darylmint
183681cc25c179fdf3462d8366edbc3a886443964c7darylmisspace(
184681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
185681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
1862aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
1872aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CW)));
1882aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
1892aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
190681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isupper function tests for any character that is an uppercase letter or
191681cc25c179fdf3462d8366edbc3a886443964c7darylm    is one of a locale-specific set of characters for which none of iscntrl,
192681cc25c179fdf3462d8366edbc3a886443964c7darylm    isdigit, ispunct, or isspace is true. In the "C" locale, isupper returns
193681cc25c179fdf3462d8366edbc3a886443964c7darylm    true only for the uppercase letters.
1942aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
195681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
196681cc25c179fdf3462d8366edbc3a886443964c7darylm
197681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
198681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
1992aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
200681cc25c179fdf3462d8366edbc3a886443964c7darylmint
201681cc25c179fdf3462d8366edbc3a886443964c7darylmisupper(
202681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
203681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
2042aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
2052aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CU)));
2062aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
2072aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
208681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isxdigit function tests for any hexadecimal-digit character.
2092aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
210681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
211681cc25c179fdf3462d8366edbc3a886443964c7darylm
212681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
213681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
2142aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
215681cc25c179fdf3462d8366edbc3a886443964c7darylmint
216681cc25c179fdf3462d8366edbc3a886443964c7darylmisxdigit(
217681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
218681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
2192aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
2202aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return (__isCClass( c, (_CD | _CX)));
2212aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
2222aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
223681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isblank function tests that a character is a white-space character that results
224681cc25c179fdf3462d8366edbc3a886443964c7darylm    in a number of space (' ') characters being sent to the output device.  In the C locale
225681cc25c179fdf3462d8366edbc3a886443964c7darylm    this is either ' ' or '\t'.
226681cc25c179fdf3462d8366edbc3a886443964c7darylm
227681cc25c179fdf3462d8366edbc3a886443964c7darylm    @param[in]    c   The character to be tested.
228681cc25c179fdf3462d8366edbc3a886443964c7darylm
229681cc25c179fdf3462d8366edbc3a886443964c7darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
230681cc25c179fdf3462d8366edbc3a886443964c7darylm              can be classified as specified in the description of the function.
231681cc25c179fdf3462d8366edbc3a886443964c7darylm**/
2322aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylmint
233681cc25c179fdf3462d8366edbc3a886443964c7darylmisblank(
234681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
235681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
2362aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm{
2370c1992fbccd139e9d3bb730c19a79847c6a5a246darylm  return (__isCClass( c, (_CB)));
2382aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
2392aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
240681cc25c179fdf3462d8366edbc3a886443964c7darylm/** The isascii function tests that a character is one of the 128 7-bit ASCII characters.
2412aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm
2422aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  @param[in]  c   The character to test.
243681cc25c179fdf3462d8366edbc3a886443964c7darylm
2442aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  @return     Returns nonzero (true) if c is a valid ASCII character.  Otherwize,
2452aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm              zero (false) is returned.
2462aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm**/
247681cc25c179fdf3462d8366edbc3a886443964c7darylmint
248681cc25c179fdf3462d8366edbc3a886443964c7darylmisascii(
249681cc25c179fdf3462d8366edbc3a886443964c7darylm  IN  int c
250681cc25c179fdf3462d8366edbc3a886443964c7darylm  )
251681cc25c179fdf3462d8366edbc3a886443964c7darylm{
2522aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm  return ((c >= 0) && (c < 128));
2532aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}
2540c1992fbccd139e9d3bb730c19a79847c6a5a246darylm
2550c1992fbccd139e9d3bb730c19a79847c6a5a246darylm/** Test whether a character is one of the characters used as a separator
2560c1992fbccd139e9d3bb730c19a79847c6a5a246darylm    between directory elements in a path.
2570c1992fbccd139e9d3bb730c19a79847c6a5a246darylm
2580c1992fbccd139e9d3bb730c19a79847c6a5a246darylm    Characters are '/', '\\'
2590c1992fbccd139e9d3bb730c19a79847c6a5a246darylm
2600c1992fbccd139e9d3bb730c19a79847c6a5a246darylm    This non-standard function is unique to this implementation.
2610c1992fbccd139e9d3bb730c19a79847c6a5a246darylm
2620c1992fbccd139e9d3bb730c19a79847c6a5a246darylm    @param[in]    c   The character to be tested.
2630c1992fbccd139e9d3bb730c19a79847c6a5a246darylm
2640c1992fbccd139e9d3bb730c19a79847c6a5a246darylm    @return   Returns nonzero (true) if and only if the value of the parameter c
2650c1992fbccd139e9d3bb730c19a79847c6a5a246darylm              can be classified as specified in the description of the function.
2660c1992fbccd139e9d3bb730c19a79847c6a5a246darylm**/
2670c1992fbccd139e9d3bb730c19a79847c6a5a246darylmint
2680c1992fbccd139e9d3bb730c19a79847c6a5a246darylmisDirSep(int c)
2690c1992fbccd139e9d3bb730c19a79847c6a5a246darylm{
2700c1992fbccd139e9d3bb730c19a79847c6a5a246darylm  return (__isCClass( c, (_C0)));
2710c1992fbccd139e9d3bb730c19a79847c6a5a246darylm}
272