os/textandloc/fontservices/textshaperplugin/IcuSource/common/uinvchar.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 /*
     2 *******************************************************************************
     3 *
     4 *   Copyright (C) 1999-2004, 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 #endif