w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

umachine.h File Reference

Basic types and constants for UTF. More...

#include "unicode/ptypes.h"
#include <stdbool.h>
#include <stddef.h>
#include "unicode/urename.h"
Include dependency graph for umachine.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define U_CFUNC   extern
 
#define U_CDECL_BEGIN
 
#define U_CDECL_END
 
#define U_ATTRIBUTE_DEPRECATED
 
#define U_CAPI   U_CFUNC U_EXPORT
 
#define U_STABLE   U_CAPI
 
#define U_DRAFT   U_CAPI
 
#define U_DEPRECATED   U_CAPI U_ATTRIBUTE_DEPRECATED
 
#define U_OBSOLETE   U_CAPI
 
#define U_INTERNAL   U_CAPI
 
#define U_OVERRIDE   override
 
#define U_FINAL   final
 
#define UPRV_BLOCK_MACRO_BEGIN   do
 
#define UPRV_BLOCK_MACRO_END   while (false)
 
#define U_INT64_MIN   ((int64_t)(INT64_C(-9223372036854775807)-1))
 
#define U_INT64_MAX   ((int64_t)(INT64_C(9223372036854775807)))
 
#define U_UINT64_MAX   ((uint64_t)(UINT64_C(18446744073709551615)))
 
#define U_DEFINE_FALSE_AND_TRUE   0
 
#define U_SIZEOF_UCHAR   2
 
#define U_CHAR16_IS_TYPEDEF   0
 
#define U_SENTINEL   (-1)
 

Typedefs

typedef int8_t UBool
 
typedef uint16_t UChar
 
typedef uint16_t OldUChar
 
typedef int32_t UChar32
 

Detailed Description

Basic types and constants for UTF.

Basic types and constants for UTF

This file defines basic types and constants for utf.h to be platform-independent. umachine.h and utf.h are included into utypes.h to provide all the general definitions for ICU. All of these definitions used to be in utypes.h before the UTF-handling macros made this unmaintainable.

Definition in file umachine.h.

Macro Definition Documentation

◆ U_ATTRIBUTE_DEPRECATED

#define U_ATTRIBUTE_DEPRECATED

This is used for GCC specific attributes

Definition at line 105 of file umachine.h.

◆ U_CAPI

#define U_CAPI   U_CFUNC U_EXPORT

This is used to declare a function as a public ICU C API @stable ICU 2.0

Definition at line 110 of file umachine.h.

◆ U_CDECL_BEGIN

#define U_CDECL_BEGIN

This is used to begin a declaration of a library private ICU C API. @stable ICU 2.4

Definition at line 85 of file umachine.h.

◆ U_CDECL_END

#define U_CDECL_END

This is used to end a declaration of a library private ICU C API @stable ICU 2.4

Definition at line 86 of file umachine.h.

◆ U_CFUNC

#define U_CFUNC   extern

This is used in a declaration of a library private ICU C function. @stable ICU 2.4

Definition at line 84 of file umachine.h.

◆ U_CHAR16_IS_TYPEDEF

#define U_CHAR16_IS_TYPEDEF   0

If 1, then char16_t is a typedef and not a real type (yet)

Definition at line 374 of file umachine.h.

◆ U_DEFINE_FALSE_AND_TRUE

#define U_DEFINE_FALSE_AND_TRUE   0

Normally turns off defining macros FALSE=0 & TRUE=1 in public ICU headers. These obsolete macros sometimes break compilation of other code that defines enum constants or similar with these names. C++ has long defined bool/false/true. C99 also added definitions for these, although as macros; see stdbool.h.

You may transitionally define U_DEFINE_FALSE_AND_TRUE=1 if you need time to migrate code.

Definition at line 293 of file umachine.h.

◆ U_DEPRECATED

#define U_DEPRECATED   U_CAPI U_ATTRIBUTE_DEPRECATED

This is used to declare a function as a deprecated public ICU C API

Definition at line 116 of file umachine.h.

◆ U_DRAFT

#define U_DRAFT   U_CAPI

Obsolete/same as U_CAPI; was used to declare a function as a draft public ICU C API

Definition at line 114 of file umachine.h.

◆ U_FINAL

#define U_FINAL   final

Defined to the C++11 "final" keyword if available. Denotes a class or member which may not be overridden in subclasses. May result in an error if subclasses attempt to override.

Definition at line 141 of file umachine.h.

◆ U_INT64_MAX

#define U_INT64_MAX   ((int64_t)(INT64_C(9223372036854775807)))

The largest value a 64 bit signed integer can hold @stable ICU 2.8

Definition at line 249 of file umachine.h.

◆ U_INT64_MIN

#define U_INT64_MIN   ((int64_t)(INT64_C(-9223372036854775807)-1))

The smallest value a 64 bit signed integer can hold @stable ICU 2.8

Definition at line 245 of file umachine.h.

◆ U_INTERNAL

#define U_INTERNAL   U_CAPI

Obsolete/same as U_CAPI; was used to declare a function as an internal ICU C API

Definition at line 120 of file umachine.h.

◆ U_OBSOLETE

#define U_OBSOLETE   U_CAPI

Obsolete/same as U_CAPI; was used to declare a function as an obsolete public ICU C API

Definition at line 118 of file umachine.h.

◆ U_OVERRIDE

#define U_OVERRIDE   override

Defined to the C++11 "override" keyword if available. Denotes a class or member which is an override of the base class. May result in an error if it applied to something not an override.

Definition at line 130 of file umachine.h.

◆ U_SENTINEL

#define U_SENTINEL   (-1)

This value is intended for sentinel values for APIs that (take or) return single code points (UChar32). It is outside of the Unicode code point range 0..0x10ffff.

For example, a "done" or "error" value in a new API could be indicated with U_SENTINEL.

ICU APIs designed before ICU 2.4 usually define service-specific "done" values, mostly 0xffff. Those may need to be distinguished from actual U+ffff text contents by calling functions like CharacterIterator::hasNext() or UnicodeString::length().

Returns
-1
See also
UChar32 @stable ICU 2.4

Definition at line 487 of file umachine.h.

◆ U_SIZEOF_UCHAR

#define U_SIZEOF_UCHAR   2

Number of bytes in a UChar. @stable ICU 2.0

Definition at line 358 of file umachine.h.

◆ U_STABLE

#define U_STABLE   U_CAPI

Obsolete/same as U_CAPI; was used to declare a function as a stable public ICU C API

Definition at line 112 of file umachine.h.

◆ U_UINT64_MAX

#define U_UINT64_MAX   ((uint64_t)(UINT64_C(18446744073709551615)))

The largest value a 64 bit unsigned integer can hold @stable ICU 2.8

Definition at line 253 of file umachine.h.

◆ UPRV_BLOCK_MACRO_BEGIN

#define UPRV_BLOCK_MACRO_BEGIN   do

Defined as the "do" keyword by default.

Definition at line 169 of file umachine.h.

◆ UPRV_BLOCK_MACRO_END

#define UPRV_BLOCK_MACRO_END   while (false)

Defined as "while (false)" by default.

Definition at line 178 of file umachine.h.

Typedef Documentation

◆ OldUChar

Default ICU 58 definition of UChar. A base type for UTF-16 code units and pointers. Unsigned 16-bit integer.

Define OldUChar to be wchar_t if that is 16 bits wide. If wchar_t is not 16 bits wide, then define UChar to be uint16_t.

This makes the definition of OldUChar platform-dependent but allows direct string type compatibility with platforms with 16-bit wchar_t types.

This is how UChar was defined in ICU 58, for transition convenience. Exception: ICU 58 UChar was defined to UCHAR_TYPE if that macro was defined. The current UChar responds to UCHAR_TYPE but OldUChar does not.

@stable ICU 59

Definition at line 447 of file umachine.h.

◆ UBool

typedef int8_t UBool

The ICU boolean type, a signed-byte integer. ICU-specific for historical reasons: The C and C++ standards used to not define type bool. Also provides a fixed type definition, as opposed to type bool whose details (e.g., sizeof) may vary by compiler and between C and C++.

@stable ICU 2.0

Definition at line 269 of file umachine.h.

◆ UChar

typedef uint16_t UChar

Definition at line 420 of file umachine.h.

◆ UChar32

typedef int32_t UChar32

Define UChar32 as a type for single Unicode code points. UChar32 is a signed 32-bit integer (same as int32_t).

The Unicode code point range is 0..0x10ffff. All other values (negative or >=0x110000) are illegal as Unicode code points. They may be used as sentinel values to indicate "done", "error" or similar non-code point conditions.

Before ICU 2.4 (Jitterbug 2146), UChar32 was defined to be wchar_t if that is 32 bits wide (wchar_t may be signed or unsigned) or else to be uint32_t. That is, the definition of UChar32 was platform-dependent.

See also
U_SENTINEL @stable ICU 2.4

Definition at line 467 of file umachine.h.