123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- // © 2016 and later: Unicode, Inc. and others.
- // License & terms of use: http://www.unicode.org/copyright.html
- /*
- *******************************************************************************
- *
- * Copyright (C) 1998-2012, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- *******************************************************************************
- *
- * File ustr.h
- *
- * Modification History:
- *
- * Date Name Description
- * 05/28/99 stephen Creation.
- *******************************************************************************
- */
- #ifndef USTR_H
- #define USTR_H 1
- #include "unicode/utypes.h"
- #define U_APPEND_CHAR32(c,target,len) UPRV_BLOCK_MACRO_BEGIN { \
- if (c <= 0xffff) \
- { \
- *(target)++ = (UChar) c; \
- len=1; \
- } \
- else \
- { \
- target[0] = U16_LEAD(c); \
- target[1] = U16_TRAIL(c); \
- len=2; \
- target +=2; \
- } \
- } UPRV_BLOCK_MACRO_END
- #define U_APPEND_CHAR32_ONLY(c,target) UPRV_BLOCK_MACRO_BEGIN { \
- if (c <= 0xffff) \
- { \
- *(target)++ = (UChar) c; \
- } \
- else \
- { \
- target[0] = U16_LEAD(c); \
- target[1] = U16_TRAIL(c); \
- target +=2; \
- } \
- } UPRV_BLOCK_MACRO_END
- /* A C representation of a string "object" (to avoid realloc all the time) */
- struct UString {
- UChar *fChars;
- int32_t fLength;
- int32_t fCapacity;
- };
- U_CFUNC void ustr_init(struct UString *s);
- U_CFUNC void
- ustr_initChars(struct UString *s, const char* source, int32_t length, UErrorCode *status);
- U_CFUNC void ustr_deinit(struct UString *s);
- U_CFUNC void ustr_setlen(struct UString *s, int32_t len, UErrorCode *status);
- U_CFUNC void ustr_cpy(struct UString *dst, const struct UString *src,
- UErrorCode *status);
- U_CFUNC void ustr_cat(struct UString *dst, const struct UString *src,
- UErrorCode *status);
- U_CFUNC void ustr_ncat(struct UString *dst, const struct UString *src,
- int32_t n, UErrorCode *status);
- U_CFUNC void ustr_ucat(struct UString *dst, UChar c, UErrorCode *status);
- U_CFUNC void ustr_u32cat(struct UString *dst, UChar32 c, UErrorCode *status);
- U_CFUNC void ustr_uscat(struct UString *dst, const UChar* src,int len,UErrorCode *status);
- #endif
|