ICU 54.1 54.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ubrk.h
Go to the documentation of this file.
1 /*
2 ******************************************************************************
3 * Copyright (C) 1996-2014, International Business Machines Corporation and others.
4 * All Rights Reserved.
5 ******************************************************************************
6 */
7
8 #ifndef UBRK_H
9 #define UBRK_H
10
11 #include "unicode/utypes.h"
12 #include "unicode/uloc.h"
13 #include "unicode/utext.h"
14 #include "unicode/localpointer.h"
15
20 #ifndef UBRK_TYPEDEF_UBREAK_ITERATOR
21 # define UBRK_TYPEDEF_UBREAK_ITERATOR
22
26 typedef struct UBreakIterator UBreakIterator;
27 #endif
28
29 #if !UCONFIG_NO_BREAK_ITERATION
30
31 #include "unicode/parseerr.h"
32
87 typedef enum UBreakIteratorType {
89 UBRK_CHARACTER = 0,
91 UBRK_WORD = 1,
93 UBRK_LINE = 2,
95 UBRK_SENTENCE = 3,
96
97 #ifndef U_HIDE_DEPRECATED_API
98
106 UBRK_TITLE = 4,
107 #endif /* U_HIDE_DEPRECATED_API */
108 UBRK_COUNT = 5
109 } UBreakIteratorType;
110
114 #define UBRK_DONE ((int32_t) -1)
115
116
125 typedef enum UWordBreak {
128 UBRK_WORD_NONE = 0,
130 UBRK_WORD_NONE_LIMIT = 100,
132 UBRK_WORD_NUMBER = 100,
134 UBRK_WORD_NUMBER_LIMIT = 200,
137 UBRK_WORD_LETTER = 200,
139 UBRK_WORD_LETTER_LIMIT = 300,
141 UBRK_WORD_KANA = 300,
143 UBRK_WORD_KANA_LIMIT = 400,
145 UBRK_WORD_IDEO = 400,
147 UBRK_WORD_IDEO_LIMIT = 500
148 } UWordBreak;
149
158 typedef enum ULineBreakTag {
161 UBRK_LINE_SOFT = 0,
163 UBRK_LINE_SOFT_LIMIT = 100,
165 UBRK_LINE_HARD = 100,
167 UBRK_LINE_HARD_LIMIT = 200
168 } ULineBreakTag;
169
170
171
180 typedef enum USentenceBreakTag {
185 UBRK_SENTENCE_TERM = 0,
187 UBRK_SENTENCE_TERM_LIMIT = 100,
192 UBRK_SENTENCE_SEP = 100,
194 UBRK_SENTENCE_SEP_LIMIT = 200
196 } USentenceBreakTag;
197
198
213 U_STABLE UBreakIterator* U_EXPORT2
214 ubrk_open(UBreakIteratorType type,
215 const char *locale,
216 const UChar *text,
217 int32_t textLength,
218 UErrorCode *status);
219
235 U_STABLE UBreakIterator* U_EXPORT2
236 ubrk_openRules(const UChar *rules,
237 int32_t rulesLength,
238 const UChar *text,
239 int32_t textLength,
240 UParseError *parseErr,
241 UErrorCode *status);
242
261 U_STABLE UBreakIterator * U_EXPORT2
262 ubrk_safeClone(
263 const UBreakIterator *bi,
264 void *stackBuffer,
265 int32_t *pBufferSize,
266 UErrorCode *status);
267
268 #ifndef U_HIDE_DEPRECATED_API
269
274 #define U_BRK_SAFECLONE_BUFFERSIZE 1
275
276 #endif /* U_HIDE_DEPRECATED_API */
277
284 U_STABLE void U_EXPORT2
285 ubrk_close(UBreakIterator *bi);
286
287 #if U_SHOW_CPLUSPLUS_API
288
289 U_NAMESPACE_BEGIN
290
300 U_DEFINE_LOCAL_OPEN_POINTER(LocalUBreakIteratorPointer, UBreakIterator, ubrk_close);
301
302 U_NAMESPACE_END
303
304 #endif
305
314 U_STABLE void U_EXPORT2
315 ubrk_setText(UBreakIterator* bi,
316 const UChar* text,
317 int32_t textLength,
318 UErrorCode* status);
319
320
338 U_STABLE void U_EXPORT2
339 ubrk_setUText(UBreakIterator* bi,
340 UText* text,
341 UErrorCode* status);
342
343
344
353 U_STABLE int32_t U_EXPORT2
354 ubrk_current(const UBreakIterator *bi);
355
365 U_STABLE int32_t U_EXPORT2
366 ubrk_next(UBreakIterator *bi);
367
377 U_STABLE int32_t U_EXPORT2
378 ubrk_previous(UBreakIterator *bi);
379
387 U_STABLE int32_t U_EXPORT2
388 ubrk_first(UBreakIterator *bi);
389
399 U_STABLE int32_t U_EXPORT2
400 ubrk_last(UBreakIterator *bi);
401
411 U_STABLE int32_t U_EXPORT2
412 ubrk_preceding(UBreakIterator *bi,
413 int32_t offset);
414
424 U_STABLE int32_t U_EXPORT2
425 ubrk_following(UBreakIterator *bi,
426 int32_t offset);
427
437 U_STABLE const char* U_EXPORT2
438 ubrk_getAvailable(int32_t index);
439
448 U_STABLE int32_t U_EXPORT2
449 ubrk_countAvailable(void);
450
451
461 U_STABLE UBool U_EXPORT2
462 ubrk_isBoundary(UBreakIterator *bi, int32_t offset);
463
473 U_STABLE int32_t U_EXPORT2
474 ubrk_getRuleStatus(UBreakIterator *bi);
475
493 U_STABLE int32_t U_EXPORT2
494 ubrk_getRuleStatusVec(UBreakIterator *bi, int32_t *fillInVec, int32_t capacity, UErrorCode *status);
495
505 U_STABLE const char* U_EXPORT2
506 ubrk_getLocaleByType(const UBreakIterator *bi, ULocDataLocaleType type, UErrorCode* status);
507
533 U_STABLE void U_EXPORT2
534 ubrk_refreshUText(UBreakIterator *bi,
535 UText *text,
536 UErrorCode *status);
537
538 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */
539
540 #endif