summaryrefslogtreecommitdiff
path: root/modules/lc/xlocale/lcJis.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/lc/xlocale/lcJis.c')
-rw-r--r--modules/lc/xlocale/lcJis.c375
1 files changed, 197 insertions, 178 deletions
diff --git a/modules/lc/xlocale/lcJis.c b/modules/lc/xlocale/lcJis.c
index eae9ee95..161dbb28 100644
--- a/modules/lc/xlocale/lcJis.c
+++ b/modules/lc/xlocale/lcJis.c
@@ -23,6 +23,14 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcJis.c,v 1.10 2003/01/20 04:05:31 dawes Exp $ */
+
+/*
+ * A Japanese JIS locale.
+ * Supports: all locales with codeset JIS7.
+ * How: Provides converters for JIS.
+ * Platforms: Only those defining X_LOCALE (only Lynx, Linux-libc5, OS/2).
+ */
#ifdef X_LOCALE
@@ -30,7 +38,7 @@
#include "XlcGeneric.h"
#include <stdio.h>
-#if !defined(X_NOT_STDC_ENV) && !defined(macII) && !defined(X_LOCALE)
+#if !defined(macII) && !defined(X_LOCALE)
#define STDCVT
#endif
@@ -42,12 +50,12 @@ typedef struct _StateRec {
} StateRec, *State;
static void
-init_state(conv)
- XlcConv conv;
+init_state(
+ XlcConv conv)
{
- register State state = (State) conv->state;
- register XLCdGenericPart *gen = XLC_GENERIC_PART(state->lcd);
- register CodeSet codeset;
+ State state = (State) conv->state;
+ XLCdGenericPart *gen = XLC_GENERIC_PART(state->lcd);
+ CodeSet codeset;
codeset = gen->initial_state_GL;
if (codeset && codeset->charset_list)
@@ -57,17 +65,17 @@ init_state(conv)
state->GR_charset = *codeset->charset_list;
if (state->GL_charset == NULL)
- if (codeset = *gen->codeset_list)
+ if ((codeset = *gen->codeset_list) != NULL)
state->GL_charset = *codeset->charset_list;
}
static int
-compare(src, encoding, length)
- register char *src;
- register char *encoding;
- register int length;
+compare(
+ const char *src,
+ const char *encoding,
+ int length)
{
- char *start = src;
+ const char *start = src;
while (length-- > 0) {
if (*src++ != *encoding++)
@@ -80,32 +88,34 @@ compare(src, encoding, length)
}
static int
-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;
+mbtocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
- register char *src, *dst;
- unsigned char ch, *mb_parse_table;
+ const char *src;
+ char *dst;
+ unsigned char *mb_parse_table;
ParseInfo *parse_list, parse_info;
XlcCharSet charset;
int length, number, encoding_len = 0;
- register int i;
+ int i;
- src = *((char **) from);
+ src = *((const char **) from);
dst = *((char **) to);
- if (mb_parse_table = XLC_GENERIC(lcd, mb_parse_table)) {
+ mb_parse_table = XLC_GENERIC(lcd, mb_parse_table);
+ if (mb_parse_table != NULL) {
number = mb_parse_table[(unsigned char) *src];
if (number > 0) {
parse_list = XLC_GENERIC(lcd, mb_parse_list) + number - 1;
- for ( ; parse_info = *parse_list; parse_list++) {
+ for ( ; (parse_info = *parse_list) != NULL; parse_list++) {
encoding_len = compare(src, parse_info->encoding, *from_left);
if (encoding_len > 0) {
switch (parse_info->type) {
@@ -129,6 +139,8 @@ mbtocs(conv, from, from_left, to, to_left, args, num_args)
case E_GR:
charset = state->GR_charset;
goto found;
+ default:
+ break;
}
}
}
@@ -176,14 +188,14 @@ end:
}
static int
-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;
+mbstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XlcCharSet charset = NULL;
XPointer tmp_args[2], save_from = *from;
@@ -212,13 +224,13 @@ mbstocs(conv, from, from_left, to, to_left, args, num_args)
}
static CodeSet
-wc_parse_codeset(lcd, wcstr)
- XLCd lcd;
- wchar_t *wcstr;
+wc_parse_codeset(
+ XLCd lcd,
+ const wchar_t *wcstr)
{
- register CodeSet *codeset;
+ CodeSet *codeset;
unsigned long wc_encoding;
- register int num;
+ int num;
wc_encoding = *wcstr & XLC_GENERIC(lcd, wc_encode_mask);
num = XLC_GENERIC(lcd, codeset_num);
@@ -233,22 +245,22 @@ wc_parse_codeset(lcd, wcstr)
}
static int
-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;
+wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
- wchar_t *wcptr;
- register char *bufptr;
- register wchar_t wch;
+ const wchar_t *wcptr;
+ char *bufptr;
+ wchar_t wch;
char *tmpptr;
- register int length;
+ int length;
CodeSet codeset;
unsigned long wc_encoding;
int wcstr_len, buf_len;
@@ -256,7 +268,7 @@ wcstocs(conv, from, from_left, to, to_left, args, num_args)
if (from == NULL || *from == NULL)
return 0;
- wcptr = *((wchar_t **) from);
+ wcptr = *((const wchar_t **) from);
bufptr = *((char **) to);
wcstr_len = *from_left;
buf_len = *to_left;
@@ -309,13 +321,13 @@ wcstocs(conv, from, from_left, to, to_left, args, num_args)
}
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 int 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);
@@ -332,27 +344,27 @@ GetCodeSetFromCharSet(lcd, charset)
}
static int
-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;
+cstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
- register char *csptr;
- register char *bufptr;
+ const char *csptr;
+ char *bufptr;
int csstr_len;
- register int buf_len;
+ int buf_len;
int num, encoding_len = 0;
CodeSet codeset;
XlcCharSet charset;
EncodingType type;
int cvt_length;
- csptr = *((char **) from);
+ csptr = *((const char **) from);
bufptr = *((char **) to);
csstr_len = *from_left;
buf_len = *to_left;
@@ -396,6 +408,8 @@ cstombs(conv, from, from_left, to, to_left, args, num_args)
else
state->GR_charset = charset;
break;
+ default:
+ break;
}
}
@@ -436,27 +450,27 @@ cstombs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-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;
+cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
- register char *csptr;
+ const char *csptr;
wchar_t *bufptr;
int csstr_len;
- register int buf_len;
- register wchar_t wch;
+ int buf_len;
+ wchar_t wch;
unsigned long code_mask, wc_encoding;
int num, length, wc_shift_bits;
CodeSet codeset;
- csptr = *((char **) from);
+ csptr = *((const char **) from);
bufptr = *((wchar_t **) to);
csstr_len = *from_left;
buf_len = *to_left;
@@ -501,8 +515,8 @@ cstowcs(conv, from, from_left, to, to_left, args, num_args)
static void
-close_converter(conv)
- XlcConv conv;
+close_converter(
+ XlcConv conv)
{
if (conv->state) {
Xfree((char *) conv->state);
@@ -512,9 +526,9 @@ close_converter(conv)
}
static XlcConv
-create_conv(lcd, methods)
- XLCd lcd;
- XlcConvMethods methods;
+create_conv(
+ XLCd lcd,
+ XlcConvMethods methods)
{
XlcConv conv;
State state;
@@ -551,14 +565,14 @@ static XlcConvMethodsRec mbstocs_methods = {
close_converter,
mbstocs,
NULL
-} ;
+};
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,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbstocs_methods);
}
@@ -567,14 +581,14 @@ static XlcConvMethodsRec wcstocs_methods = {
close_converter,
wcstocs,
NULL
-} ;
+};
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,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &wcstocs_methods);
}
@@ -583,14 +597,14 @@ static XlcConvMethodsRec mbtocs_methods = {
close_converter,
mbtocs,
NULL
-} ;
+};
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,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbtocs_methods);
}
@@ -599,14 +613,14 @@ static XlcConvMethodsRec cstombs_methods = {
close_converter,
cstombs,
NULL
-} ;
+};
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,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &cstombs_methods);
}
@@ -615,30 +629,30 @@ static XlcConvMethodsRec cstowcs_methods = {
close_converter,
cstowcs,
NULL
-} ;
+};
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,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &cstowcs_methods);
}
#ifdef STDCVT
static int
-stdc_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;
+stdc_mbstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- char *src = *((char **) from);
+ const char *src = *((const char **) from);
wchar_t *dst = *((wchar_t **) to);
int src_left = *from_left;
int dst_left = *to_left;
@@ -675,16 +689,16 @@ stdc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-stdc_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;
+stdc_wcstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- wchar_t *src = *((wchar_t **) from);
+ const wchar_t *src = *((const wchar_t **) from);
char *dst = *((char **) to);
int src_left = *from_left;
int dst_left = *to_left;
@@ -719,16 +733,17 @@ stdc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-stdc_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;
+stdc_wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- wchar_t wch, *src = *((wchar_t **) from);
+ const wchar_t *src = *((const wchar_t **) from);
+ wchar_t wch;
XlcCharSet charset = NULL;
XPointer tmp_args[2], tmp_from, save_from = *from;
char tmp[32];
@@ -779,14 +794,14 @@ stdc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
#define FreeLocalBuf(ptr) if (ptr != local_buf) Xfree(ptr)
static int
-stdc_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;
+stdc_cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = ((State) conv->state)->lcd;
DefineLocalBuf;
@@ -817,14 +832,14 @@ static XlcConvMethodsRec stdc_mbstowcs_methods = {
close_converter,
stdc_mbstowcs,
NULL
-} ;
+};
static XlcConv
-open_stdc_mbstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_mbstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_mbstowcs_methods);
}
@@ -833,14 +848,14 @@ static XlcConvMethodsRec stdc_wcstombs_methods = {
close_converter,
stdc_wcstombs,
NULL
-} ;
+};
static XlcConv
-open_stdc_wcstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wcstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wcstombs_methods);
}
@@ -849,14 +864,14 @@ static XlcConvMethodsRec stdc_wcstocs_methods = {
close_converter,
stdc_wcstocs,
NULL
-} ;
+};
static XlcConv
-open_stdc_wcstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wcstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wcstocs_methods);
}
@@ -865,25 +880,27 @@ static XlcConvMethodsRec stdc_cstowcs_methods = {
close_converter,
stdc_cstowcs,
NULL
-} ;
+};
static XlcConv
-open_stdc_cstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_cstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_cstowcs_methods);
}
#endif /* STDCVT */
XLCd
-_XlcJisLoader(name)
- char *name;
+_XlcJisLoader(
+ const char *name)
{
XLCd lcd;
+#ifdef STDCVT
XLCdGenericPart *gen;
+#endif
lcd = _XlcCreateLC(name, _XlcGenericMethods);
if (lcd == NULL)
@@ -917,6 +934,8 @@ _XlcJisLoader(name)
}
#endif
+ _XlcAddUtf8Converters(lcd);
+
return lcd;
}