intl/icu/source/tools/genrb/ustr.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2 *******************************************************************************
     3 *
     4 *   Copyright (C) 1998-2012, 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 */
    18 #ifndef USTR_H
    19 #define USTR_H 1
    21 #include "unicode/utypes.h"
    23 #define U_APPEND_CHAR32(c,target,len) {                         \
    24     if (c <= 0xffff)                                            \
    25     {                                                           \
    26         *(target)++ = (UChar) c;                                \
    27         len=1;                                                  \
    28     }                                                           \
    29     else                                                        \
    30     {                                                           \
    31         target[0] = U16_LEAD(c);                                \
    32         target[1] = U16_TRAIL(c);                               \
    33         len=2;                                                  \
    34         target +=2;                                             \
    35     }                                                           \
    36 }
    38 #define U_APPEND_CHAR32_ONLY(c,target) {                             \
    39     if (c <= 0xffff)                                            \
    40     {                                                           \
    41         *(target)++ = (UChar) c;                                \
    42     }                                                           \
    43     else                                                        \
    44     {                                                           \
    45         target[0] = U16_LEAD(c);                                \
    46         target[1] = U16_TRAIL(c);                               \
    47         target +=2;                                             \
    48     }                                                           \
    49 }
    51 /* A C representation of a string "object" (to avoid realloc all the time) */
    52 struct UString {
    53   UChar *fChars;
    54   int32_t fLength;
    55   int32_t fCapacity;
    56 };
    58 U_CFUNC void ustr_init(struct UString *s);
    60 U_CFUNC void
    61 ustr_initChars(struct UString *s, const char* source, int32_t length, UErrorCode *status);
    63 U_CFUNC void ustr_deinit(struct UString *s);
    65 U_CFUNC void ustr_setlen(struct UString *s, int32_t len, UErrorCode *status);
    67 U_CFUNC void ustr_cpy(struct UString *dst, const struct UString *src,
    68                       UErrorCode *status);
    70 U_CFUNC void ustr_cat(struct UString *dst, const struct UString *src,
    71                       UErrorCode *status);
    73 U_CFUNC void ustr_ncat(struct UString *dst, const struct UString *src,
    74                        int32_t n, UErrorCode *status);
    76 U_CFUNC void ustr_ucat(struct UString *dst, UChar c, UErrorCode *status);
    77 U_CFUNC void ustr_u32cat(struct UString *dst, UChar32 c, UErrorCode *status);
    78 U_CFUNC void ustr_uscat(struct UString *dst, const UChar* src,int len,UErrorCode *status);
    79 #endif

mercurial