diff options
Diffstat (limited to 'src/UCdomap.h')
-rw-r--r-- | src/UCdomap.h | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/src/UCdomap.h b/src/UCdomap.h new file mode 100644 index 0000000..1a2f00e --- /dev/null +++ b/src/UCdomap.h @@ -0,0 +1,178 @@ +#ifndef UCDOMAP_H +#define UCDOMAP_H + +#ifndef HTUTILS_H +#include <HTUtils.h> +#endif + +#ifndef ALL_CHARSETS +#define ALL_CHARSETS 1 +#endif + +#include <UCkd.h> + +#ifdef __cplusplus +extern "C" { +#endif +/* + * [old comments: - KW ] + * consolemap.h + * + * Interface between console.c, selection.c and UCmap.c + */ +#define LAT1_MAP 0 +#define GRAF_MAP 1 +#define IBMPC_MAP 2 +#define USER_MAP 3 +/* + * Some conventions I try to follow (loosely): + * [a-z]* only internal, names from linux driver code. + * UC_* to be only known internally. + * UC[A-Z]* to be exported to other parts of Lynx. -KW + */ extern void UC_Charset_Setup(const char *UC_MIMEcharset, + const char *UC_LYNXcharset, + const u8 * unicount, + const u16 * unitable, + int nnuni, + struct unimapdesc_str replacedesc, + int lowest_eight, + int UC_rawuni, + int codepage); + + struct UC_charset { + const char *MIMEname; + const char *LYNXname; + const u8 *unicount; + const u16 *unitable; + int num_uni; + struct unimapdesc_str replacedesc; + int uc_status; + int LYhndl; + int GN; + int lowest_eight; + int enc; + int codepage; /* codepage number, used by OS/2 font-switching code */ + }; + + extern int UCNumCharsets; + extern int UCInitialized; + + extern void UCInit(void); + +/* + * INSTRUCTIONS for adding new character sets which do not have Unicode tables. + * + * Several #defines below are declarations for charsets which need no tables + * for mapping to Unicode - CJK multibytes, x-transparent, UTF8 - Lynx takes + * care of them internally. + * + * The declaration's format is kept in chrtrans/XXX_uni.h - keep this in mind + * when changing ucmaketbl.c, see also UC_Charset_Setup() above for details. + */ + + /* + * There is no strict correlation for the next five, since the transfer + * charset gets decoded into Display Char Set by the CJK code (separate from + * Unicode mechanism). For now we use the MIME name that describes what is + * output to the terminal. - KW + */ + +/*----------------------------------------------------------------------------*/ + +#ifndef NO_CHARSET_euc_cn +#define NO_CHARSET_euc_cn !ALL_CHARSETS +#endif + +#if NO_CHARSET_euc_cn +#define UC_CHARSET_SETUP_euc_cn /* nothing */ +#else +#define UC_CHARSET_SETUP_euc_cn UC_Charset_NoUctb_Setup("euc-cn","Chinese",\ + 1, 128,UCT_ENC_CJK,0) +#endif + +/*----------------------------------------------------------------------------*/ + +#ifndef NO_CHARSET_euc_jp +#define NO_CHARSET_euc_jp !ALL_CHARSETS +#endif + +#if NO_CHARSET_euc_jp +#define UC_CHARSET_SETUP_euc_jp /* nothing */ +#else +#define UC_CHARSET_SETUP_euc_jp UC_Charset_NoUctb_Setup("euc-jp","Japanese (EUC-JP)",\ + 1, 128,UCT_ENC_CJK,0) +#endif + +/*----------------------------------------------------------------------------*/ + +#ifndef NO_CHARSET_shift_jis +#define NO_CHARSET_shift_jis !ALL_CHARSETS +#endif + +#if NO_CHARSET_shift_jis +#define UC_CHARSET_SETUP_shift_jis /* nothing */ +#else +#define UC_CHARSET_SETUP_shift_jis UC_Charset_NoUctb_Setup("shift_jis","Japanese (Shift_JIS)",\ + 1, 128,UCT_ENC_CJK,0) +#endif + +/*----------------------------------------------------------------------------*/ + +#ifndef NO_CHARSET_euc_kr +#define NO_CHARSET_euc_kr !ALL_CHARSETS +#endif + +#if NO_CHARSET_euc_kr +#define UC_CHARSET_SETUP_euc_kr /* nothing */ +#else +#define UC_CHARSET_SETUP_euc_kr UC_Charset_NoUctb_Setup("euc-kr","Korean",\ + 1, 128,UCT_ENC_CJK,0) +#endif + +/*----------------------------------------------------------------------------*/ + +#ifndef NO_CHARSET_big5 +#define NO_CHARSET_big5 !ALL_CHARSETS +#endif + +#if NO_CHARSET_big5 +#define UC_CHARSET_SETUP_big5 /* nothing */ +#else +#define UC_CHARSET_SETUP_big5 UC_Charset_NoUctb_Setup("big5","Taipei (Big5)",\ + 1, 128,UCT_ENC_CJK,0) +#endif + +/*----------------------------------------------------------------------------*/ + + /* + * Placeholder for non-translation mode. - FM + */ + +#ifndef NO_CHARSET_x_transparent +#define NO_CHARSET_x_transparent !ALL_CHARSETS +#endif + +#if NO_CHARSET_x_transparent +#define UC_CHARSET_SETUP_x_transparent /* nothing */ +#else +#define UC_CHARSET_SETUP_x_transparent UC_Charset_NoUctb_Setup("x-transparent","Transparent",\ + 0, 128,UCT_ENC_8BIT,0) +#endif + +/*----------------------------------------------------------------------------*/ + +#ifndef NO_CHARSET_utf_8 +#define NO_CHARSET_utf_8 !ALL_CHARSETS +#endif + +#if NO_CHARSET_utf_8 +#define UC_CHARSET_SETUP_utf_8 /* nothing */ +#else +#define UC_CHARSET_SETUP_utf_8 UC_Charset_NoUctb_Setup("utf-8","UNICODE (UTF-8)",\ + 0, 128,UCT_ENC_UTF8,-4) +#endif + +#ifdef __cplusplus +} +#endif +#endif /* UCDOMAP_H */ |