* iconvdata/jis0208.c (__jisx0208_from_ucs4_lat1): Reduce size of
	array.
	* iconvdata/jis0208.h (ucs4_to_jisx0208): Adjust access.

2004-08-13  GOTO Masanori  <gotom@debian.or.jp>

	[BZ #395]
	* iconvdata/jis0208.c: Remove 0x005C mapping from
	__jisx0208_from_ucs4_lat1.
	Reported by Fumitoshi UKAI <ukai@debian.or.jp>

2005-09-23  Ulrich Drepper  <drepper@redhat.com>
This commit is contained in:
Ulrich Drepper 2005-09-23 18:48:38 +00:00
parent 32053042d4
commit 294bda1b5a
3 changed files with 33 additions and 9 deletions

View File

@ -1,3 +1,16 @@
2005-09-23 Ulrich Drepper <drepper@redhat.com>
* iconvdata/jis0208.c (__jisx0208_from_ucs4_lat1): Reduce size of
array.
* iconvdata/jis0208.h (ucs4_to_jisx0208): Adjust access.
2004-08-13 GOTO Masanori <gotom@debian.or.jp>
[BZ #395]
* iconvdata/jis0208.c: Remove 0x005C mapping from
__jisx0208_from_ucs4_lat1.
Reported by Fumitoshi UKAI <ukai@debian.or.jp>
2005-09-23 Ulrich Drepper <drepper@redhat.com>
[BZ #394]

View File

@ -1,5 +1,5 @@
/* Mapping tables for JIS0208 handling.
Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 2002, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -1783,12 +1783,20 @@ const uint16_t __jis0208_to_ucs[0x1e80] =
};
const char __jisx0208_from_ucs4_lat1[256][2] =
const char __jisx0208_from_ucs4_lat1[JIS0208_LAT1_MAX + 1
- JIS0208_LAT1_MIN][2] =
{
[0x005C] = "\x21\x40", [0x00A2] = "\x21\x71", [0x00A3] = "\x21\x72",
[0x00A7] = "\x21\x78", [0x00A8] = "\x21\x2f", [0x00AC] = "\x22\x4c",
[0x00B0] = "\x21\x6B", [0x00B1] = "\x21\x5e", [0x00B4] = "\x21\x2d",
[0x00B6] = "\x22\x79", [0x00D7] = "\x21\x5f", [0x00F7] = "\x21\x60"
[0x00A2 - JIS0208_LAT1_MIN] = "\x21\x71",
[0x00A3 - JIS0208_LAT1_MIN] = "\x21\x72",
[0x00A7 - JIS0208_LAT1_MIN] = "\x21\x78",
[0x00A8 - JIS0208_LAT1_MIN] = "\x21\x2f",
[0x00AC - JIS0208_LAT1_MIN] = "\x22\x4c",
[0x00B0 - JIS0208_LAT1_MIN] = "\x21\x6B",
[0x00B1 - JIS0208_LAT1_MIN] = "\x21\x5e",
[0x00B4 - JIS0208_LAT1_MIN] = "\x21\x2d",
[0x00B6 - JIS0208_LAT1_MIN] = "\x22\x79",
[0x00D7 - JIS0208_LAT1_MIN] = "\x21\x5f",
[0x00F7 - JIS0208_LAT1_MIN] = "\x21\x60"
};

View File

@ -36,7 +36,10 @@ struct jisx0208_ucs_idx
/* Conversion table. */
extern const uint16_t __jis0208_to_ucs[];
extern const char __jisx0208_from_ucs4_lat1[256][2];
#define JIS0208_LAT1_MIN 0xa2
#define JIS0208_LAT1_MAX 0xf7
extern const char __jisx0208_from_ucs4_lat1[JIS0208_LAT1_MAX + 1
- JIS0208_LAT1_MIN][2];
extern const char __jisx0208_from_ucs4_greek[0xc1][2];
extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
extern const char __jisx0208_from_ucs_tab[][2];
@ -80,8 +83,8 @@ ucs4_to_jisx0208 (uint32_t wch, char *s, size_t avail)
if (avail < 2)
return 0;
if (ch < 0x100)
cp = __jisx0208_from_ucs4_lat1[ch];
if (ch >= JIS0208_LAT1_MIN && ch <= JIS0208_LAT1_MAX)
cp = __jisx0208_from_ucs4_lat1[ch - JIS0208_LAT1_MIN];
else if (ch >= 0x391 && ch <= 0x451)
cp = __jisx0208_from_ucs4_greek[ch - 0x391];
else