OLD | NEW |
(Empty) | |
| 1 /* |
| 2 ******************************************************************************* |
| 3 * |
| 4 * Copyright (C) 1999-2010, International Business Machines |
| 5 * Corporation and others. All Rights Reserved. |
| 6 * |
| 7 ******************************************************************************* |
| 8 * file name: uinvchar.h |
| 9 * encoding: US-ASCII |
| 10 * tab size: 8 (not used) |
| 11 * indentation:2 |
| 12 * |
| 13 * created on: 2004sep14 |
| 14 * created by: Markus W. Scherer |
| 15 * |
| 16 * Definitions for handling invariant characters, moved here from putil.c |
| 17 * for better modularization. |
| 18 */ |
| 19 |
| 20 #ifndef __UINVCHAR_H__ |
| 21 #define __UINVCHAR_H__ |
| 22 |
| 23 #include "unicode/utypes.h" |
| 24 |
| 25 /** |
| 26 * Check if a char string only contains invariant characters. |
| 27 * See utypes.h for details. |
| 28 * |
| 29 * @param s Input string pointer. |
| 30 * @param length Length of the string, can be -1 if NUL-terminated. |
| 31 * @return TRUE if s contains only invariant characters. |
| 32 * |
| 33 * @internal (ICU 2.8) |
| 34 */ |
| 35 U_INTERNAL UBool U_EXPORT2 |
| 36 uprv_isInvariantString(const char *s, int32_t length); |
| 37 |
| 38 /** |
| 39 * Check if a Unicode string only contains invariant characters. |
| 40 * See utypes.h for details. |
| 41 * |
| 42 * @param s Input string pointer. |
| 43 * @param length Length of the string, can be -1 if NUL-terminated. |
| 44 * @return TRUE if s contains only invariant characters. |
| 45 * |
| 46 * @internal (ICU 2.8) |
| 47 */ |
| 48 U_INTERNAL UBool U_EXPORT2 |
| 49 uprv_isInvariantUString(const UChar *s, int32_t length); |
| 50 |
| 51 /** |
| 52 * \def U_UPPER_ORDINAL |
| 53 * Get the ordinal number of an uppercase invariant character |
| 54 * @internal |
| 55 */ |
| 56 #if U_CHARSET_FAMILY==U_ASCII_FAMILY |
| 57 # define U_UPPER_ORDINAL(x) ((x)-'A') |
| 58 #elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY |
| 59 # define U_UPPER_ORDINAL(x) (((x) < 'J') ? ((x)-'A') : \ |
| 60 (((x) < 'S') ? ((x)-'J'+9) : \ |
| 61 ((x)-'S'+18))) |
| 62 #else |
| 63 # error Unknown charset family! |
| 64 #endif |
| 65 |
| 66 /** |
| 67 * Compare two EBCDIC invariant-character strings in ASCII order. |
| 68 * @internal |
| 69 */ |
| 70 U_INTERNAL int32_t U_EXPORT2 |
| 71 uprv_compareInvEbcdicAsAscii(const char *s1, const char *s2); |
| 72 |
| 73 /** |
| 74 * \def uprv_compareInvCharsAsAscii |
| 75 * Compare two invariant-character strings in ASCII order. |
| 76 * @internal |
| 77 */ |
| 78 #if U_CHARSET_FAMILY==U_ASCII_FAMILY |
| 79 # define uprv_compareInvCharsAsAscii(s1, s2) uprv_strcmp(s1, s2) |
| 80 #elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY |
| 81 # define uprv_compareInvCharsAsAscii(s1, s2) uprv_compareInvEbcdicAsAscii(s1,
s2) |
| 82 #else |
| 83 # error Unknown charset family! |
| 84 #endif |
| 85 |
| 86 /** |
| 87 * Copy EBCDIC to ASCII |
| 88 * @internal |
| 89 * @see uprv_strncpy |
| 90 */ |
| 91 U_INTERNAL uint8_t* U_EXPORT2 |
| 92 uprv_aestrncpy(uint8_t *dst, const uint8_t *src, int32_t n); |
| 93 |
| 94 |
| 95 /** |
| 96 * Copy ASCII to EBCDIC |
| 97 * @internal |
| 98 * @see uprv_strncpy |
| 99 */ |
| 100 U_INTERNAL uint8_t* U_EXPORT2 |
| 101 uprv_eastrncpy(uint8_t *dst, const uint8_t *src, int32_t n); |
| 102 |
| 103 |
| 104 |
| 105 #endif |
OLD | NEW |