w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

wc_types.h (2873B)


      1 
      2 #ifndef _WC_TYPES_H
      3 #define _WC_TYPES_H
      4 
      5 #include <Str.h>
      6 #include <config.h>
      7 #if defined(HAVE_STDINT_H)
      8 # include <stdint.h>
      9 #elif defined(HAVE_INTTYPES_H)
     10 # include <inttypes.h>
     11 #endif
     12 
     13 typedef unsigned char  wc_uchar;
     14 #if defined(HAVE_STDINT_H) || defined(HAVE_INTTYPES_H)
     15 typedef uint8_t wc_uint8;
     16 typedef uint16_t wc_uint16;
     17 typedef uint32_t wc_uint32;
     18 #else
     19 typedef unsigned char  wc_uint8;
     20 typedef unsigned short wc_uint16;
     21 typedef unsigned long  wc_uint32;
     22 #endif
     23 
     24 typedef wc_uint32 wc_ccs;
     25 typedef wc_uint32 wc_ces;
     26 typedef wc_uint32 wc_locale;
     27 typedef wc_uchar  wc_bool;
     28 
     29 typedef struct {
     30     wc_ccs ccs;
     31     wc_uint32 code;
     32 } wc_wchar_t;
     33 
     34 typedef struct {
     35     wc_uint16 code;
     36     wc_uint16 code2;
     37 } wc_map;
     38 
     39 typedef struct {
     40     wc_uint16 code;
     41     wc_uint16 code2;
     42     wc_uint16 code3;
     43 } wc_map3;
     44 
     45 typedef struct {
     46     wc_ccs       ccs;
     47     size_t       n;
     48     wc_map      *map;
     49     wc_wchar_t (*conv)();
     50 } wc_table;
     51 
     52 typedef struct {
     53     wc_ccs   ccs;
     54     wc_uchar g;
     55     wc_bool  init;
     56 } wc_gset;
     57 
     58 typedef struct {
     59     wc_ces    id;
     60     char     *name;
     61     char     *desc;
     62     wc_gset  *gset;
     63     wc_uchar *gset_ext;
     64     Str     (*conv_from)();
     65     void    (*push_to)();
     66     Str     (*char_conv)();
     67 } wc_ces_info;
     68 
     69 typedef struct {
     70     wc_ces   id;
     71     char    *name;
     72     char    *desc;
     73 } wc_ces_list;
     74 
     75 typedef struct {
     76     wc_uint8 auto_detect;	/* automatically charset detect */
     77     wc_bool use_combining;	/* use combining characters */
     78     wc_bool use_language_tag;	/* use language_tags */
     79     wc_bool ucs_conv;		/* charset conversion using Unicode */
     80     wc_bool pre_conv;		/* previously charset conversion */
     81     wc_bool fix_width_conv;	/* not allowed conversion between different
     82 				   width charsets */
     83     wc_bool use_gb12345_map;	/* use GB 12345 Unicode map instead of
     84 				   GB 2312 Unicode map */
     85     wc_bool use_jisx0201;	/* use JIS X 0201 Roman instead of US_ASCII */
     86     wc_bool use_jisc6226;	/* use JIS C 6226:1978 instead of JIS X 0208 */
     87     wc_bool use_jisx0201k;	/* use JIS X 0201 Katakana */
     88     wc_bool use_jisx0212;	/* use JIS X 0212 */
     89     wc_bool use_jisx0213;	/* use JIS X 0213 */
     90     wc_bool strict_iso2022;	/* strict ISO 2022 */
     91     wc_bool gb18030_as_ucs;	/* treat 4 bytes char. of GB18030 as Unicode */
     92     wc_bool no_replace;		/* don't output replace character */
     93     wc_bool use_wide;		/* use wide characters */
     94     wc_bool east_asian_width;	/* East Asian Ambiguous characters are wide */
     95 } wc_option;
     96 
     97 typedef struct {
     98     wc_ces_info *ces_info;
     99     wc_uint8     gr;
    100     wc_uint8     gl;
    101     wc_uint8     ss;
    102     wc_ccs       g0_ccs;
    103     wc_ccs       g1_ccs;
    104     wc_ccs       design[4];
    105 #ifdef USE_UNICODE
    106     wc_table   **tlist;
    107     wc_table   **tlistw;
    108 #endif
    109     int          state;
    110 #ifdef USE_UNICODE
    111     Str          tag;
    112     int          ntag;
    113     wc_uint32    base;
    114     int          shift;
    115 #endif
    116 } wc_status;
    117 
    118 #endif