Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

utf32.h File Reference

C API: UTF-32 macros. More...

Go to the source code of this file.

Defines

#define UTF32_IS_SAFE(c, strict)
#define UTF32_IS_SINGLE(uchar)   1
#define UTF32_IS_LEAD(uchar)   0
#define UTF32_IS_TRAIL(uchar)   0
#define UTF32_NEED_MULTIPLE_UCHAR(c)   0
#define UTF32_CHAR_LENGTH(c)   1
#define UTF32_MAX_CHAR_LENGTH   1
#define UTF32_ARRAY_SIZE(size)   (size)
#define UTF32_GET_CHAR_UNSAFE(s, i, c)
#define UTF32_GET_CHAR_SAFE(s, start, i, length, c, strict)
#define UTF32_NEXT_CHAR_UNSAFE(s, i, c)
#define UTF32_APPEND_CHAR_UNSAFE(s, i, c)
#define UTF32_FWD_1_UNSAFE(s, i)
#define UTF32_FWD_N_UNSAFE(s, i, n)
#define UTF32_SET_CHAR_START_UNSAFE(s, i)
#define UTF32_NEXT_CHAR_SAFE(s, i, length, c, strict)
#define UTF32_APPEND_CHAR_SAFE(s, i, length, c)
#define UTF32_FWD_1_SAFE(s, i, length)
#define UTF32_FWD_N_SAFE(s, i, length, n)
#define UTF32_SET_CHAR_START_SAFE(s, start, i)
#define UTF32_PREV_CHAR_UNSAFE(s, i, c)
#define UTF32_BACK_1_UNSAFE(s, i)
#define UTF32_BACK_N_UNSAFE(s, i, n)
#define UTF32_SET_CHAR_LIMIT_UNSAFE(s, i)
#define UTF32_PREV_CHAR_SAFE(s, start, i, c, strict)
#define UTF32_BACK_1_SAFE(s, start, i)
#define UTF32_BACK_N_SAFE(s, start, i, n)
#define UTF32_SET_CHAR_LIMIT_SAFE(s, i, length)


Detailed Description

C API: UTF-32 macros.

This file defines macros to deal with UTF-32 code units and code points. Signatures and semantics are the same as for the similarly named macros in utf16.h. utf32.h is included by utf.h after unicode/umachine.h and some common definitions.

Usage: ICU coding guidelines for if() statements should be followed when using these macros. Compound statements (curly braces {}) must be used for if-else-while... bodies and all macro statements should be terminated with semicolon.


Define Documentation

#define UTF32_APPEND_CHAR_SAFE s,
i,
length,
 ) 
 

Value:

{ \ if((uint32_t)(c)<=0x10ffff) { \ (s)[(i)++]=(c); \ } else /* c>0x10ffff, write 0xfffd */ { \ (s)[(i)++]=0xfffd; \ } \ }

#define UTF32_APPEND_CHAR_UNSAFE s,
i,
 ) 
 

Value:

{ \ (s)[(i)++]=(c); \ }

#define UTF32_BACK_1_SAFE s,
start,
 ) 
 

Value:

{ \ --(i); \ }

#define UTF32_BACK_1_UNSAFE s,
 ) 
 

Value:

{ \ --(i); \ }

#define UTF32_BACK_N_SAFE s,
start,
i,
 ) 
 

Value:

{ \ (i)-=(n); \ if((i)<(start)) { \ (i)=(start); \ } \ }

#define UTF32_BACK_N_UNSAFE s,
i,
 ) 
 

Value:

{ \ (i)-=(n); \ }

#define UTF32_FWD_1_SAFE s,
i,
length   ) 
 

Value:

{ \ ++(i); \ }

#define UTF32_FWD_1_UNSAFE s,
 ) 
 

Value:

{ \ ++(i); \ }

#define UTF32_FWD_N_SAFE s,
i,
length,
 ) 
 

Value:

{ \ if(((i)+=(n))>(length)) { \ (i)=(length); \ } \ }

#define UTF32_FWD_N_UNSAFE s,
i,
 ) 
 

Value:

{ \ (i)+=(n); \ }

#define UTF32_GET_CHAR_SAFE s,
start,
i,
length,
c,
strict   ) 
 

Value:

{ \ (c)=(s)[i]; \ if(!UTF32_IS_SAFE(c, strict)) { \ (c)=UTF_ERROR_VALUE; \ } \ }

#define UTF32_GET_CHAR_UNSAFE s,
i,
 ) 
 

Value:

{ \ (c)=(s)[i]; \ }

#define UTF32_IS_SAFE c,
strict   ) 
 

Value:

(!(strict) ? \ (uint32_t)(c)<=0x10ffff : \ UTF_IS_UNICODE_CHAR(c))

#define UTF32_NEXT_CHAR_SAFE s,
i,
length,
c,
strict   ) 
 

Value:

{ \ (c)=(s)[(i)++]; \ if(!UTF32_IS_SAFE(c, strict)) { \ (c)=UTF_ERROR_VALUE; \ } \ }

#define UTF32_NEXT_CHAR_UNSAFE s,
i,
 ) 
 

Value:

{ \ (c)=(s)[(i)++]; \ }

#define UTF32_PREV_CHAR_SAFE s,
start,
i,
c,
strict   ) 
 

Value:

{ \ (c)=(s)[--(i)]; \ if(!UTF32_IS_SAFE(c, strict)) { \ (c)=UTF_ERROR_VALUE; \ } \ }

#define UTF32_PREV_CHAR_UNSAFE s,
i,
 ) 
 

Value:

{ \ (c)=(s)[--(i)]; \ }

#define UTF32_SET_CHAR_LIMIT_SAFE s,
i,
length   ) 
 

Value:

{ \ }

#define UTF32_SET_CHAR_LIMIT_UNSAFE s,
 ) 
 

Value:

{ \ }

#define UTF32_SET_CHAR_START_SAFE s,
start,
 ) 
 

Value:

{ \ }

#define UTF32_SET_CHAR_START_UNSAFE s,
 ) 
 

Value:

{ \ }


Generated on Fri Aug 13 09:53:51 2004 for ICU 2.1 by doxygen 1.3.7