]>
Commit | Line | Data |
---|---|---|
b75a7d8f A |
1 | /* |
2 | ******************************************************************************* | |
3 | * | |
4 | * Copyright (C) 1998-2003, International Business Machines | |
5 | * Corporation and others. All Rights Reserved. | |
6 | * | |
7 | ******************************************************************************* | |
8 | * | |
9 | * File ustr.h | |
10 | * | |
11 | * Modification History: | |
12 | * | |
13 | * Date Name Description | |
14 | * 05/28/99 stephen Creation. | |
15 | ******************************************************************************* | |
16 | */ | |
17 | ||
18 | #ifndef USTR_H | |
19 | #define USTR_H 1 | |
20 | ||
21 | #include "unicode/utypes.h" | |
22 | ||
23 | #define U_APPEND_CHAR32(c,target,len) { \ | |
24 | if (c <= 0xffff) \ | |
25 | { \ | |
26 | *(target)++ = (UChar) c; \ | |
27 | len=1; \ | |
28 | } \ | |
29 | else \ | |
30 | { \ | |
374ca955 A |
31 | target[0] = U16_LEAD(c); \ |
32 | target[1] = U16_TRAIL(c); \ | |
b75a7d8f | 33 | len=2; \ |
374ca955 | 34 | target +=2; \ |
b75a7d8f A |
35 | } \ |
36 | } | |
37 | ||
38 | /* A C representation of a string "object" (to avoid realloc all the time) */ | |
39 | struct UString { | |
40 | UChar *fChars; | |
41 | int32_t fLength; | |
42 | int32_t fCapacity; | |
43 | }; | |
44 | ||
45 | void ustr_init(struct UString *s); | |
46 | ||
47 | void | |
48 | ustr_initChars(struct UString *s, const char* source, int32_t length, UErrorCode *status); | |
49 | ||
50 | void ustr_deinit(struct UString *s); | |
51 | ||
52 | void ustr_setlen(struct UString *s, int32_t len, UErrorCode *status); | |
53 | ||
54 | void ustr_cpy(struct UString *dst, const struct UString *src, | |
55 | UErrorCode *status); | |
56 | ||
57 | void ustr_cat(struct UString *dst, const struct UString *src, | |
58 | UErrorCode *status); | |
59 | ||
60 | void ustr_ncat(struct UString *dst, const struct UString *src, | |
61 | int32_t n, UErrorCode *status); | |
62 | ||
63 | void ustr_ucat(struct UString *dst, UChar c, UErrorCode *status); | |
374ca955 | 64 | void ustr_u32cat(struct UString *dst, UChar32 c, UErrorCode *status); |
b75a7d8f A |
65 | void ustr_uscat(struct UString *dst, const UChar* src,int len,UErrorCode *status); |
66 | #endif |