Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/native/common/unicode/stringoptions.h
38827 views
1
// © 2017 and later: Unicode, Inc. and others.
2
// License & terms of use: http://www.unicode.org/copyright.html
3
4
// stringoptions.h
5
// created: 2017jun08 Markus W. Scherer
6
7
#ifndef __STRINGOPTIONS_H__
8
#define __STRINGOPTIONS_H__
9
10
#include "unicode/utypes.h"
11
12
/**
13
* \file
14
* \brief C API: Bit set option bit constants for various string and character processing functions.
15
*/
16
17
/**
18
* Option value for case folding: Use default mappings defined in CaseFolding.txt.
19
*
20
* @stable ICU 2.0
21
*/
22
#define U_FOLD_CASE_DEFAULT 0
23
24
/**
25
* Option value for case folding:
26
*
27
* Use the modified set of mappings provided in CaseFolding.txt to handle dotted I
28
* and dotless i appropriately for Turkic languages (tr, az).
29
*
30
* Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that
31
* are to be included for default mappings and
32
* excluded for the Turkic-specific mappings.
33
*
34
* Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that
35
* are to be excluded for default mappings and
36
* included for the Turkic-specific mappings.
37
*
38
* @stable ICU 2.0
39
*/
40
#define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
41
42
/**
43
* Titlecase the string as a whole rather than each word.
44
* (Titlecase only the character at index 0, possibly adjusted.)
45
* Option bits value for titlecasing APIs that take an options bit set.
46
*
47
* It is an error to specify multiple titlecasing iterator options together,
48
* including both an options bit and an explicit BreakIterator.
49
*
50
* @see U_TITLECASE_ADJUST_TO_CASED
51
* @stable ICU 60
52
*/
53
#define U_TITLECASE_WHOLE_STRING 0x20
54
55
/**
56
* Titlecase sentences rather than words.
57
* (Titlecase only the first character of each sentence, possibly adjusted.)
58
* Option bits value for titlecasing APIs that take an options bit set.
59
*
60
* It is an error to specify multiple titlecasing iterator options together,
61
* including both an options bit and an explicit BreakIterator.
62
*
63
* @see U_TITLECASE_ADJUST_TO_CASED
64
* @stable ICU 60
65
*/
66
#define U_TITLECASE_SENTENCES 0x40
67
68
/**
69
* Do not lowercase non-initial parts of words when titlecasing.
70
* Option bit for titlecasing APIs that take an options bit set.
71
*
72
* By default, titlecasing will titlecase the character at each
73
* (possibly adjusted) BreakIterator index and
74
* lowercase all other characters up to the next iterator index.
75
* With this option, the other characters will not be modified.
76
*
77
* @see U_TITLECASE_ADJUST_TO_CASED
78
* @see UnicodeString::toTitle
79
* @see CaseMap::toTitle
80
* @see ucasemap_setOptions
81
* @see ucasemap_toTitle
82
* @see ucasemap_utf8ToTitle
83
* @stable ICU 3.8
84
*/
85
#define U_TITLECASE_NO_LOWERCASE 0x100
86
87
/**
88
* Do not adjust the titlecasing BreakIterator indexes;
89
* titlecase exactly the characters at breaks from the iterator.
90
* Option bit for titlecasing APIs that take an options bit set.
91
*
92
* By default, titlecasing will take each break iterator index,
93
* adjust it to the next relevant character (see U_TITLECASE_ADJUST_TO_CASED),
94
* and titlecase that one.
95
*
96
* Other characters are lowercased.
97
*
98
* It is an error to specify multiple titlecasing adjustment options together.
99
*
100
* @see U_TITLECASE_ADJUST_TO_CASED
101
* @see U_TITLECASE_NO_LOWERCASE
102
* @see UnicodeString::toTitle
103
* @see CaseMap::toTitle
104
* @see ucasemap_setOptions
105
* @see ucasemap_toTitle
106
* @see ucasemap_utf8ToTitle
107
* @stable ICU 3.8
108
*/
109
#define U_TITLECASE_NO_BREAK_ADJUSTMENT 0x200
110
111
/**
112
* Adjust each titlecasing BreakIterator index to the next cased character.
113
* (See the Unicode Standard, chapter 3, Default Case Conversion, R3 toTitlecase(X).)
114
* Option bit for titlecasing APIs that take an options bit set.
115
*
116
* This used to be the default index adjustment in ICU.
117
* Since ICU 60, the default index adjustment is to the next character that is
118
* a letter, number, symbol, or private use code point.
119
* (Uncased modifier letters are skipped.)
120
* The difference in behavior is small for word titlecasing,
121
* but the new adjustment is much better for whole-string and sentence titlecasing:
122
* It yields "49ers" and "«丰(abc)»" instead of "49Ers" and "«丰(Abc)»".
123
*
124
* It is an error to specify multiple titlecasing adjustment options together.
125
*
126
* @see U_TITLECASE_NO_BREAK_ADJUSTMENT
127
* @stable ICU 60
128
*/
129
#define U_TITLECASE_ADJUST_TO_CASED 0x400
130
131
/**
132
* Option for string transformation functions to not first reset the Edits object.
133
* Used for example in some case-mapping and normalization functions.
134
*
135
* @see CaseMap
136
* @see Edits
137
* @see Normalizer2
138
* @stable ICU 60
139
*/
140
#define U_EDITS_NO_RESET 0x2000
141
142
/**
143
* Omit unchanged text when recording how source substrings
144
* relate to changed and unchanged result substrings.
145
* Used for example in some case-mapping and normalization functions.
146
*
147
* @see CaseMap
148
* @see Edits
149
* @see Normalizer2
150
* @stable ICU 60
151
*/
152
#define U_OMIT_UNCHANGED_TEXT 0x4000
153
154
/**
155
* Option bit for u_strCaseCompare, u_strcasecmp, unorm_compare, etc:
156
* Compare strings in code point order instead of code unit order.
157
* @stable ICU 2.2
158
*/
159
#define U_COMPARE_CODE_POINT_ORDER 0x8000
160
161
/**
162
* Option bit for unorm_compare:
163
* Perform case-insensitive comparison.
164
* @stable ICU 2.2
165
*/
166
#define U_COMPARE_IGNORE_CASE 0x10000
167
168
/**
169
* Option bit for unorm_compare:
170
* Both input strings are assumed to fulfill FCD conditions.
171
* @stable ICU 2.2
172
*/
173
#define UNORM_INPUT_IS_FCD 0x20000
174
175
// Related definitions elsewhere.
176
// Options that are not meaningful in the same functions
177
// can share the same bits.
178
//
179
// Public:
180
// unicode/unorm.h #define UNORM_COMPARE_NORM_OPTIONS_SHIFT 20
181
//
182
// Internal: (may change or be removed)
183
// ucase.h #define _STRCASECMP_OPTIONS_MASK 0xffff
184
// ucase.h #define _FOLD_CASE_OPTIONS_MASK 7
185
// ucasemap_imp.h #define U_TITLECASE_ITERATOR_MASK 0xe0
186
// ucasemap_imp.h #define U_TITLECASE_ADJUSTMENT_MASK 0x600
187
// ustr_imp.h #define _STRNCMP_STYLE 0x1000
188
// unormcmp.cpp #define _COMPARE_EQUIV 0x80000
189
190
#endif // __STRINGOPTIONS_H__
191
192