]>
Commit | Line | Data |
---|---|---|
f38b84ea | 1 | /* |
e0edde6f | 2 | * Copyright (c) 2009, 2010 Nicira, Inc. |
f38b84ea BP |
3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | * you may not use this file except in compliance with the License. | |
6 | * You may obtain a copy of the License at: | |
7 | * | |
8 | * http://www.apache.org/licenses/LICENSE-2.0 | |
9 | * | |
10 | * Unless required by applicable law or agreed to in writing, software | |
11 | * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | * See the License for the specific language governing permissions and | |
14 | * limitations under the License. | |
15 | */ | |
16 | ||
17 | #ifndef UNICODE_H | |
18 | #define UNICODE_H 1 | |
19 | ||
20 | #include <stdbool.h> | |
bd76d25d BP |
21 | #include <stddef.h> |
22 | #include "compiler.h" | |
f38b84ea BP |
23 | |
24 | /* Returns true if 'c' is a Unicode code point, otherwise false. */ | |
25 | static inline bool | |
26 | uc_is_code_point(int c) | |
27 | { | |
28 | return c >= 0 && c <= 0x10ffff; | |
29 | } | |
30 | ||
31 | /* Returns true if 'c' is a Unicode code point for a leading surrogate. */ | |
32 | static inline bool | |
33 | uc_is_leading_surrogate(int c) | |
34 | { | |
35 | return c >= 0xd800 && c <= 0xdbff; | |
36 | } | |
37 | ||
38 | /* Returns true if 'c' is a Unicode code point for a trailing surrogate. */ | |
39 | static inline bool | |
40 | uc_is_trailing_surrogate(int c) | |
41 | { | |
42 | return c >= 0xdc00 && c <= 0xdfff; | |
43 | } | |
44 | ||
45 | /* Returns true if 'c' is a Unicode code point for a leading or trailing | |
46 | * surrogate. */ | |
47 | static inline bool | |
48 | uc_is_surrogate(int c) | |
49 | { | |
50 | return c >= 0xd800 && c <= 0xdfff; | |
51 | } | |
52 | ||
53 | int utf16_decode_surrogate_pair(int leading, int trailing); | |
54 | ||
bd76d25d BP |
55 | size_t utf8_length(const char *); |
56 | char *utf8_validate(const char *, size_t *lengthp) WARN_UNUSED_RESULT; | |
57 | ||
f38b84ea | 58 | #endif /* unicode.h */ |