ICU 65.1 65.1

utext.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 *
6 * Copyright (C) 2004-2012, International Business Machines
7 * Corporation and others. All Rights Reserved.
8 *
9 *******************************************************************************
10 * file name: utext.h
11 * encoding: UTF-8
12 * tab size: 8 (not used)
13 * indentation:4
14 *
15 * created on: 2004oct06
16 * created by: Markus W. Scherer
17 */
18
19 #ifndef __UTEXT_H__
20 #define __UTEXT_H__
21
140 #include "unicode/utypes.h"
141 #include "unicode/uchar.h"
142 #if U_SHOW_CPLUSPLUS_API
143 #include "unicode/localpointer.h"
144 #include "unicode/rep.h"
145 #include "unicode/unistr.h"
146 #include "unicode/chariter.h"
147 #endif
148
149
150 U_CDECL_BEGIN
151
152 struct UText;
153 typedef struct UText UText;
156 /***************************************************************************************
157 *
158 * C Functions for creating UText wrappers around various kinds of text strings.
159 *
160 ****************************************************************************************/
161
162
183 U_STABLE UText * U_EXPORT2
184 utext_close(UText *ut);
185
186 #if U_SHOW_CPLUSPLUS_API
187
188 U_NAMESPACE_BEGIN
189
199 U_DEFINE_LOCAL_OPEN_POINTER(LocalUTextPointer, UText, utext_close);
200
201 U_NAMESPACE_END
202
203 #endif
204
226 U_STABLE UText * U_EXPORT2
227 utext_openUTF8(UText *ut, const char *s, int64_t length, UErrorCode *status);
228
229
244 U_STABLE UText * U_EXPORT2
245 utext_openUChars(UText *ut, const UChar *s, int64_t length, UErrorCode *status);
246
247
248 #if U_SHOW_CPLUSPLUS_API
249
261 U_STABLE UText * U_EXPORT2
262 utext_openUnicodeString(UText *ut, icu::UnicodeString *s, UErrorCode *status);
263
264
277 U_STABLE UText * U_EXPORT2
278 utext_openConstUnicodeString(UText *ut, const icu::UnicodeString *s, UErrorCode *status);
279
280
293 U_STABLE UText * U_EXPORT2
294 utext_openReplaceable(UText *ut, icu::Replaceable *rep, UErrorCode *status);
295
308 U_STABLE UText * U_EXPORT2
309 utext_openCharacterIterator(UText *ut, icu::CharacterIterator *ci, UErrorCode *status);
310
311 #endif
312
313
371 U_STABLE UText * U_EXPORT2
372 utext_clone(UText *dest, const UText *src, UBool deep, UBool readOnly, UErrorCode *status);
373
374
386 U_STABLE UBool U_EXPORT2
387 utext_equals(const UText *a, const UText *b);
388
389
390 /*****************************************************************************
391 *
392 * Functions to work with the text represented by a UText wrapper
393 *
394 *****************************************************************************/
395
407 U_STABLE int64_t U_EXPORT2
408 utext_nativeLength(UText *ut);
409
423 U_STABLE UBool U_EXPORT2
424 utext_isLengthExpensive(const UText *ut);
425
451 U_STABLE UChar32 U_EXPORT2
452 utext_char32At(UText *ut, int64_t nativeIndex);
453
454
465 U_STABLE UChar32 U_EXPORT2
466 utext_current32(UText *ut);
467
468
487 U_STABLE UChar32 U_EXPORT2
488 utext_next32(UText *ut);
489
490
508 U_STABLE UChar32 U_EXPORT2
509 utext_previous32(UText *ut);
510
511
530 U_STABLE UChar32 U_EXPORT2
531 utext_next32From(UText *ut, int64_t nativeIndex);
532
533
534
550 U_STABLE UChar32 U_EXPORT2
551 utext_previous32From(UText *ut, int64_t nativeIndex);
552
565 U_STABLE int64_t U_EXPORT2
566 utext_getNativeIndex(const UText *ut);
567
591 U_STABLE void U_EXPORT2
592 utext_setNativeIndex(UText *ut, int64_t nativeIndex);
593
610 U_STABLE UBool U_EXPORT2
611 utext_moveIndex32(UText *ut, int32_t delta);
612
635 U_STABLE int64_t U_EXPORT2
636 utext_getPreviousNativeIndex(UText *ut);
637
638
673 U_STABLE int32_t U_EXPORT2
674 utext_extract(UText *ut,
675 int64_t nativeStart, int64_t nativeLimit,
676 UChar *dest, int32_t destCapacity,
677 UErrorCode *status);
678
679
680
681 /************************************************************************************
682 *
683 * #define inline versions of selected performance-critical text access functions
684 * Caution: do not use auto increment++ or decrement-- expressions
685 * as parameters to these macros.
686 *
687 * For most use, where there is no extreme performance constraint, the
688 * normal, non-inline functions are a better choice. The resulting code
689 * will be smaller, and, if the need ever arises, easier to debug.
690 *
691 * These are implemented as #defines rather than real functions
692 * because there is no fully portable way to do inline functions in plain C.
693 *
694 ************************************************************************************/
695
696 #ifndef U_HIDE_INTERNAL_API
697
706 #define UTEXT_CURRENT32(ut) \
707 ((ut)->chunkOffset < (ut)->chunkLength && ((ut)->chunkContents)[(ut)->chunkOffset]<0xd800 ? \
708 ((ut)->chunkContents)[((ut)->chunkOffset)] : utext_current32(ut))
709 #endif /* U_HIDE_INTERNAL_API */
710
722 #define UTEXT_NEXT32(ut) \
723 ((ut)->chunkOffset < (ut)->chunkLength && ((ut)->chunkContents)[(ut)->chunkOffset]<0xd800 ? \
724 ((ut)->chunkContents)[((ut)->chunkOffset)++] : utext_next32(ut))
725
736 #define UTEXT_PREVIOUS32(ut) \
737 ((ut)->chunkOffset > 0 && \
738 (ut)->chunkContents[(ut)->chunkOffset-1] < 0xd800 ? \
739 (ut)->chunkContents[--((ut)->chunkOffset)] : utext_previous32(ut))
740
753 #define UTEXT_GETNATIVEINDEX(ut) \
754 ((ut)->chunkOffset <= (ut)->nativeIndexingLimit? \
755 (ut)->chunkNativeStart+(ut)->chunkOffset : \
756 (ut)->pFuncs->mapOffsetToNative(ut))
757
769 #define UTEXT_SETNATIVEINDEX(ut, ix) UPRV_BLOCK_MACRO_BEGIN { \
770 int64_t __offset = (ix) - (ut)->chunkNativeStart; \
771 if (__offset>=0 && __offset<(int64_t)(ut)->nativeIndexingLimit && (ut)->chunkContents[__offset]<0xdc00) { \
772 (ut)->chunkOffset=(int32_t)__offset; \
773 } else { \
774 utext_setNativeIndex((ut), (ix)); \
775 } \
776 } UPRV_BLOCK_MACRO_END
777
778
779
780 /************************************************************************************
781 *
782 * Functions related to writing or modifying the text.
783 * These will work only with modifiable UTexts. Attempting to
784 * modify a read-only UText will return an error status.
785 *
786 ************************************************************************************/
787
788
807 U_STABLE UBool U_EXPORT2
808 utext_isWritable(const UText *ut);
809
810
819 U_STABLE UBool U_EXPORT2
820 utext_hasMetaData(const UText *ut);
821
822
850 U_STABLE int32_t U_EXPORT2
851 utext_replace(UText *ut,
852 int64_t nativeStart, int64_t nativeLimit,
853 const UChar *replacementText, int32_t replacementLength,
854 UErrorCode *status);
855
856
857
890 U_STABLE void U_EXPORT2
891 utext_copy(UText *ut,
892 int64_t nativeStart, int64_t nativeLimit,
893 int64_t destIndex,
894 UBool move,
895 UErrorCode *status);
896
897
919 U_STABLE void U_EXPORT2
920 utext_freeze(UText *ut);
921
922
929 enum {
934 UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE = 1,
941 UTEXT_PROVIDER_STABLE_CHUNKS = 2,
948 UTEXT_PROVIDER_WRITABLE = 3,
954 UTEXT_PROVIDER_HAS_META_DATA = 4,
962 UTEXT_PROVIDER_OWNS_TEXT = 5
963 };
964
1002 typedef UText * U_CALLCONV
1003 UTextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status);
1004
1005
1014 typedef int64_t U_CALLCONV
1015 UTextNativeLength(UText *ut);
1016
1042 typedef UBool U_CALLCONV
1043 UTextAccess(UText *ut, int64_t nativeIndex, UBool forward);
1044
1072 typedef int32_t U_CALLCONV
1073 UTextExtract(UText *ut,
1074 int64_t nativeStart, int64_t nativeLimit,
1075 UChar *dest, int32_t destCapacity,
1076 UErrorCode *status);
1077
1107 typedef int32_t U_CALLCONV
1108 UTextReplace(UText *ut,
1109 int64_t nativeStart, int64_t nativeLimit,
1110 const UChar *replacementText, int32_t replacmentLength,
1111 UErrorCode *status);
1112
1141 typedef void U_CALLCONV
1142 UTextCopy(UText *ut,
1143 int64_t nativeStart, int64_t nativeLimit,
1144 int64_t nativeDest,
1145 UBool move,
1146 UErrorCode *status);
1147
1161 typedef int64_t U_CALLCONV
1162 UTextMapOffsetToNative(const UText *ut);
1163
1179 typedef int32_t U_CALLCONV
1180 UTextMapNativeIndexToUTF16(const UText *ut, int64_t nativeIndex);
1181
1182
1200 typedef void U_CALLCONV
1201 UTextClose(UText *ut);
1202
1203
1213 struct UTextFuncs {
1228 int32_t tableSize;
1229
1235 int32_t reserved1, reserved2, reserved3;
1236
1237
1244 UTextClone *clone;
1245
1253 UTextNativeLength *nativeLength;
1254
1261 UTextAccess *access;
1262
1269 UTextExtract *extract;
1270
1277 UTextReplace *replace;
1278
1285 UTextCopy *copy;
1286
1293 UTextMapOffsetToNative *mapOffsetToNative;
1294
1301 UTextMapNativeIndexToUTF16 *mapNativeIndexToUTF16;
1302
1309 UTextClose *close;
1310
1315 UTextClose *spare1;
1316
1321 UTextClose *spare2;
1322
1327 UTextClose *spare3;
1328
1329 };
1334 typedef struct UTextFuncs UTextFuncs;
1335
1347 struct UText {
1360 uint32_t magic;
1361
1362
1368 int32_t flags;
1369
1370
1376 int32_t providerProperties;
1377
1384 int32_t sizeOfStruct;
1385
1386 /* ------ 16 byte alignment boundary ----------- */
1387
1388
1394 int64_t chunkNativeLimit;
1395
1400 int32_t extraSize;
1401
1409 int32_t nativeIndexingLimit;
1410
1411 /* ---- 16 byte alignment boundary------ */
1412
1417 int64_t chunkNativeStart;
1418
1424 int32_t chunkOffset;
1425
1430 int32_t chunkLength;
1431
1432 /* ---- 16 byte alignment boundary-- */
1433
1434
1441 const UChar *chunkContents;
1442
1447 const UTextFuncs *pFuncs;
1448
1454 void *pExtra;
1455
1462 const void *context;
1463
1464 /* --- 16 byte alignment boundary--- */
1465
1471 const void *p;
1477 const void *q;
1483 const void *r;
1484
1490 void *privP;
1491
1492
1493 /* --- 16 byte alignment boundary--- */
1494
1495
1501 int64_t a;
1502
1508 int32_t b;
1509
1515 int32_t c;
1516
1517 /* ---- 16 byte alignment boundary---- */
1518
1519
1525 int64_t privA;
1531 int32_t privB;
1537 int32_t privC;
1538 };
1539
1540
1557 U_STABLE UText * U_EXPORT2
1558 utext_setup(UText *ut, int32_t extraSpace, UErrorCode *status);
1559
1560 // do not use #ifndef U_HIDE_INTERNAL_API around the following!
1566 enum {
1567 UTEXT_MAGIC = 0x345ad82c
1568 };
1569
1577 #define UTEXT_INITIALIZER { \
1578 UTEXT_MAGIC, /* magic */ \
1579 0, /* flags */ \
1580 0, /* providerProps */ \
1581 sizeof(UText), /* sizeOfStruct */ \
1582 0, /* chunkNativeLimit */ \
1583 0, /* extraSize */ \
1584 0, /* nativeIndexingLimit */ \
1585 0, /* chunkNativeStart */ \
1586 0, /* chunkOffset */ \
1587 0, /* chunkLength */ \
1588 NULL, /* chunkContents */ \
1589 NULL, /* pFuncs */ \
1590 NULL, /* pExtra */ \
1591 NULL, /* context */ \
1592 NULL, NULL, NULL, /* p, q, r */ \
1593 NULL, /* privP */ \
1594 0, 0, 0, /* a, b, c */ \
1595 0, 0, 0 /* privA,B,C, */ \
1596 }
1597
1598
1599 U_CDECL_END
1600
1601
1602
1603 #endif
UTextExtract
int32_t UTextExtract(UText *ut, int64_t nativeStart, int64_t nativeLimit, UChar *dest, int32_t destCapacity, UErrorCode *status)
Function type declaration for UText.extract().
Definition: utext.h:1073
UText::c
int32_t c
(protected) Integer field reserved for use by the text provider.
Definition: utext.h:1515
utext_nativeLength
int64_t utext_nativeLength(UText *ut)
Get the length of the text.
utext_previous32
UChar32 utext_previous32(UText *ut)
Move the iterator position to the character (code point) whose index precedes the current position...
UTextFuncs::spare3
UTextClose * spare3
(private) Spare function pointer
Definition: utext.h:1327
UText::nativeIndexingLimit
int32_t nativeIndexingLimit
(protected) The highest chunk offset where native indexing and chunk (UTF-16) indexing correspond...
Definition: utext.h:1409
UText::chunkNativeStart
int64_t chunkNativeStart
(protected) Native index of the first character in the text chunk.
Definition: utext.h:1417
utext_isWritable
UBool utext_isWritable(const UText *ut)
Return TRUE if the text can be written (modified) with utext_replace() or utext_copy().
UTextClose
void UTextClose(UText *ut)
Function type declaration for UText.utextClose().
Definition: utext.h:1201
UText::providerProperties
int32_t providerProperties
Text provider properties.
Definition: utext.h:1376
UText::pExtra
void * pExtra
(protected) Pointer to additional space requested by the text provider during the utext_open operatio...
Definition: utext.h:1454
UText::a
int64_t a
(protected) Integer field reserved for use by the text provider.
Definition: utext.h:1501
utext_previous32From
UChar32 utext_previous32From(UText *ut, int64_t nativeIndex)
Set the iteration index, and return the code point preceding the one specified by the initial index...
UText::chunkLength
int32_t chunkLength
(protected) Length the text chunk (UTF-16 buffer), in UChars.
Definition: utext.h:1430
unistr.h
C++ API: Unicode String.
UTextCopy
void UTextCopy(UText *ut, int64_t nativeStart, int64_t nativeLimit, int64_t nativeDest, UBool move, UErrorCode *status)
Function type declaration for UText.copy().
Definition: utext.h:1142
UTextFuncs::mapNativeIndexToUTF16
UTextMapNativeIndexToUTF16 * mapNativeIndexToUTF16
(public) Function pointer for UTextMapNativeIndexToUTF16.
Definition: utext.h:1301
utext_openUTF8
UText * utext_openUTF8(UText *ut, const char *s, int64_t length, UErrorCode *status)
Open a read-only UText implementation for UTF-8 strings.
UTextClone
UText * UTextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status)
Function type declaration for UText.clone().
Definition: utext.h:1003
U_CALLCONV
#define U_CALLCONV
Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...
Definition: platform.h:870
UTextFuncs::reserved1
int32_t reserved1
(private) Alignment padding.
Definition: utext.h:1235
utext_freeze
void utext_freeze(UText *ut)
UTextFuncs::extract
UTextExtract * extract
(public) Function pointer for UTextExtract.
Definition: utext.h:1269
UTextNativeLength
int64_t UTextNativeLength(UText *ut)
Function type declaration for UText.nativeLength().
Definition: utext.h:1015
UText::privP
void * privP
Private field reserved for future use by the UText framework itself.
Definition: utext.h:1490
UTextFuncs::close
UTextClose * close
(public) Function pointer for UTextClose.
Definition: utext.h:1309
UText::flags
int32_t flags
(private) Flags for managing the allocation and freeing of memory associated with this UText...
Definition: utext.h:1368
UText::privC
int32_t privC
Private field reserved for future use by the UText framework itself.
Definition: utext.h:1537
UTextFuncs::clone
UTextClone * clone
(public) Function pointer for UTextClone
Definition: utext.h:1244
UTextFuncs::nativeLength
UTextNativeLength * nativeLength
(public) function pointer for UTextLength May be expensive to compute!
Definition: utext.h:1253
UText::q
const void * q
(protected) Pointer fields available for use by the text provider.
Definition: utext.h:1477
UTextFuncs
(public) Function dispatch table for UText.
Definition: utext.h:1213
utext_next32
UChar32 utext_next32(UText *ut)
Get the code point at the current iteration position of the UText, and advance the position to the fi...
UTEXT_PROVIDER_WRITABLE
The provider supports modifying the text via the replace() and copy() functions.
Definition: utext.h:948
UTextFuncs::access
UTextAccess * access
(public) Function pointer for UTextAccess.
Definition: utext.h:1261
utext_char32At
UChar32 utext_char32At(UText *ut, int64_t nativeIndex)
Returns the code point at the requested index, or U_SENTINEL (-1) if it is out of bounds...
U_CDECL_BEGIN
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
Definition: umachine.h:84
icu::Replaceable
Replaceable is an abstract base class representing a string of characters that supports the replaceme...
Definition: rep.h:77
UTEXT_PROVIDER_OWNS_TEXT
Text provider owns the text storage.
Definition: utext.h:962
UText::p
const void * p
(protected) Pointer fields available for use by the text provider.
Definition: utext.h:1471
utext_copy
void utext_copy(UText *ut, int64_t nativeStart, int64_t nativeLimit, int64_t destIndex, UBool move, UErrorCode *status)
Copy or move a substring from one position to another within the text, while retaining any metadata a...
UTextFuncs::copy
UTextCopy * copy
(public) Function pointer for UTextCopy.
Definition: utext.h:1285
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:562
icu::CharacterIterator
Abstract class that defines an API for iteration on text objects.
Definition: chariter.h:361
utext_equals
UBool utext_equals(const UText *a, const UText *b)
Compare two UText objects for equality.
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
utext_current32
UChar32 utext_current32(UText *ut)
Get the code point at the current iteration position, or U_SENTINEL (-1) if the iteration has reached...
UText::chunkContents
const UChar * chunkContents
(protected) pointer to a chunk of text in UTF-16 format.
Definition: utext.h:1441
UTextFuncs::reserved3
int32_t reserved3
Definition: utext.h:1235
utext_openCharacterIterator
UText * utext_openCharacterIterator(UText *ut, icu::CharacterIterator *ci, UErrorCode *status)
Open a UText implementation over an ICU CharacterIterator.
UTextFuncs::tableSize
int32_t tableSize
(public) Function table size, sizeof(UTextFuncs) Intended for use should the table grow to accommodat...
Definition: utext.h:1228
UChar32
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:425
UText::privB
int32_t privB
Private field reserved for future use by the UText framework itself.
Definition: utext.h:1531
UTextAccess
UBool UTextAccess(UText *ut, int64_t nativeIndex, UBool forward)
Function type declaration for UText.access().
Definition: utext.h:1043
UText::chunkOffset
int32_t chunkOffset
(protected) Current iteration position within the text chunk (UTF-16 buffer).
Definition: utext.h:1424
UText::extraSize
int32_t extraSize
(protected) Size in bytes of the extra space (pExtra).
Definition: utext.h:1400
utext_next32From
UChar32 utext_next32From(UText *ut, int64_t nativeIndex)
Set the iteration index and return the code point at that index.
UTextMapOffsetToNative
int64_t UTextMapOffsetToNative(const UText *ut)
Function type declaration for UText.mapOffsetToNative().
Definition: utext.h:1162
utext_getPreviousNativeIndex
int64_t utext_getPreviousNativeIndex(UText *ut)
Get the native index of the character preceding the current position.
utext_extract
int32_t utext_extract(UText *ut, int64_t nativeStart, int64_t nativeLimit, UChar *dest, int32_t destCapacity, UErrorCode *status)
Extract text from a UText into a UChar buffer.
uchar.h
C API: Unicode Properties.
UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE
It is potentially time consuming for the provider to determine the length of the text.
Definition: utext.h:934
UTextMapNativeIndexToUTF16
int32_t UTextMapNativeIndexToUTF16(const UText *ut, int64_t nativeIndex)
Function type declaration for UText.mapIndexToUTF16().
Definition: utext.h:1180
utext_setNativeIndex
void utext_setNativeIndex(UText *ut, int64_t nativeIndex)
Set the current iteration position to the nearest code point boundary at or preceding the specified i...
UChar
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:378
U_CDECL_END
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition: umachine.h:85
UText::privA
int64_t privA
Private field reserved for future use by the UText framework itself.
Definition: utext.h:1525
UTEXT_PROVIDER_HAS_META_DATA
There is meta data associated with the text.
Definition: utext.h:954
UText::r
const void * r
(protected) Pointer fields available for use by the text provider.
Definition: utext.h:1483
utext_moveIndex32
UBool utext_moveIndex32(UText *ut, int32_t delta)
Move the iterator position by delta code points.
utext_clone
UText * utext_clone(UText *dest, const UText *src, UBool deep, UBool readOnly, UErrorCode *status)
Clone a UText.
UText::chunkNativeLimit
int64_t chunkNativeLimit
(protected) Native index of the first character position following the current chunk.
Definition: utext.h:1394
UText::sizeOfStruct
int32_t sizeOfStruct
(public) sizeOfStruct=sizeof(UText) Allows possible backward compatible extension.
Definition: utext.h:1384
UTextFuncs::spare2
UTextClose * spare2
(private) Spare function pointer
Definition: utext.h:1321
UText::b
int32_t b
(protected) Integer field reserved for use by the text provider.
Definition: utext.h:1508
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
LocalUTextPointer
"Smart pointer" class, closes a UText via utext_close().
utext_getNativeIndex
int64_t utext_getNativeIndex(const UText *ut)
Get the current iterator position, which can range from 0 to the length of the text.
UText::pFuncs
const UTextFuncs * pFuncs
(public) Pointer to Dispatch table for accessing functions for this UText.
Definition: utext.h:1447
utext_openReplaceable
UText * utext_openReplaceable(UText *ut, icu::Replaceable *rep, UErrorCode *status)
Open a writable UText implementation for an ICU Replaceable object.
UTextFuncs::spare1
UTextClose * spare1
(private) Spare function pointer
Definition: utext.h:1315
UText::magic
uint32_t magic
(private) Magic.
Definition: utext.h:1360
utext_openUnicodeString
UText * utext_openUnicodeString(UText *ut, icu::UnicodeString *s, UErrorCode *status)
Open a writable UText for a non-const UnicodeString.
UTextReplace
int32_t UTextReplace(UText *ut, int64_t nativeStart, int64_t nativeLimit, const UChar *replacementText, int32_t replacmentLength, UErrorCode *status)
Function type declaration for UText.replace().
Definition: utext.h:1108
UText
UText struct.
Definition: utext.h:1347
UTextFuncs::replace
UTextReplace * replace
(public) Function pointer for UTextReplace.
Definition: utext.h:1277
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
utext_isLengthExpensive
UBool utext_isLengthExpensive(const UText *ut)
Return TRUE if calculating the length of the text could be expensive.
utext_openConstUnicodeString
UText * utext_openConstUnicodeString(UText *ut, const icu::UnicodeString *s, UErrorCode *status)
Open a UText for a const UnicodeString.
utext_replace
int32_t utext_replace(UText *ut, int64_t nativeStart, int64_t nativeLimit, const UChar *replacementText, int32_t replacementLength, UErrorCode *status)
Replace a range of the original text with a replacement text.
UTEXT_PROVIDER_STABLE_CHUNKS
Text chunks remain valid and usable until the text object is modified or deleted, not just until the ...
Definition: utext.h:941
UText::context
const void * context
(protected) Pointer to string or text-containing object or similar.
Definition: utext.h:1462
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
utext_close
UText * utext_close(UText *ut)
Close function for UText instances.
chariter.h
C++ API: Character Iterator.
UTextFuncs::mapOffsetToNative
UTextMapOffsetToNative * mapOffsetToNative
(public) Function pointer for UTextMapOffsetToNative.
Definition: utext.h:1293
UTextFuncs::reserved2
int32_t reserved2
Definition: utext.h:1235
utext_setup
UText * utext_setup(UText *ut, int32_t extraSpace, UErrorCode *status)
Common function for use by Text Provider implementations to allocate and/or initialize a new UText st...
utext_hasMetaData
UBool utext_hasMetaData(const UText *ut)
Test whether there is meta data associated with the text.
utext_openUChars
UText * utext_openUChars(UText *ut, const UChar *s, int64_t length, UErrorCode *status)
Open a read-only UText for UChar * string.
U_STABLE
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:111
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261
rep.h
C++ API: Replaceable String.