00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef SVN_CTYPE_H
00025 #define SVN_CTYPE_H
00026
00027 #include <apr.h>
00028
00029
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033
00034
00035
00036 extern const apr_uint32_t *const svn_ctype_table;
00037
00038
00039
00040
00041
00042
00043 #define svn_ctype_test(c, flags) \
00044 (0 != (svn_ctype_table[(unsigned char)(c)] & (flags)))
00045
00046
00047
00048
00049
00050
00051
00052
00053 #define SVN_CTYPE_CNTRL 0x0001
00054 #define SVN_CTYPE_SPACE 0x0002
00055 #define SVN_CTYPE_DIGIT 0x0004
00056 #define SVN_CTYPE_UPPER 0x0008
00057 #define SVN_CTYPE_LOWER 0x0010
00058 #define SVN_CTYPE_PUNCT 0x0020
00059 #define SVN_CTYPE_XALPHA 0x0040
00060 #define SVN_CTYPE_ASCII 0x0080
00061
00062
00063
00064 #define SVN_CTYPE_ALPHA (SVN_CTYPE_LOWER | SVN_CTYPE_UPPER)
00065
00066 #define SVN_CTYPE_ALNUM (SVN_CTYPE_ALPHA | SVN_CTYPE_DIGIT)
00067
00068 #define SVN_CTYPE_XDIGIT (SVN_CTYPE_DIGIT | SVN_CTYPE_XALPHA)
00069
00070 #define SVN_CTYPE_GRAPH (SVN_CTYPE_PUNCT | SVN_CTYPE_ALNUM)
00071
00072 #define SVN_CTYPE_PRINT (SVN_CTYPE_GRAPH | SVN_CTYPE_SPACE)
00073
00074
00075
00076 #define svn_ctype_iscntrl(c) svn_ctype_test((c), SVN_CTYPE_CNTRL)
00077
00078
00079 #define svn_ctype_isspace(c) svn_ctype_test((c), SVN_CTYPE_SPACE)
00080
00081
00082 #define svn_ctype_isdigit(c) svn_ctype_test((c), SVN_CTYPE_DIGIT)
00083
00084
00085 #define svn_ctype_isupper(c) svn_ctype_test((c), SVN_CTYPE_UPPER)
00086
00087
00088 #define svn_ctype_islower(c) svn_ctype_test((c), SVN_CTYPE_LOWER)
00089
00090
00091 #define svn_ctype_ispunct(c) svn_ctype_test((c), SVN_CTYPE_PUNCT)
00092
00093
00094 #define svn_ctype_isascii(c) svn_ctype_test((c), SVN_CTYPE_ASCII)
00095
00096
00097 #define svn_ctype_isalpha(c) svn_ctype_test((c), SVN_CTYPE_ALPHA)
00098
00099
00100 #define svn_ctype_isalnum(c) svn_ctype_test((c), SVN_CTYPE_ALNUM)
00101
00102
00103 #define svn_ctype_isxdigit(c) svn_ctype_test((c), SVN_CTYPE_XDIGIT)
00104
00105
00106 #define svn_ctype_isgraph(c) svn_ctype_test((c), SVN_CTYPE_GRAPH)
00107
00108
00109 #define svn_ctype_isprint(c) svn_ctype_test((c), SVN_CTYPE_PRINT)
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119 #define SVN_CTYPE_UTF8LEAD 0x0100
00120 #define SVN_CTYPE_UTF8CONT 0x0200
00121
00122
00123
00124
00125
00126
00127
00128 #define SVN_CTYPE_UTF8MBC (SVN_CTYPE_UTF8LEAD | SVN_CTYPE_UTF8CONT)
00129
00130 #define SVN_CTYPE_UTF8 (SVN_CTYPE_ASCII | SVN_CTYPE_UTF8MBC)
00131
00132
00133 #define svn_ctype_isutf8lead(c) svn_ctype_test((c), SVN_CTYPE_UTF8LEAD)
00134
00135
00136 #define svn_ctype_isutf8cont(c) svn_ctype_test((c), SVN_CTYLE_UTF8CONT)
00137
00138
00139 #define svn_ctype_isutf8mbc(c) svn_ctype_test((c), SVN_CTYPE_UTF8MBC)
00140
00141
00142 #define svn_ctype_isutf8(c) svn_ctype_test((c), SVN_CTYPE_UTF8)
00143
00144
00145
00146
00147
00148
00149
00150
00151 #define SVN_CTYPE_ASCII_MINUS 45
00152 #define SVN_CTYPE_ASCII_DOT 46
00153 #define SVN_CTYPE_ASCII_COLON 58
00154 #define SVN_CTYPE_ASCII_UNDERSCORE 95
00155 #define SVN_CTYPE_ASCII_TAB 9
00156 #define SVN_CTYPE_ASCII_LINEFEED 10
00157 #define SVN_CTYPE_ASCII_CARRIAGERETURN 13
00158
00159 #define SVN_CTYPE_ASCII_DELETE 127
00160
00161
00162
00163
00164
00165 #ifdef __cplusplus
00166 }
00167 #endif
00168
00169 #endif