diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-11-27 17:54:38 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-11-27 17:54:38 +0000 |
commit | a1620a4c559b148324f98cc959c481ece926f4a5 (patch) | |
tree | b100aa4ae1b1dbd040437ba80d320ac2beaf2cab | |
parent | b91d5eda6e894ca12c4971dbcfb69f02abd42800 (diff) | |
download | glibc-a1620a4c559b148324f98cc959c481ece926f4a5.zip glibc-a1620a4c559b148324f98cc959c481ece926f4a5.tar.gz glibc-a1620a4c559b148324f98cc959c481ece926f4a5.tar.bz2 |
Update.
2000-11-27 Ulrich Drepper <drepper@redhat.com>
* iconv/gconv.h (__gconv_info): Define __data element using __flexarr.
* misc/sys/cdefs.h: Define __flexarr.
Proposed by Joseph S. Myers <jsm28@cam.ac.uk>.
* iconvdata/iso-2022-jp.c: Add prototypes to avoid warnings.
* iconv/skeleton.c: Likewise.
* iconvdata/iso8859-1.c (BODY to 8859-1): Add const to cast.
* iconv/loop.c (get16): Add const to cast.
(get32): Likewise.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | iconv/gconv.h | 2 | ||||
-rw-r--r-- | iconv/skeleton.c | 7 | ||||
-rw-r--r-- | iconvdata/iso-2022-jp.c | 2 | ||||
-rw-r--r-- | iconvdata/iso8859-1.c | 2 | ||||
-rw-r--r-- | misc/sys/cdefs.h | 18 |
6 files changed, 41 insertions, 2 deletions
@@ -1,3 +1,15 @@ +2000-11-27 Ulrich Drepper <drepper@redhat.com> + + * iconv/gconv.h (__gconv_info): Define __data element using __flexarr. + * misc/sys/cdefs.h: Define __flexarr. + Proposed by Joseph S. Myers <jsm28@cam.ac.uk>. + + * iconvdata/iso-2022-jp.c: Add prototypes to avoid warnings. + * iconv/skeleton.c: Likewise. + * iconvdata/iso8859-1.c (BODY to 8859-1): Add const to cast. + * iconv/loop.c (get16): Add const to cast. + (get32): Likewise. + 2000-11-27 Andreas Jaeger <aj@suse.de> * login/programs/pt_chown.c (do_pt_chown): Mark function as static diff --git a/iconv/gconv.h b/iconv/gconv.h index 03574d8..3956752 100644 --- a/iconv/gconv.h +++ b/iconv/gconv.h @@ -168,7 +168,7 @@ typedef struct __gconv_info { size_t __nsteps; struct __gconv_step *__steps; - __extension__ struct __gconv_step_data __data[0]; + __extension__ struct __gconv_step_data __data __flexarr; } *__gconv_t; #endif /* gconv.h */ diff --git a/iconv/skeleton.c b/iconv/skeleton.c index 58f3812..06e3730 100644 --- a/iconv/skeleton.c +++ b/iconv/skeleton.c @@ -213,6 +213,7 @@ static int to_object; # error "CHARSET_NAME not defined" # endif +extern int gconv_init (struct __gconv_step *step); int gconv_init (struct __gconv_step *step) { @@ -273,6 +274,12 @@ gconv_init (struct __gconv_step *step) #define SINGLE2(fct) fct##_single +extern int FUNCTION_NAME (struct __gconv_step *step, + struct __gconv_step_data *data, + const unsigned char **inptrp, + const unsigned char *inend, + unsigned char **outbufstart, size_t *irreversible, + int do_flush, int consume_incomplete); int FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data, const unsigned char **inptrp, const unsigned char *inend, diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c index bb7cc18..1d9164d 100644 --- a/iconvdata/iso-2022-jp.c +++ b/iconvdata/iso-2022-jp.c @@ -111,6 +111,7 @@ enum }; +extern int gconv_init (struct __gconv_step *step); int gconv_init (struct __gconv_step *step) { @@ -180,6 +181,7 @@ gconv_init (struct __gconv_step *step) } +extern void gconv_end (struct __gconv_step *data); void gconv_end (struct __gconv_step *data) { diff --git a/iconvdata/iso8859-1.c b/iconvdata/iso8859-1.c index bedc425..9e5007f 100644 --- a/iconvdata/iso8859-1.c +++ b/iconvdata/iso8859-1.c @@ -45,7 +45,7 @@ #define LOOPFCT TO_LOOP #define BODY \ { \ - uint32_t ch = *((uint32_t *) inptr); \ + uint32_t ch = *((const uint32_t *) inptr); \ if (__builtin_expect (ch, 0) > 0xff) \ { \ /* We have an illegal character. */ \ diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index 3174a85..3d6a20b 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -93,6 +93,24 @@ #endif +/* Support for flexible arrays. */ +#if __GNUC_PREREQ (2,97) +/* GCC 2.97 supports C99 flexible array members. */ +# define __flexarr [] +#else +# ifdef __GNUC__ +# define __flexarr [0] +# else +# ifdef __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __flexarr [] +# else +/* Some other non-C99 compiler. Approximate with [1]. */ +# define __flexarr [1] +# endif +# endif +#endif + + /* __asm__ ("xyz") is used throughout the headers to rename functions at the assembly language level. This is wrapped by the __REDIRECT macro, in order to support compilers that can do this some other |