Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* iconvdata/gbk.c (BODY): Make buf and cp char instead of unsigned
	char array resp. pointer.
	* iconvdata/iso-2022-kr.c (BODY): Make buf unsigned char instead of
	char array.
	* iconvdata/cns11643.h (cns11643_to_ucs4): Change first argument
	to const unsigned char **.
	(ucs4_to_cns11643): Change second argument to unsigned char *.
	* iconvdata/euc-tw.c (BODY): Change endp type to
	const unsigned char *.
	* iconvdata/iso-ir-165.h (ucs4_to_isoir165): Change second argument
	to unsigned char *.
	* iconvdata/ibm1008_420.c (LOOP_NEED_FLAGS): Don't define.
	* iconvdata/iso-2022-cn.c (BODY): Change buf to unsigned char array.
	* iconvdata/iso-2022-cn-ext.c (BODY): Change buf, tmpbuf, tmp
	types to unsigned char pointers/arrays instead of char.
	* iconvdata/jis0201.h (ucs4_to_jisx0201): Change second argument
	to unsigned char *.
	* iconvdata/jis0208.h (ucs4_to_jisx0208): Likewise.
	* iconvdata/jis0212.h: Include assert.h.
	(ucs4_to_jisx0212): Change second argument to unsigned char *.
	assert that if cp[0] is not '\0', cp[1] is not '\0' either instead
	of trying to handle that.
	* iconvdata/euc-kr.c (euckr_from_ucs4): Initialize also cp[1] to
	shut up a warning.
	* iconvdata/euc-jp-ms.c (from_ucs4_lat1, from_ucs4_greek,
	from_ucs4_cjk, from_ucs4_cjkcpt, from_ucs4_extra): Change type to
	two dimensional const unsigned char arrays.
	(BODY): Cast "" to (const unsigned char *) for assignment to cp.
	Initialize endp to inptr to shut up a warning.
  • Loading branch information
Ulrich Drepper committed Jul 28, 2007
1 parent ae1ad76 commit 085a441
Show file tree
Hide file tree
Showing 43 changed files with 442 additions and 276 deletions.
32 changes: 32 additions & 0 deletions ChangeLog
@@ -1,3 +1,35 @@
2007-07-26 Jakub Jelinek <jakub@redhat.com>

* iconvdata/gbk.c (BODY): Make buf and cp char instead of unsigned
char array resp. pointer.
* iconvdata/iso-2022-kr.c (BODY): Make buf unsigned char instead of
char array.
* iconvdata/cns11643.h (cns11643_to_ucs4): Change first argument
to const unsigned char **.
(ucs4_to_cns11643): Change second argument to unsigned char *.
* iconvdata/euc-tw.c (BODY): Change endp type to
const unsigned char *.
* iconvdata/iso-ir-165.h (ucs4_to_isoir165): Change second argument
to unsigned char *.
* iconvdata/ibm1008_420.c (LOOP_NEED_FLAGS): Don't define.
* iconvdata/iso-2022-cn.c (BODY): Change buf to unsigned char array.
* iconvdata/iso-2022-cn-ext.c (BODY): Change buf, tmpbuf, tmp
types to unsigned char pointers/arrays instead of char.
* iconvdata/jis0201.h (ucs4_to_jisx0201): Change second argument
to unsigned char *.
* iconvdata/jis0208.h (ucs4_to_jisx0208): Likewise.
* iconvdata/jis0212.h: Include assert.h.
(ucs4_to_jisx0212): Change second argument to unsigned char *.
assert that if cp[0] is not '\0', cp[1] is not '\0' either instead
of trying to handle that.
* iconvdata/euc-kr.c (euckr_from_ucs4): Initialize also cp[1] to
shut up a warning.
* iconvdata/euc-jp-ms.c (from_ucs4_lat1, from_ucs4_greek,
from_ucs4_cjk, from_ucs4_cjkcpt, from_ucs4_extra): Change type to
two dimensional const unsigned char arrays.
(BODY): Cast "" to (const unsigned char *) for assignment to cp.
Initialize endp to inptr to shut up a warning.

2007-07-20 Jakub Jelinek <jakub@redhat.com>

[BZ #4772]
Expand Down
7 changes: 4 additions & 3 deletions iconvdata/cns11643.h
@@ -1,5 +1,6 @@
/* Access functions for CNS 11643 handling.
Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
Copyright (C) 1998,1999,2000,2001,2002,2003,2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
Expand Down Expand Up @@ -41,7 +42,7 @@ extern const uint32_t __cns11643l15_to_ucs4_tab[];

static inline uint32_t
__attribute ((always_inline))
cns11643_to_ucs4 (const char **s, size_t avail, unsigned char offset)
cns11643_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
{
unsigned char ch = *(*s);
unsigned char ch2;
Expand Down Expand Up @@ -142,7 +143,7 @@ extern const char __cns11643_from_ucs4p2c_tab[][3];

static inline size_t
__attribute ((always_inline))
ucs4_to_cns11643 (uint32_t wch, char *s, size_t avail)
ucs4_to_cns11643 (uint32_t wch, unsigned char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;
char buf[2];
Expand Down
24 changes: 12 additions & 12 deletions iconvdata/euc-jp-ms.c
@@ -1,5 +1,5 @@
/* Mapping tables for EUCJP-MS handling.
Copyright (C) 1998,1999,2000,2001,2003 Free Software Foundation, Inc.
Copyright (C) 1998,1999,2000,2001,2003,2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>, 2003.
Expand Down Expand Up @@ -158,7 +158,7 @@ static const uint16_t cjk_block_ibm[268] =
/* 0x8ff4fd */ 0xfa2d, 0x9ed1
};

static const char from_ucs4_lat1[256][2] =
static const unsigned char from_ucs4_lat1[256][2] =
{
/* start = 0x0000, end = 0x00ff */
[ 0] = "\x00\x00", [ 1] = "\x01\x00", [ 2] = "\x02\x00",
Expand Down Expand Up @@ -244,7 +244,7 @@ static const char from_ucs4_lat1[256][2] =
[ 255] = "\xab\x73"
};

static const char from_ucs4_greek[864][2] =
static const unsigned char from_ucs4_greek[864][2] =
{
/* start = 0x0100, end = 0x045f */
[ 0] = "\xaa\x27", [ 1] = "\xab\x27", [ 2] = "\xaa\x25",
Expand Down Expand Up @@ -351,7 +351,7 @@ static const char from_ucs4_greek[864][2] =
[ 860] = "\xa7\x7c", [ 862] = "\xa7\x7d", [ 863] = "\xa7\x7e"
};

static const char from_ucs4_cjk[32662][2] =
static const unsigned char from_ucs4_cjk[32662][2] =
{
/* start = 0x2010, end = 0x9fa5 */
[ 0] = "\xa1\xbe", [ 4] = "\xa1\xbd", [ 5] = "\xa1\xbd",
Expand Down Expand Up @@ -4556,7 +4556,7 @@ static const char from_ucs4_cjk[32662][2] =
[32661] = "\xed\x63"
};

static const char from_ucs4_cjkcpt[261][2] =
static const unsigned char from_ucs4_cjkcpt[261][2] =
{
/* start = 0xf929, end = 0xfa2d */
[ 0] = "\xf4\x45", [ 179] = "\xf4\x72", [ 229] = "\xf4\x34",
Expand All @@ -4573,7 +4573,7 @@ static const char from_ucs4_cjkcpt[261][2] =
[ 260] = "\xf4\x7d"
};

static const char from_ucs4_extra[229][2] =
static const unsigned char from_ucs4_extra[229][2] =
{
/* start = 0xff01, end = 0xffe5 */
[ 0] = "\xa1\xaa", [ 1] = "\xf4\x2a", [ 2] = "\xa1\xf4",
Expand Down Expand Up @@ -4719,7 +4719,7 @@ static const char from_ucs4_extra[229][2] =
} \
else \
{ \
const unsigned char *endp; \
const unsigned char *endp = inptr; \
int mblen = 1; \
\
if (__builtin_expect(ch == 0x8f, 0)) \
Expand Down Expand Up @@ -4758,15 +4758,15 @@ static const char from_ucs4_extra[229][2] =
ch = __UNKNOWN_10646_CHAR; \
} \
else \
ch = __UNKNOWN_10646_CHAR; \
ch = __UNKNOWN_10646_CHAR; \
} \
else if (ch2 <= 0xfe) \
{ \
ch = 0xe3ac + (ch2 - 0xf5) * 94 + (ch3 - 0xa1); \
endp = inptr + mblen; \
} \
else \
ch = __UNKNOWN_10646_CHAR; \
ch = __UNKNOWN_10646_CHAR; \
} \
} \
else if (__builtin_expect(0xa1 <= ch, 1)) \
Expand Down Expand Up @@ -4804,10 +4804,10 @@ static const char from_ucs4_extra[229][2] =
endp = inptr + mblen; \
} \
else \
ch = __UNKNOWN_10646_CHAR; \
ch = __UNKNOWN_10646_CHAR; \
} \
else \
ch = __UNKNOWN_10646_CHAR; \
ch = __UNKNOWN_10646_CHAR; \
\
if (__builtin_expect (ch, 1) == 0) \
{ \
Expand Down Expand Up @@ -4880,7 +4880,7 @@ static const char from_ucs4_extra[229][2] =
{ \
UNICODE_TAG_HANDLER (ch, 4); \
/* Illegal character. */ \
cp = ""; \
cp = (const unsigned char *) ""; \
} \
} \
else \
Expand Down
5 changes: 3 additions & 2 deletions iconvdata/euc-kr.c
@@ -1,5 +1,6 @@
/* Mapping tables for EUC-KR handling.
Copyright (C) 1998, 1999, 2000-2002, 2003 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000-2002, 2003, 2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jungshik Shin <jshin@pantheon.yale.edu>
and Ulrich Drepper <drepper@cygnus.com>, 1998.
Expand Down Expand Up @@ -46,7 +47,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
cp[1] |= 0x80;
}
else
cp[0] = '\0';
cp[0] = cp[1] = '\0';
}
else
{
Expand Down
5 changes: 3 additions & 2 deletions iconvdata/euc-tw.c
@@ -1,5 +1,6 @@
/* Mapping tables for EUC-TW handling.
Copyright (C) 1998, 1999, 2000-2002, 2003 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000-2002, 2003, 2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
Expand Down Expand Up @@ -74,7 +75,7 @@
if (ch == 0x8e) \
{ \
/* This is code set 2: CNS 11643, planes 1 to 16. */ \
const char *endp = inptr + 1; \
const unsigned char *endp = inptr + 1; \
\
ch = cns11643_to_ucs4 (&endp, inend - inptr - 1, 0x80); \
\
Expand Down
4 changes: 2 additions & 2 deletions iconvdata/gbk.c
Expand Up @@ -13213,8 +13213,8 @@ static const char __gbk_from_ucs4_tab12[][2] =
#define BODY \
{ \
uint32_t ch = get32 (inptr); \
unsigned char buf[2]; \
const unsigned char *cp = buf; \
char buf[2]; \
const char *cp = buf; \
\
if (ch <= L'\x7f') \
/* It's plain ASCII. */ \
Expand Down
2 changes: 0 additions & 2 deletions iconvdata/ibm1008_420.c
Expand Up @@ -176,7 +176,6 @@ static const char __from_ibm420_to_ibm1008[256] =
*outptr++ = ch; \
++inptr; \
}
#define LOOP_NEED_FLAGS
#include <iconv/loop.c>


Expand All @@ -190,7 +189,6 @@ static const char __from_ibm420_to_ibm1008[256] =
*outptr++ = ch; \
++inptr; \
}
#define LOOP_NEED_FLAGS
#include <iconv/loop.c>

/* Now define the toplevel functions. */
Expand Down
10 changes: 5 additions & 5 deletions iconvdata/iso-2022-cn-ext.c
@@ -1,5 +1,5 @@
/* Conversion module for ISO-2022-CN-EXT.
Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
Copyright (C) 2000-2002, 2004, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
Expand Down Expand Up @@ -304,8 +304,8 @@ enum
{ \
/* This is a character from CNS 11643 plane 3 or higher. \
XXX Currently GB7590 and GB13132 are not supported. */ \
char buf[3]; \
const char *tmp = buf; \
unsigned char buf[3]; \
const unsigned char *tmp = buf; \
\
buf[1] = inptr[2]; \
buf[2] = inptr[3]; \
Expand Down Expand Up @@ -426,7 +426,7 @@ enum
} \
else \
{ \
char buf[2]; \
unsigned char buf[2]; \
int used; \
\
if (set == GB2312_set || ((ann & SO_ann) != CNS11643_1_ann \
Expand Down Expand Up @@ -456,7 +456,7 @@ enum
used = CNS11643_2_set; \
else \
{ \
char tmpbuf[3]; \
unsigned char tmpbuf[3]; \
\
switch (0) \
{ \
Expand Down
4 changes: 2 additions & 2 deletions iconvdata/iso-2022-cn.c
@@ -1,5 +1,5 @@
/* Conversion module for ISO-2022-CN.
Copyright (C) 1999, 2000-2002 Free Software Foundation, Inc.
Copyright (C) 1999, 2000-2002, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
Expand Down Expand Up @@ -263,7 +263,7 @@ enum
} \
else \
{ \
char buf[2]; \
unsigned char buf[2]; \
int used; \
size_t written = 0; \
\
Expand Down
4 changes: 2 additions & 2 deletions iconvdata/iso-2022-kr.c
@@ -1,5 +1,5 @@
/* Conversion module for ISO-2022-KR.
Copyright (C) 1998, 1999, 2000-2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000-2002, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
Expand Down Expand Up @@ -223,7 +223,7 @@ enum
} \
else \
{ \
char buf[2]; \
unsigned char buf[2]; \
size_t written; \
\
written = ucs4_to_ksc5601 (ch, buf, 2); \
Expand Down
4 changes: 2 additions & 2 deletions iconvdata/iso-ir-165.h
@@ -1,6 +1,6 @@
/* Tables for conversion to and from ISO-IR-165.
converting from UCS using gaps.
Copyright (C) 2000, 2003 Free Software Foundation, Inc.
Copyright (C) 2000, 2003, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
Expand Down Expand Up @@ -72,7 +72,7 @@ extern const char __isoir165_from_tab[];

static inline size_t
__attribute ((always_inline))
ucs4_to_isoir165 (uint32_t wch, char *s, size_t avail)
ucs4_to_isoir165 (uint32_t wch, unsigned char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;
const char *cp;
Expand Down
6 changes: 3 additions & 3 deletions iconvdata/jis0201.h
@@ -1,5 +1,5 @@
/* Access functions for JISX0201 conversion.
Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2003, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
Expand Down Expand Up @@ -40,9 +40,9 @@ jisx0201_to_ucs4 (char ch)

static inline size_t
__attribute ((always_inline))
ucs4_to_jisx0201 (uint32_t wch, char *s)
ucs4_to_jisx0201 (uint32_t wch, unsigned char *s)
{
char ch;
unsigned char ch;

if (wch == 0xa5)
ch = '\x5c';
Expand Down
5 changes: 3 additions & 2 deletions iconvdata/jis0208.h
@@ -1,5 +1,6 @@
/* Access functions for JISX0208 conversion.
Copyright (C) 1997,1998,1999,2000,2003,2005 Free Software Foundation, Inc.
Copyright (C) 1997,1998,1999,2000,2003,2005,2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
Expand Down Expand Up @@ -75,7 +76,7 @@ jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)

static inline size_t
__attribute ((always_inline))
ucs4_to_jisx0208 (uint32_t wch, char *s, size_t avail)
ucs4_to_jisx0208 (uint32_t wch, unsigned char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;
const char *cp;
Expand Down
16 changes: 7 additions & 9 deletions iconvdata/jis0212.h
@@ -1,5 +1,5 @@
/* Access functions for JISX0212 conversion.
Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2003, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
Expand All @@ -21,6 +21,7 @@
#ifndef _JIS0212_H
#define _JIS0212_H 1

#include <assert.h>
#include <gconv.h>
#include <stdint.h>

Expand Down Expand Up @@ -79,7 +80,7 @@ jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)

static inline size_t
__attribute ((always_inline))
ucs4_to_jisx0212 (uint32_t wch, char *s, size_t avail)
ucs4_to_jisx0212 (uint32_t wch, unsigned char *s, size_t avail)
{
const struct jisx0212_idx *rp = __jisx0212_from_ucs_idx;
unsigned int ch = (unsigned int) wch;
Expand All @@ -98,14 +99,11 @@ ucs4_to_jisx0212 (uint32_t wch, char *s, size_t avail)
return __UNKNOWN_10646_CHAR;

s[0] = cp[0];
if (cp[1] != '\0')
{
if (avail < 2)
return 0;

s[1] = cp[1];
}
assert (cp[1] != '\0');
if (avail < 2)
return 0;

s[1] = cp[1];
return 2;
}

Expand Down

0 comments on commit 085a441

Please sign in to comment.