/usr/include/subversion-1/svn_ctype.h is in libsvn-dev 1.8.8-1ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | /**
* @copyright
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
* ====================================================================
* @endcopyright
*
* @file svn_ctype.h
* @brief Character classification routines
* @since New in 1.2.
*/
#ifndef SVN_CTYPE_H
#define SVN_CTYPE_H
#include <apr.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/** Table of flags for character classification. */
extern const apr_uint32_t *const svn_ctype_table;
/** Check if @a c is in the character class described by @a flags.
* The @a flags is a bitwise-or combination of @c SVN_CTYPE_*
* constants. Uses #svn_ctype_table.
*/
#define svn_ctype_test(c, flags) \
(0 != (svn_ctype_table[(unsigned char)(c)] & (flags)))
/**
* @defgroup ctype_basic Basic character classification - 7-bit ASCII only
* @{
*/
/* Basic character classes */
#define SVN_CTYPE_CNTRL 0x0001 /**< Control character */
#define SVN_CTYPE_SPACE 0x0002 /**< Whitespace */
#define SVN_CTYPE_DIGIT 0x0004 /**< Decimal digit */
#define SVN_CTYPE_UPPER 0x0008 /**< Uppercase letter */
#define SVN_CTYPE_LOWER 0x0010 /**< Lowercase letter */
#define SVN_CTYPE_PUNCT 0x0020 /**< Punctuation mark */
#define SVN_CTYPE_XALPHA 0x0040 /**< Hexadecimal digits A to F */
#define SVN_CTYPE_ASCII 0x0080 /**< ASCII subset*/
/* Derived character classes */
/** ASCII letter */
#define SVN_CTYPE_ALPHA (SVN_CTYPE_LOWER | SVN_CTYPE_UPPER)
/** ASCII letter or decimal digit */
#define SVN_CTYPE_ALNUM (SVN_CTYPE_ALPHA | SVN_CTYPE_DIGIT)
/** ASCII hexadecimal digit */
#define SVN_CTYPE_XDIGIT (SVN_CTYPE_DIGIT | SVN_CTYPE_XALPHA)
/** Printable ASCII except space */
#define SVN_CTYPE_GRAPH (SVN_CTYPE_PUNCT | SVN_CTYPE_ALNUM)
/** All printable ASCII */
#define SVN_CTYPE_PRINT (SVN_CTYPE_GRAPH | SVN_CTYPE_SPACE)
/** Check if @a c is an ASCII control character. */
#define svn_ctype_iscntrl(c) svn_ctype_test((c), SVN_CTYPE_CNTRL)
/** Check if @a c is an ASCII whitespace character. */
#define svn_ctype_isspace(c) svn_ctype_test((c), SVN_CTYPE_SPACE)
/** Check if @a c is an ASCII digit. */
#define svn_ctype_isdigit(c) svn_ctype_test((c), SVN_CTYPE_DIGIT)
/** Check if @a c is an ASCII uppercase letter. */
#define svn_ctype_isupper(c) svn_ctype_test((c), SVN_CTYPE_UPPER)
/** Check if @a c is an ASCII lowercase letter. */
#define svn_ctype_islower(c) svn_ctype_test((c), SVN_CTYPE_LOWER)
/** Check if @a c is an ASCII punctuation mark. */
#define svn_ctype_ispunct(c) svn_ctype_test((c), SVN_CTYPE_PUNCT)
/** Check if @a c is an ASCII character. */
#define svn_ctype_isascii(c) svn_ctype_test((c), SVN_CTYPE_ASCII)
/** Check if @a c is an ASCII letter. */
#define svn_ctype_isalpha(c) svn_ctype_test((c), SVN_CTYPE_ALPHA)
/** Check if @a c is an ASCII letter or decimal digit. */
#define svn_ctype_isalnum(c) svn_ctype_test((c), SVN_CTYPE_ALNUM)
/** Check if @a c is an ASCII hexadecimal digit. */
#define svn_ctype_isxdigit(c) svn_ctype_test((c), SVN_CTYPE_XDIGIT)
/** Check if @a c is an ASCII graphical (visible printable) character. */
#define svn_ctype_isgraph(c) svn_ctype_test((c), SVN_CTYPE_GRAPH)
/** Check if @a c is an ASCII printable character. */
#define svn_ctype_isprint(c) svn_ctype_test((c), SVN_CTYPE_PRINT)
/** @} */
/**
* @defgroup ctype_extra Extended character classification
* @{
*/
/* Basic extended character classes */
#define SVN_CTYPE_UTF8LEAD 0x0100 /**< UTF-8 multibyte lead byte */
#define SVN_CTYPE_UTF8CONT 0x0200 /**< UTF-8 multibyte non-lead byte */
/* ### TBD
#define SVN_CTYPE_XMLNAME 0x0400
#define SVN_CTYPE_URISAFE 0x0800
*/
/* Derived extended character classes */
/** Part of a UTF-8 multibyte character. */
#define SVN_CTYPE_UTF8MBC (SVN_CTYPE_UTF8LEAD | SVN_CTYPE_UTF8CONT)
/** All valid UTF-8 bytes. */
#define SVN_CTYPE_UTF8 (SVN_CTYPE_ASCII | SVN_CTYPE_UTF8MBC)
/** Check if @a c is a UTF-8 multibyte lead byte. */
#define svn_ctype_isutf8lead(c) svn_ctype_test((c), SVN_CTYPE_UTF8LEAD)
/** Check if @a c is a UTF-8 multibyte continuation (non-lead) byte. */
#define svn_ctype_isutf8cont(c) svn_ctype_test((c), SVN_CTYLE_UTF8CONT)
/** Check if @a c is part of a UTF-8 multibyte character. */
#define svn_ctype_isutf8mbc(c) svn_ctype_test((c), SVN_CTYPE_UTF8MBC)
/** Check if @a c is valid in UTF-8. */
#define svn_ctype_isutf8(c) svn_ctype_test((c), SVN_CTYPE_UTF8)
/** @} */
/**
* @defgroup ctype_ascii ASCII character value constants
* @{
*/
#define SVN_CTYPE_ASCII_MINUS 45 /**< ASCII value of '-' */
#define SVN_CTYPE_ASCII_DOT 46 /**< ASCII value of '.' */
#define SVN_CTYPE_ASCII_COLON 58 /**< ASCII value of ':' */
#define SVN_CTYPE_ASCII_UNDERSCORE 95 /**< ASCII value of '_' */
#define SVN_CTYPE_ASCII_TAB 9 /**< ASCII value of a tab */
#define SVN_CTYPE_ASCII_LINEFEED 10 /**< ASCII value of a line feed */
#define SVN_CTYPE_ASCII_CARRIAGERETURN 13
/**< ASCII value of a carriage return */
#define SVN_CTYPE_ASCII_DELETE 127
/**< ASCII value of a delete character */
/** @} */
/**
* @defgroup ctype_case ASCII-subset case folding
* @{
*/
/**
* Compare two characters @a a and @a b, treating case-equivalent
* unaccented Latin (ASCII subset) letters as equal.
*
* Returns in integer greater than, equal to, or less than 0,
* according to whether @a a is considered greater than, equal to,
* or less than @a b.
*
* @since New in 1.5.
*/
int
svn_ctype_casecmp(int a,
int b);
/** @} */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* SVN_CTYPE_H */
|