typedef ByteEnum Chars; #define C_NULL 0x0 /* NULL */ #define C_CTRL_A 0x1 /* <ctrl>-A */ #define C_CTRL_B 0x2 /* <ctrl>-B */ #define C_CTRL_C 0x3 /* <ctrl>-C */ #define C_CTRL_D 0x4 /* <ctrl>-D */ #define C_CTRL_E 0x5 /* <ctrl>-E */ #define C_CTRL_F 0x6 /* <ctrl>-F */ #define C_CTRL_G 0x7 /* <ctrl>-G */ #define C_CTRL_H 0x8 /* <ctrl>-H */ #define C_TAB 0x9 /* TAB */ #define C_LINEFEED 0xa /* LINE FEED */ #define C_CTRL_K 0xb /* <ctrl>-K */ #define C_CTRL_L 0xc /* <ctrl>-L */ #define C_ENTER 0xd /* ENTER or CR */ #define C_SHIFT_OUT 0xe /* <ctrl>-N */ #define C_SHIFT_IN 0xf /* <ctrl>-O */ #define C_CTRL_P 0x10 /* <ctrl>-P */ #define C_CTRL_Q 0x11 /* <ctrl>-Q */ #define C_CTRL_R 0x12 /* <ctrl>-R */ #define C_CTRL_S 0x13 /* <ctrl>-S */ #define C_CTRL_T 0x14 /* <ctrl>-T */ #define C_CTRL_U 0x15 /* <ctrl>-U */ #define C_CTRL_V 0x16 /* <ctrl>-V */ #define C_CTRL_W 0x17 /* <ctrl>-W */ #define C_CTRL_X 0x18 /* <ctrl>-X */ #define C_CTRL_Y 0x19 /* <ctrl>-Y */ #define C_CTRL_Z 0x1a /* <ctrl>-Z */ #define C_ESCAPE 0x1b /* ESC */ #define C_NULL_WIDTH 0x19 /* null width character */ #define C_GRAPHIC 0x1a /* Graphic in text. */ #define C_THINSPACE 0x1b /* 1/4 width space */ #define C_ENSPACE 0x1c /* En-space, fixed width */ #define C_EMSPACE 0x1d /* Em-space, fixed width. */ #define C_NONBRKHYPHEN 0x1e /* Non breaking hyphen. */ #define C_OPTHYPHEN 0x1f /* Optional hyphen, only drawn at eol */ #define C_SPACE ` ' #define C_EXCLAMATION `!' #define C_QUOTE `"' #define C_NUMBER_SIGN `#' #define C_DOLLAR_SIGN `$' #define C_PERCENT `%' #define C_AMPERSAND `&' #define C_SNG_QUOTE 0x27 #define C_LEFT_PAREN `(' #define C_RIGHT_PAREN `)' #define C_ASTERISK `*' #define C_PLUS `+' #define C_COMMA `,' #define C_MINUS `-' #define C_PERIOD '.' #define C_SLASH `/' #define C_ZERO `0' #define C_ONE `1' #define C_TWO `2' #define C_THREE `3' #define C_FOUR `4' #define C_FIVE `5' #define C_SIX `6' #define C_SEVEN `7' #define C_EIGHT `8' #define C_NINE `9' #define C_COLON `:' #define C_SEMICOLON `;' #define C_LESS_THAN `<' #define C_EQUAL `=' #define C_GREATER_THAN `>' #define C_QUESTION_MARK `?' #define C_AT_SIGN 0x40 #define C_CAP_A `A' #define C_CAP_B `B' #define C_CAP_C `C' #define C_CAP_D `D' #define C_CAP_E `E' #define C_CAP_F `F' #define C_CAP_G `G' #define C_CAP_H `H' #define C_CAP_I `I' #define C_CAP_J `J' #define C_CAP_K `K' #define C_CAP_L `L' #define C_CAP_M `M' #define C_CAP_N `N' #define C_CAP_O `O' #define C_CAP_P `P' #define C_CAP_Q `Q' #define C_CAP_R `R' #define C_CAP_S `S' #define C_CAP_T `T' #define C_CAP_U `U' #define C_CAP_V `V' #define C_CAP_W `W' #define C_CAP_X `X' #define C_CAP_Y `Y' #define C_CAP_Z `Z' #define C_LEFT_BRACKET `[' #define C_BACKSLASH 0x5c #define C_RIGHT_BRACKET `]' #define C_ASCII_CIRCUMFLEX `^' #define C_UNDERSCORE `_' #define C_BACKQUOTE ``' #define C_SMALL_A `a' #define C_SMALL_B `b' #define C_SMALL_C `c' #define C_SMALL_D `d' #define C_SMALL_E `e' #define C_SMALL_F `f' #define C_SMALL_G `g' #define C_SMALL_H `h' #define C_SMALL_I `i' #define C_SMALL_J `j' #define C_SMALL_K `k' #define C_SMALL_L `l' #define C_SMALL_M `m' #define C_SMALL_N `n' #define C_SMALL_O `o' #define C_SMALL_P `p' #define C_SMALL_Q `q' #define C_SMALL_R `r' #define C_SMALL_S `s' #define C_SMALL_T `t' #define C_SMALL_U `u' #define C_SMALL_V `v' #define C_SMALL_W `w' #define C_SMALL_X `x' #define C_SMALL_Y `y' #define C_SMALL_Z `z' #define C_LEFT_BRACE `{' #define C_VERTICAL_BAR `|' #define C_RIGHT_BRACE `}' #define C_ASCII_TILDE `~' #define C_DELETE 0x7f #define C_UA_DIERESIS 0x80 #define C_UA_RING 0x81 #define C_UC_CEDILLA 0x82 #define C_UE_ACUTE 0x83 #define C_UN_TILDE 0x84 #define C_UO_DIERESIS 0x85 #define C_UU_DIERESIS 0x86 #define C_LA_ACUTE 0x87 #define C_LA_GRAVE 0x88 #define C_LA_CIRCUMFLEX 0x89 #define C_LA_DIERESIS 0x8a #define C_LA_TILDE 0x8b #define C_LA_RING 0x8c #define C_LC_CEDILLA 0x8d #define C_LE_ACUTE 0x8e #define C_LE_GRAVE 0x8f #define C_LE_CIRCUMFLEX 0x90 #define C_LE_DIERESIS 0x91 #define C_LI_ACUTE 0x92 #define C_LI_GRAVE 0x93 #define C_LI_CIRCUMFLEX 0x94 #define C_LI_DIERESIS 0x95 #define C_LN_TILDE 0x96 #define C_LO_ACUTE 0x97 #define C_LO_GRAVE 0x98 #define C_LO_CIRCUMFLEX 0x99 #define C_LO_DIERESIS 0x9a #define C_LO_TILDE 0x9b #define C_LU_ACUTE 0x9c #define C_LU_GRAVE 0x9d #define C_LU_CIRCUMFLEX 0x9e #define C_LU_DIERESIS 0x9f #define C_DAGGER 0xa0 #define C_DEGREE 0xa1 #define C_CENT 0xa2 #define C_STERLING 0xa3 #define C_SECTION 0xa4 #define C_BULLET 0xa5 #define C_PARAGRAPH 0xa6 #define C_GERMANDBLS 0xa7 #define C_REGISTERED 0xa8 #define C_COPYRIGHT 0xa9 #define C_TRADEMARK 0xaa #define C_ACUTE 0xab #define C_DIERESIS 0xac #define C_NOTEQUAL 0xad #define C_U_AE 0xae #define C_UO_SLASH 0xaf #define C_INFINITY 0xb0 #define C_PLUSMINUS 0xb1 #define C_LESSEQUAL 0xb2 #define C_GREATEREQUAL 0xb3 #define C_YEN 0xb4 #define C_L_MU 0xb5 #define C_L_DELTA 0xb6 #define C_U_SIGMA 0xb7 #define C_U_PI 0xb8 #define C_L_PI 0xb9 #define C_INTEGRAL 0xba #define C_ORDFEMININE 0xbb #define C_ORDMASCULINE 0xbc #define C_U_OMEGA 0xbd #define C_L_AE 0xbe #define C_LO_SLASH 0xbf #define C_QUESTIONDOWN 0xc0 #define C_EXCLAMDOWN 0xc1 #define C_LOGICAL_NOT 0xc2 #define C_ROOT 0xc3 #define C_FLORIN 0xc4 #define C_APPROX_EQUAL 0xc5 #define C_U_DELTA 0xc6 #define C_GUILLEDBLLEFT 0xc7 #define C_GUILLEDBLRIGHT 0xc8 #define C_ELLIPSIS 0xc9 #define C_NONBRKSPACE 0xca #define C_UA_GRAVE 0xcb #define C_UA_TILDE 0xcc #define C_UO_TILDE 0xcd #define C_U_OE 0xce #define C_L_OE 0xcf #define C_ENDASH 0xd0 #define C_EMDASH 0xd1 #define C_QUOTEDBLLEFT 0xd2 #define C_QUOTEDBLRIGHT 0xd3 #define C_QUOTESNGLEFT 0xd4 #define C_QUOTESNGRIGHT 0xd5 #define C_DIVISION 0xd6 #define C_DIAMONDBULLET 0xd7 #define C_LY_DIERESIS 0xd8 #define C_UY_DIERESIS 0xd9 #define C_FRACTION 0xda #define C_CURRENCY 0xdb #define C_GUILSNGLEFT 0xdc #define C_GUILSNGRIGHT 0xdd #define C_LY_ACUTE 0xde #define C_UY_ACUTE 0xdf #define C_DBLDAGGER 0xe0 #define C_CNTR_DOT 0xe1 #define C_SNGQUOTELOW 0xe2 #define C_DBLQUOTELOW 0xe3 #define C_PERTHOUSAND 0xe4 #define C_UA_CIRCUMFLEX 0xe5 #define C_UE_CIRCUMFLEX 0xe6 #define C_UA_ACUTE 0xe7 #define C_UE_DIERESIS 0xe8 #define C_UE_GRAVE 0xe9 #define C_UI_ACUTE 0xea #define C_UI_CIRCUMFLEX 0xeb #define C_UI_DIERESIS 0xec #define C_UI_GRAVE 0xed #define C_UO_ACUTE 0xee #define C_UO_CIRCUMFLEX 0xef #define C_LOGO 0xf0 #define C_UO_GRAVE 0xf1 #define C_UU_ACUTE 0xf2 #define C_UU_CIRCUMFLEX 0xf3 #define C_UU_GRAVE 0xf4 #define C_LI_DOTLESS 0xf5 #define C_CIRCUMFLEX 0xf6 #define C_TILDE 0xf7 #define C_MACRON 0xf8 #define C_BREVE 0xf9 #define C_DOTACCENT 0xfa #define C_RING 0xfb #define C_CEDILLA 0xfc #define C_HUNGARUMLAT 0xfd #define C_OGONEK 0xfe #define C_CARON 0xff /* * common shortcuts for low 32 codes */
#define C_NUL C_NULL #define C_STX C_CTRL_B #define C_ETX C_CTRL_C #define C_BEL C_CTRL_G #define C_BS C_CTRL_H #define C_HT C_CTRL_I #define C_VT C_CTRL_K #define C_FF C_CTRL_L #define C_SO C_CTRL_N #define C_SI C_CTRL_O #define C_DC1 C_CTRL_Q #define C_DC2 C_CTRL_R #define C_DC3 C_CTRL_S #define C_DC4 C_CTRL_T #define C_CAN C_CTRL_X #define C_EM C_CTRL_Y #define C_ESC C_ESCAPE /* * Some alternative names */
#define C_CR C_ENTER #define C_CTRL_M C_ENTER #define C_CTRL_I C_TAB #define C_CTRL_J C_LINEFEED #define C_LF C_LINEFEED #define C_CTRL_N C_SHIFT_OUT #define C_CTRL_O C_SHIFT_IN #define C_FS C_ENSPACE #define C_FIELD_SEP C_FS #define C_HYPHEN C_MINUS #define C_GRAVE C_BACKQUOTE #define C_PARTIAL_DIFF C_L_DELTA #define C_SUM C_U_SIGMA #define C_PRODUCT C_U_PI #define C_RADICAL C_ROOT #define C_LOZENGE C_DIAMONDBULLET
Text characters may be represented by the standard C type char or by the GEOS type Chars. The difference shows up in debugging. If printing the value of a string as char, then the debugger will output ASCII text. If the string is treated as Chars, then the debugger will print out the constant names.
Include: char.h