Refactor and reimplement dtudcfonted

This commit is contained in:
chase
2018-07-27 16:44:10 -05:00
committed by Jon Trulson
parent 0f1aaa3e46
commit b491f9134f
83 changed files with 3706 additions and 7498 deletions

View File

@@ -105,23 +105,23 @@ static CodeSet wc_codeset();
*/
static int
euc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_mbstowcs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
XLCd lcd = (XLCd)conv->state;
register Uchar ch;
register int chr_len = 0;
register int sshift = False;
register int shift_mult = 0;
register Uint chrcode;
Uchar ch;
int chr_len = 0;
int sshift = False;
int shift_mult = 0;
Uint chrcode;
Uint wc_encode = 0;
Uint wc_tmp = 0;
@@ -259,20 +259,20 @@ euc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
static int
euc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_wcstombs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
wchar_t *inbufptr = (wchar_t *) *from;
register XPointer outbufptr = *to;
XPointer outbufptr = *to;
XPointer outbuf_base = outbufptr;
wchar_t wch;
register length;
int length;
Uchar tmp;
int num_conv;
int unconv_num = 0;
@@ -324,14 +324,14 @@ euc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
static int
euc_mbtocs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_mbtocs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
XLCd lcd = (XLCd)conv->state;
XlcCharSet charset;
@@ -340,7 +340,7 @@ euc_mbtocs(conv, from, from_left, to, to_left, args, num_args)
int length;
int unconv_num = 0;
int min_ch = 0;
register char *src = *from, *dst = *to;
char *src = *from, *dst = *to;
if (isleftside(*src)) { /* 7-bit (CS0) */
@@ -411,14 +411,14 @@ euc_mbtocs(conv, from, from_left, to, to_left, args, num_args)
static int
euc_mbstocs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_mbstocs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
XLCd lcd = (XLCd)conv->state;
char *tmp_from, *tmp_to;
@@ -471,21 +471,21 @@ euc_mbstocs(conv, from, from_left, to, to_left, args, num_args)
static int
euc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_wcstocs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
XLCd lcd = (XLCd)conv->state;
wchar_t *wcptr = (wchar_t *) *from;
register char *bufptr = (char *) *to;
char *bufptr = (char *) *to;
wchar_t wch;
char *tmpptr;
register length;
int length;
CodeSet codeset;
Ulong wc_encoding;
int unconv_num = 0;
@@ -533,20 +533,20 @@ euc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
static int
euc_cstombs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_cstombs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
XLCd lcd = (XLCd)conv->state;
register char *csptr = *from;
register char *bufptr = *to;
char *csptr = *from;
char *bufptr = *to;
int csstr_len = *from_left;
register buf_len = *to_left;
int buf_len = *to_left;
int length;
CodeSet codeset;
int cvt_length;
@@ -593,21 +593,21 @@ euc_cstombs(conv, from, from_left, to, to_left, args, num_args)
static int
euc_cstowcs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_cstowcs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
XLCd lcd = (XLCd)conv->state;
register char *csptr = *from;
char *csptr = *from;
wchar_t *bufptr = (wchar_t *) *to;
wchar_t *toptr = (wchar_t *) *to;
int csstr_len = *from_left;
register buf_len = *to_left;
int buf_len = *to_left;
wchar_t wch;
int length;
Ulong wc_shift_bits = XLC_GENERIC(lcd, wc_shift_bits);
@@ -651,14 +651,12 @@ euc_cstowcs(conv, from, from_left, to, to_left, args, num_args)
static CodeSet
wc_codeset(lcd, wch)
XLCd lcd;
wchar_t wch;
wc_codeset(XLCd lcd, wchar_t wch)
{
register CodeSet *codesets = XLC_GENERIC(lcd, codeset_list);
register int end = XLC_GENERIC(lcd, codeset_num);
register Ulong widech = (Ulong)(wch & XLC_GENERIC(lcd, wc_encode_mask));
CodeSet *codesets = XLC_GENERIC(lcd, codeset_list);
int end = XLC_GENERIC(lcd, codeset_num);
Ulong widech = (Ulong)(wch & XLC_GENERIC(lcd, wc_encode_mask));
for (; --end >= 0; codesets++)
if ( widech == (*codesets)->wc_encoding )
@@ -669,13 +667,11 @@ wc_codeset(lcd, wch)
static CodeSet
GetCodeSetFromCharSet(lcd, charset)
XLCd lcd;
XlcCharSet charset;
GetCodeSetFromCharSet(XLCd lcd, XlcCharSet charset)
{
register CodeSet *codeset = XLC_GENERIC(lcd, codeset_list);
register XlcCharSet *charset_list;
register codeset_num, num_charsets;
CodeSet *codeset = XLC_GENERIC(lcd, codeset_list);
XlcCharSet *charset_list;
int codeset_num, num_charsets;
codeset_num = XLC_GENERIC(lcd, codeset_num);
@@ -693,9 +689,7 @@ GetCodeSetFromCharSet(lcd, charset)
static XlcConv
create_conv(lcd, methods)
XLCd lcd;
XlcConvMethods methods;
create_conv(XLCd lcd, XlcConvMethods methods)
{
XlcConv conv;
@@ -711,7 +705,6 @@ create_conv(lcd, methods)
/*
* Stripped down Direct CT converters for EUC
*
*/
typedef struct _CTDataRec {
@@ -775,8 +768,7 @@ static enum { Ascii, Kanji, Kana, Userdef } cs_nums;
* initCTptr(): Set ctdptr[] to point at ctdata[], indexed by codeset_num.
*/
static void
initCTptr(lcd)
XLCd lcd;
initCTptr(XLCd lcd)
{
int num_codesets = XLC_GENERIC(lcd, codeset_num);
int num_charsets;
@@ -829,27 +821,27 @@ initCTptr(lcd)
#define SKIP_P(str) while (*(str) >= 0x30 && *(str) <= 0x3f) (str)++;
static int
euc_ctstowcs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_ctstowcs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
XLCd lcd = (XLCd)conv->state;
Ulong wc_shift_bits = XLC_GENERIC(lcd, wc_shift_bits);
register XPointer inbufptr = *from;
XPointer inbufptr = *from;
XPointer inbuf_base;
register wchar_t *outbufptr = (wchar_t *) *to;
wchar_t *outbufptr = (wchar_t *) *to;
wchar_t *outbuf_base = outbufptr;
register clen, length;
int clen, length;
int num_conv;
int unconv_num = 0;
unsigned int ct_seglen = 0;
Uchar ct_type = 0;
register shift_mult;
int shift_mult;
wchar_t wc_tmp;
wchar_t wch;
Ulong wc_encoding;
@@ -955,22 +947,22 @@ euc_ctstowcs(conv, from, from_left, to, to_left, args, num_args)
#define userdef (codeset->cs_num == 3)
static int
euc_wcstocts(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_wcstocts(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
register ct_len = *to_left;
register wchar_t *inbufptr = (wchar_t *) *from;
register char *ctptr = *to;
int ct_len = *to_left;
wchar_t *inbufptr = (wchar_t *) *from;
char *ctptr = *to;
XPointer ct_base = ctptr;
wchar_t wch;
register length;
register unconv_num = 0;
int length;
int unconv_num = 0;
Uchar tmp;
Uchar t1 = 0, t2;
int num_conv;
@@ -1085,20 +1077,20 @@ euc_wcstocts(conv, from, from_left, to, to_left, args, num_args)
#define userdef (ctdp == ctdptr[Userdef])
static int
euc_ctstombs(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_ctstombs(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
register XPointer inbufptr = *from;
register XPointer outbufptr = *to;
XPointer inbufptr = *from;
XPointer outbufptr = *to;
XPointer inbuf_base;
XPointer outbuf_base = outbufptr;
register clen, length;
int clen, length;
int unconv_num = 0;
int num_conv;
unsigned int ct_seglen = 0;
@@ -1204,22 +1196,22 @@ euc_ctstombs(conv, from, from_left, to, to_left, args, num_args)
static int
euc_mbstocts(conv, from, from_left, to, to_left, args, num_args)
XlcConv conv;
XPointer *from;
int *from_left;
XPointer *to;
int *to_left;
XPointer *args;
int num_args;
euc_mbstocts(
XlcConv conv,
XPointer *from,
int *from_left,
XPointer *to,
int *to_left,
XPointer *args,
int num_args)
{
register ct_len = *to_left;
int ct_len = *to_left;
int cs_num;
int clen, length;
int unconv_num = 0;
int num_conv;
XPointer inbufptr = *from;
register char *ctptr = *to;
char *ctptr = *to;
XPointer ct_base = ctptr;
StateRec ct_state;
@@ -1321,8 +1313,7 @@ euc_mbstocts(conv, from, from_left, to, to_left, args, num_args)
static void
close_converter(conv)
XlcConv conv;
close_converter(XlcConv conv)
{
Xfree((char *) conv);
}
@@ -1346,118 +1337,73 @@ static XlcConvMethodsRec conv_methods[] = {
static XlcConv
open_mbstocs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_mbstocs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOCS]);
}
static XlcConv
open_wcstocs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_wcstocs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOCS]);
}
static XlcConv
open_mbtocs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_mbtocs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBTOCS]);
}
static XlcConv
open_cstombs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_cstombs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[CSTOMBS]);
}
static XlcConv
open_cstowcs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_cstowcs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[CSTOWCS]);
}
static XlcConv
open_mbstowcs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_mbstowcs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOWCS]);
}
static XlcConv
open_wcstombs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_wcstombs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOMBS]);
}
static XlcConv
open_ctstowcs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_ctstowcs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[CTSTOWCS]);
}
static XlcConv
open_ctstombs(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_ctstombs(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[CTSTOMBS]);
}
static XlcConv
open_wcstocts(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_wcstocts(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOCTS]);
}
static XlcConv
open_mbstocts(from_lcd, from_type, to_lcd, to_type)
XLCd from_lcd;
char *from_type;
XLCd to_lcd;
char *to_type;
open_mbstocts(XLCd from_lcd, char *from_type, XLCd to_lcd, char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOCTS]);
}
XLCd
_fallcEucLoader(name)
char *name;
_fallcEucLoader(char *name)
{
XLCd lcd;