2 * sbcs.c - routines to handle single-byte character sets.
9 * The charset_spec for any single-byte character set should
10 * provide read_sbcs() as its read function, and its `data' field
11 * should be a wchar_t string constant containing the 256 entries
12 * of the translation table.
15 void read_sbcs(charset_spec
const *charset
, long int input_chr
,
17 void (*emit
)(void *ctx
, long int output
), void *emitctx
)
19 wchar_t const *table
= (wchar_t const *)charset
->data
;
23 emit(emitctx
, table
[input_chr
]);
26 void write_sbcs(charset_spec
const *charset
, long int input_chr
,
28 void (*emit
)(void *ctx
, long int output
), void *emitctx
)
30 wchar_t const *table
= (wchar_t const *)charset
->data
;
36 * FIXME: this should work, but it's ludicrously inefficient.
37 * We should be using the ucs2sbcs table.
39 for (i
= 0; i
< 256; i
++)
40 if (table
[i
] == input_chr
) {