1 /* 2 * The internal definitions 3 * 4 * Copyright (C) 2008-2021, Joachim Metz <joachim.metz@gmail.com> 5 * 6 * Refer to AUTHORS for acknowledgements. 7 * 8 * This program is free software: you can redistribute it and/or modify 9 * it under the terms of the GNU Lesser General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public License 19 * along with this program. If not, see <https://www.gnu.org/licenses/>. 20 */ 21 22 #if !defined( _LIBUNA_INTERNAL_DEFINITIONS_H ) 23 #define _LIBUNA_INTERNAL_DEFINITIONS_H 24 25 #include <common.h> 26 27 /* Define HAVE_LOCAL_LIBUNA for local use of libuna 28 */ 29 #if !defined( HAVE_LOCAL_LIBUNA ) 30 #include <libuna/definitions.h> 31 32 /* The definitions in <libuna/definitions.h> are copied here 33 * for local use of libuna 34 */ 35 #else 36 #include <byte_stream.h> 37 38 #define LIBUNA_VERSION 20210801 39 40 /* The libuna version string 41 */ 42 #define LIBUNA_VERSION_STRING "20210801" 43 44 /* The endian definitions 45 */ 46 #define LIBUNA_ENDIAN_BIG _BYTE_STREAM_ENDIAN_BIG 47 #define LIBUNA_ENDIAN_LITTLE _BYTE_STREAM_ENDIAN_LITTLE 48 49 /* The codepage definitions 50 */ 51 enum LIBUNA_CODEPAGES 52 { 53 LIBUNA_CODEPAGE_ASCII = 20127, 54 55 LIBUNA_CODEPAGE_ISO_8859_1 = 28591, 56 LIBUNA_CODEPAGE_ISO_8859_2 = 28592, 57 LIBUNA_CODEPAGE_ISO_8859_3 = 28593, 58 LIBUNA_CODEPAGE_ISO_8859_4 = 28594, 59 LIBUNA_CODEPAGE_ISO_8859_5 = 28595, 60 LIBUNA_CODEPAGE_ISO_8859_6 = 28596, 61 LIBUNA_CODEPAGE_ISO_8859_7 = 28597, 62 LIBUNA_CODEPAGE_ISO_8859_8 = 28598, 63 LIBUNA_CODEPAGE_ISO_8859_9 = 28599, 64 LIBUNA_CODEPAGE_ISO_8859_10 = 28600, 65 LIBUNA_CODEPAGE_ISO_8859_11 = 28601, 66 LIBUNA_CODEPAGE_ISO_8859_13 = 28603, 67 LIBUNA_CODEPAGE_ISO_8859_14 = 28604, 68 LIBUNA_CODEPAGE_ISO_8859_15 = 28605, 69 LIBUNA_CODEPAGE_ISO_8859_16 = 28606, 70 71 LIBUNA_CODEPAGE_KOI8_R = 20866, 72 LIBUNA_CODEPAGE_KOI8_U = 21866, 73 74 LIBUNA_CODEPAGE_OEM_437 = 437, 75 LIBUNA_CODEPAGE_OEM_720 = 720, 76 LIBUNA_CODEPAGE_OEM_737 = 737, 77 LIBUNA_CODEPAGE_OEM_775 = 775, 78 LIBUNA_CODEPAGE_OEM_850 = 850, 79 LIBUNA_CODEPAGE_OEM_852 = 852, 80 LIBUNA_CODEPAGE_OEM_855 = 855, 81 LIBUNA_CODEPAGE_OEM_857 = 857, 82 LIBUNA_CODEPAGE_OEM_858 = 858, 83 LIBUNA_CODEPAGE_OEM_862 = 862, 84 LIBUNA_CODEPAGE_OEM_866 = 866, 85 86 LIBUNA_CODEPAGE_UTF16_LITTLE_ENDIAN = 1200, 87 LIBUNA_CODEPAGE_UTF16_BIG_ENDIAN = 1201, 88 LIBUNA_CODEPAGE_UTF32_LITTLE_ENDIAN = 12000, 89 LIBUNA_CODEPAGE_UTF32_BIG_ENDIAN = 12001, 90 LIBUNA_CODEPAGE_UTF7 = 65000, 91 LIBUNA_CODEPAGE_UTF8 = 65001, 92 LIBUNA_CODEPAGE_SCSU = 65002, 93 94 LIBUNA_CODEPAGE_WINDOWS_874 = 874, 95 LIBUNA_CODEPAGE_WINDOWS_932 = 932, 96 LIBUNA_CODEPAGE_WINDOWS_936 = 936, 97 LIBUNA_CODEPAGE_WINDOWS_949 = 949, 98 LIBUNA_CODEPAGE_WINDOWS_950 = 950, 99 LIBUNA_CODEPAGE_WINDOWS_1250 = 1250, 100 LIBUNA_CODEPAGE_WINDOWS_1251 = 1251, 101 LIBUNA_CODEPAGE_WINDOWS_1252 = 1252, 102 LIBUNA_CODEPAGE_WINDOWS_1253 = 1253, 103 LIBUNA_CODEPAGE_WINDOWS_1254 = 1254, 104 LIBUNA_CODEPAGE_WINDOWS_1255 = 1255, 105 LIBUNA_CODEPAGE_WINDOWS_1256 = 1256, 106 LIBUNA_CODEPAGE_WINDOWS_1257 = 1257, 107 LIBUNA_CODEPAGE_WINDOWS_1258 = 1258 108 }; 109 110 #define LIBUNA_CODEPAGE_US_ASCII LIBUNA_CODEPAGE_ASCII 111 112 #define LIBUNA_CODEPAGE_ISO_WESTERN_EUROPEAN LIBUNA_CODEPAGE_ISO_8859_1 113 #define LIBUNA_CODEPAGE_ISO_CENTRAL_EUROPEAN LIBUNA_CODEPAGE_ISO_8859_2 114 #define LIBUNA_CODEPAGE_ISO_SOUTH_EUROPEAN LIBUNA_CODEPAGE_ISO_8859_3 115 #define LIBUNA_CODEPAGE_ISO_NORTH_EUROPEAN LIBUNA_CODEPAGE_ISO_8859_4 116 #define LIBUNA_CODEPAGE_ISO_CYRILLIC LIBUNA_CODEPAGE_ISO_8859_5 117 #define LIBUNA_CODEPAGE_ISO_ARABIC LIBUNA_CODEPAGE_ISO_8859_6 118 #define LIBUNA_CODEPAGE_ISO_GREEK LIBUNA_CODEPAGE_ISO_8859_7 119 #define LIBUNA_CODEPAGE_ISO_HEBREW LIBUNA_CODEPAGE_ISO_8859_8 120 #define LIBUNA_CODEPAGE_ISO_TURKISH LIBUNA_CODEPAGE_ISO_8859_9 121 #define LIBUNA_CODEPAGE_ISO_NORDIC LIBUNA_CODEPAGE_ISO_8859_10 122 #define LIBUNA_CODEPAGE_ISO_THAI LIBUNA_CODEPAGE_ISO_8859_11 123 #define LIBUNA_CODEPAGE_ISO_BALTIC LIBUNA_CODEPAGE_ISO_8859_13 124 #define LIBUNA_CODEPAGE_ISO_CELTIC LIBUNA_CODEPAGE_ISO_8859_14 125 126 #define LIBUNA_CODEPAGE_ISO_LATIN_1 LIBUNA_CODEPAGE_ISO_8859_1 127 #define LIBUNA_CODEPAGE_ISO_LATIN_2 LIBUNA_CODEPAGE_ISO_8859_2 128 #define LIBUNA_CODEPAGE_ISO_LATIN_3 LIBUNA_CODEPAGE_ISO_8859_3 129 #define LIBUNA_CODEPAGE_ISO_LATIN_4 LIBUNA_CODEPAGE_ISO_8859_4 130 #define LIBUNA_CODEPAGE_ISO_LATIN_5 LIBUNA_CODEPAGE_ISO_8859_9 131 #define LIBUNA_CODEPAGE_ISO_LATIN_6 LIBUNA_CODEPAGE_ISO_8859_10 132 #define LIBUNA_CODEPAGE_ISO_LATIN_7 LIBUNA_CODEPAGE_ISO_8859_13 133 #define LIBUNA_CODEPAGE_ISO_LATIN_8 LIBUNA_CODEPAGE_ISO_8859_14 134 #define LIBUNA_CODEPAGE_ISO_LATIN_9 LIBUNA_CODEPAGE_ISO_8859_15 135 #define LIBUNA_CODEPAGE_ISO_LATIN_10 LIBUNA_CODEPAGE_ISO_8859_16 136 137 #define LIBUNA_CODEPAGE_KOI8_RUSSIAN LIBUNA_CODEPAGE_KOI8_R 138 #define LIBUNA_CODEPAGE_KOI8_UKRAINIAN LIBUNA_CODEPAGE_KOI8_U 139 140 #define LIBUNA_CODEPAGE_OEM_874 LIBUNA_CODEPAGE_WINDOWS_874 141 #define LIBUNA_CODEPAGE_OEM_932 LIBUNA_CODEPAGE_WINDOWS_932 142 #define LIBUNA_CODEPAGE_OEM_936 LIBUNA_CODEPAGE_WINDOWS_936 143 #define LIBUNA_CODEPAGE_OEM_949 LIBUNA_CODEPAGE_WINDOWS_949 144 #define LIBUNA_CODEPAGE_OEM_950 LIBUNA_CODEPAGE_WINDOWS_950 145 #define LIBUNA_CODEPAGE_OEM_1258 LIBUNA_CODEPAGE_WINDOWS_1258 146 147 #define LIBUNA_CODEPAGE_OEM_US_ENGLISH LIBUNA_CODEPAGE_OEM_437 148 #define LIBUNA_CODEPAGE_OEM_ARABIC LIBUNA_CODEPAGE_OEM_720 149 #define LIBUNA_CODEPAGE_OEM_GREEK LIBUNA_CODEPAGE_OEM_737 150 #define LIBUNA_CODEPAGE_OEM_BALTIC LIBUNA_CODEPAGE_OEM_775 151 #define LIBUNA_CODEPAGE_OEM_LATIN_1 LIBUNA_CODEPAGE_OEM_850 152 #define LIBUNA_CODEPAGE_OEM_LATIN_2 LIBUNA_CODEPAGE_OEM_852 153 #define LIBUNA_CODEPAGE_OEM_CYRILLIC LIBUNA_CODEPAGE_OEM_855 154 #define LIBUNA_CODEPAGE_OEM_TURKISH LIBUNA_CODEPAGE_OEM_857 155 #define LIBUNA_CODEPAGE_OEM_LATIN_1_WITH_EURO LIBUNA_CODEPAGE_OEM_858 156 #define LIBUNA_CODEPAGE_OEM_HEBREW LIBUNA_CODEPAGE_OEM_862 157 #define LIBUNA_CODEPAGE_OEM_RUSSIAN LIBUNA_CODEPAGE_OEM_866 158 #define LIBUNA_CODEPAGE_OEM_THAI LIBUNA_CODEPAGE_WINDOWS_874 159 #define LIBUNA_CODEPAGE_OEM_JAPANESE LIBUNA_CODEPAGE_WINDOWS_932 160 #define LIBUNA_CODEPAGE_OEM_CHINESE_SIMPLIFIED LIBUNA_CODEPAGE_WINDOWS_936 161 #define LIBUNA_CODEPAGE_OEM_KOREAN LIBUNA_CODEPAGE_WINDOWS_949 162 #define LIBUNA_CODEPAGE_OEM_CHINESE_TRADITIONAL LIBUNA_CODEPAGE_WINDOWS_950 163 #define LIBUNA_CODEPAGE_OEM_VIETNAMESE LIBUNA_CODEPAGE_WINDOWS_1258 164 165 #define LIBUNA_CODEPAGE_WINDOWS_THAI LIBUNA_CODEPAGE_WINDOWS_874 166 #define LIBUNA_CODEPAGE_WINDOWS_JAPANESE LIBUNA_CODEPAGE_WINDOWS_932 167 #define LIBUNA_CODEPAGE_WINDOWS_CHINESE_SIMPLIFIED LIBUNA_CODEPAGE_WINDOWS_936 168 #define LIBUNA_CODEPAGE_WINDOWS_KOREAN LIBUNA_CODEPAGE_WINDOWS_949 169 #define LIBUNA_CODEPAGE_WINDOWS_CHINESE_TRADITIONAL LIBUNA_CODEPAGE_WINDOWS_950 170 #define LIBUNA_CODEPAGE_WINDOWS_CENTRAL_EUROPEAN LIBUNA_CODEPAGE_WINDOWS_1250 171 #define LIBUNA_CODEPAGE_WINDOWS_CYRILLIC LIBUNA_CODEPAGE_WINDOWS_1251 172 #define LIBUNA_CODEPAGE_WINDOWS_WESTERN_EUROPEAN LIBUNA_CODEPAGE_WINDOWS_1252 173 #define LIBUNA_CODEPAGE_WINDOWS_GREEK LIBUNA_CODEPAGE_WINDOWS_1253 174 #define LIBUNA_CODEPAGE_WINDOWS_TURKISH LIBUNA_CODEPAGE_WINDOWS_1254 175 #define LIBUNA_CODEPAGE_WINDOWS_HEBREW LIBUNA_CODEPAGE_WINDOWS_1255 176 #define LIBUNA_CODEPAGE_WINDOWS_ARABIC LIBUNA_CODEPAGE_WINDOWS_1256 177 #define LIBUNA_CODEPAGE_WINDOWS_BALTIC LIBUNA_CODEPAGE_WINDOWS_1257 178 #define LIBUNA_CODEPAGE_WINDOWS_VIETNAMESE LIBUNA_CODEPAGE_WINDOWS_1258 179 180 #define LIBUNA_CODEPAGE_SHIFT_JIS LIBUNA_CODEPAGE_WINDOWS_932 181 #define LIBUNA_CODEPAGE_GB2312 LIBUNA_CODEPAGE_WINDOWS_936 182 183 /* The comparison function definitions 184 */ 185 enum LIBUNA_COMPARE_DEFINITIONS 186 { 187 /* The first string is less than the second string 188 */ 189 LIBUNA_COMPARE_LESS, 190 191 /* The first and second strings are equal 192 */ 193 LIBUNA_COMPARE_EQUAL, 194 195 /* The first string is greater than the second string 196 */ 197 LIBUNA_COMPARE_GREATER 198 }; 199 200 /* Base16 variants 201 * Byte: 202 * 0 - 1 Character limit 203 * 2 - 3 Reserved 204 * 4 Case (0 not supported) 205 * 5 - 6 Reserved 206 * 7 String encoding (0 is byte stream) 207 */ 208 enum LIBUNA_BASE16_VARIANTS 209 { 210 LIBUNA_BASE16_VARIANT_CASE_LOWER = 0x00010000UL, 211 LIBUNA_BASE16_VARIANT_CASE_MIXED = 0x00020000UL, 212 LIBUNA_BASE16_VARIANT_CASE_UPPER = 0x00030000UL, 213 214 LIBUNA_BASE16_VARIANT_CHARACTER_LIMIT_NONE = 0x00000000UL, 215 LIBUNA_BASE16_VARIANT_CHARACTER_LIMIT_64 = 0x00000040UL, 216 LIBUNA_BASE16_VARIANT_CHARACTER_LIMIT_76 = 0x0000004cUL, 217 218 LIBUNA_BASE16_VARIANT_ENCODING_UTF16_BIG_ENDIAN = 0x10000000UL, 219 LIBUNA_BASE16_VARIANT_ENCODING_UTF16_LITTLE_ENDIAN = 0x20000000UL, 220 LIBUNA_BASE16_VARIANT_ENCODING_UTF32_BIG_ENDIAN = 0x30000000UL, 221 LIBUNA_BASE16_VARIANT_ENCODING_UTF32_LITTLE_ENDIAN = 0x40000000UL 222 }; 223 224 #define LIBUNA_BASE16_VARIANT_ENCODING_BYTE_STREAM 0 225 226 #define LIBUNA_BASE16_VARIANT_RFC4648 \ 227 LIBUNA_BASE16_VARIANT_CASE_MIXED | LIBUNA_BASE16_VARIANT_CHARACTER_LIMIT_NONE 228 229 /* Base16 processing flags 230 */ 231 enum LIBUNA_BASE16_FLAGS 232 { 233 LIBUNA_BASE16_FLAG_STRIP_WHITESPACE = 0x01 234 }; 235 236 /* Base32 variants 237 * Byte: 238 * 0 - 1 Character limit 239 * 2 - 3 Reserved 240 * 4 Alphabet type (0 not supported) 241 * 5 Reserved 242 * 6 Padding (0 not supported) 243 * 7 String encoding (0 is byte stream) 244 */ 245 enum LIBUNA_BASE32_VARIANTS 246 { 247 LIBUNA_BASE32_VARIANT_ALPHABET_NORMAL = 0x00010000UL, 248 LIBUNA_BASE32_VARIANT_ALPHABET_HEX = 0x00020000UL, 249 250 LIBUNA_BASE32_VARIANT_CHARACTER_LIMIT_NONE = 0x00000000UL, 251 LIBUNA_BASE32_VARIANT_CHARACTER_LIMIT_64 = 0x00000040UL, 252 253 LIBUNA_BASE32_VARIANT_PADDING_NONE = 0x01000000UL, 254 LIBUNA_BASE32_VARIANT_PADDING_OPTIONAL = 0x02000000UL, 255 LIBUNA_BASE32_VARIANT_PADDING_REQUIRED = 0x03000000UL, 256 257 LIBUNA_BASE32_VARIANT_ENCODING_UTF16_BIG_ENDIAN = 0x10000000UL, 258 LIBUNA_BASE32_VARIANT_ENCODING_UTF16_LITTLE_ENDIAN = 0x20000000UL, 259 LIBUNA_BASE32_VARIANT_ENCODING_UTF32_BIG_ENDIAN = 0x30000000UL, 260 LIBUNA_BASE32_VARIANT_ENCODING_UTF32_LITTLE_ENDIAN = 0x40000000UL 261 }; 262 263 #define LIBUNA_BASE32_VARIANT_RFC4648 \ 264 LIBUNA_BASE32_VARIANT_ALPHABET_NORMAL | LIBUNA_BASE32_VARIANT_CHARACTER_LIMIT_NONE | LIBUNA_BASE32_VARIANT_PADDING_REQUIRED 265 266 #define LIBUNA_BASE32_VARIANT_HEX \ 267 LIBUNA_BASE32_VARIANT_ALPHABET_HEX | LIBUNA_BASE32_VARIANT_CHARACTER_LIMIT_NONE | LIBUNA_BASE32_VARIANT_PADDING_REQUIRED 268 269 /* Base32 processing flags 270 */ 271 enum LIBUNA_BASE32_FLAGS 272 { 273 LIBUNA_BASE32_FLAG_STRIP_WHITESPACE = 0x01 274 }; 275 276 /* Base64 variants 277 * Byte: 278 * 0 - 1 Character limit 279 * 2 - 3 Reserved 280 * 4 Alphabet type (0 not supported) 281 * 5 Reserved 282 * 6 Padding (0 not supported) 283 * 7 String encoding (0 is byte stream) 284 */ 285 enum LIBUNA_BASE64_VARIANTS 286 { 287 LIBUNA_BASE64_VARIANT_ALPHABET_NORMAL = 0x00010000UL, 288 LIBUNA_BASE64_VARIANT_ALPHABET_URL = 0x00020000UL, 289 290 LIBUNA_BASE64_VARIANT_CHARACTER_LIMIT_NONE = 0x00000000UL, 291 LIBUNA_BASE64_VARIANT_CHARACTER_LIMIT_64 = 0x00000040UL, 292 LIBUNA_BASE64_VARIANT_CHARACTER_LIMIT_76 = 0x0000004cUL, 293 294 /* No padding */ 295 LIBUNA_BASE64_VARIANT_PADDING_NONE = 0x01000000UL, 296 /* Padding is optional */ 297 LIBUNA_BASE64_VARIANT_PADDING_OPTIONAL = 0x02000000UL, 298 /* Padding is required */ 299 LIBUNA_BASE64_VARIANT_PADDING_REQUIRED = 0x03000000UL, 300 /* Invalid base64 characters are considered padding */ 301 LIBUNA_BASE64_VARIANT_PADDING_INVALID = 0x04000000UL, 302 303 LIBUNA_BASE64_VARIANT_ENCODING_UTF16_BIG_ENDIAN = 0x10000000UL, 304 LIBUNA_BASE64_VARIANT_ENCODING_UTF16_LITTLE_ENDIAN = 0x20000000UL, 305 LIBUNA_BASE64_VARIANT_ENCODING_UTF32_BIG_ENDIAN = 0x30000000UL, 306 LIBUNA_BASE64_VARIANT_ENCODING_UTF32_LITTLE_ENDIAN = 0x40000000UL 307 }; 308 309 #define LIBUNA_BASE64_VARIANT_RFC1421 \ 310 LIBUNA_BASE64_VARIANT_ALPHABET_NORMAL | LIBUNA_BASE64_VARIANT_CHARACTER_LIMIT_64 | LIBUNA_BASE64_VARIANT_PADDING_REQUIRED 311 312 #define LIBUNA_BASE64_VARIANT_PEM \ 313 LIBUNA_BASE64_VARIANT_RFC1421 314 315 #define LIBUNA_BASE64_VARIANT_RFC1642 \ 316 LIBUNA_BASE64_VARIANT_ALPHABET_NORMAL | LIBUNA_BASE64_VARIANT_CHARACTER_LIMIT_NONE | LIBUNA_BASE64_VARIANT_PADDING_NONE 317 318 #define LIBUNA_BASE64_VARIANT_UTF7 \ 319 LIBUNA_BASE64_VARIANT_ALPHABET_NORMAL | LIBUNA_BASE64_VARIANT_CHARACTER_LIMIT_NONE | LIBUNA_BASE64_VARIANT_PADDING_INVALID 320 321 #define LIBUNA_BASE64_VARIANT_RFC2045 \ 322 LIBUNA_BASE64_VARIANT_ALPHABET_NORMAL | LIBUNA_BASE64_VARIANT_CHARACTER_LIMIT_76 | LIBUNA_BASE64_VARIANT_PADDING_REQUIRED 323 324 #define LIBUNA_BASE64_VARIANT_MIME \ 325 LIBUNA_BASE64_VARIANT_RFC2045 326 327 #define LIBUNA_BASE64_VARIANT_URL \ 328 LIBUNA_BASE64_VARIANT_ALPHABET_URL | LIBUNA_BASE64_VARIANT_CHARACTER_LIMIT_NONE | LIBUNA_BASE64_VARIANT_PADDING_OPTIONAL 329 330 /* TODO 331 #define LIBUNA_BASE64_VARIANT_RFC3548 332 #define LIBUNA_BASE64_VARIANT_RFC4648 333 */ 334 335 /* Base64 processing flags 336 */ 337 enum LIBUNA_BASE64_FLAGS 338 { 339 LIBUNA_BASE64_FLAG_STRIP_WHITESPACE = 0x01 340 }; 341 342 #endif /* !defined( HAVE_LOCAL_LIBUNA ) */ 343 344 #define LIBUNA_BASE32_VARIANT_ENCODING_BYTE_STREAM 0 345 #define LIBUNA_BASE64_VARIANT_ENCODING_BYTE_STREAM 0 346 347 /* Character case definitions 348 */ 349 enum LIBUNA_CASE 350 { 351 LIBUNA_CASE_LOWER = (uint8_t) 'l', 352 LIBUNA_CASE_MIXED = (uint8_t) 'm', 353 LIBUNA_CASE_UPPER = (uint8_t) 'u' 354 }; 355 356 /* Strip mode definitions 357 */ 358 enum LIBUNA_STRIP_MODES 359 { 360 LIBUNA_STRIP_MODE_LEADING_WHITESPACE, 361 LIBUNA_STRIP_MODE_NON_WHITESPACE, 362 LIBUNA_STRIP_MODE_TRAILING_WHITESPACE, 363 LIBUNA_STRIP_MODE_INVALID_CHARACTER 364 }; 365 366 /* Character definitions 367 */ 368 #define LIBUNA_UNICODE_REPLACEMENT_CHARACTER 0x0000fffdUL 369 #define LIBUNA_UNICODE_BASIC_MULTILINGUAL_PLANE_MAX 0x0000ffffUL 370 #define LIBUNA_UNICODE_SURROGATE_LOW_RANGE_START 0x0000dc00UL 371 #define LIBUNA_UNICODE_SURROGATE_LOW_RANGE_END 0x0000dfffUL 372 #define LIBUNA_UNICODE_SURROGATE_HIGH_RANGE_START 0x0000d800UL 373 #define LIBUNA_UNICODE_SURROGATE_HIGH_RANGE_END 0x0000dbffUL 374 #define LIBUNA_UNICODE_CHARACTER_MAX 0x0010ffffUL 375 376 #define LIBUNA_UTF16_CHARACTER_MAX 0x0010ffffUL 377 #define LIBUNA_UTF32_CHARACTER_MAX 0x7fffffffUL 378 379 #define LIBUNA_ASCII_REPLACEMENT_CHARACTER 0x1a 380 381 /* UTF-7 definitions 382 */ 383 #define LIBUNA_UTF7_IS_BASE64_ENCODED 0x80000000UL 384 385 #endif /* !defined( _LIBUNA_INTERNAL_DEFINITIONS_H ) */ 386 387