about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--iconv/gconv.h2
-rw-r--r--iconv/skeleton.c7
-rw-r--r--iconvdata/iso-2022-jp.c2
-rw-r--r--iconvdata/iso8859-1.c2
-rw-r--r--misc/sys/cdefs.h18
6 files changed, 41 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f4a1df280d..d06348d9a6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 03574d859e..39567524a8 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 58f381295f..06e373013d 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 bb7cc1831e..1d9164d818 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 bedc425ec3..9e5007f77d 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 3174a8524c..3d6a20bb52 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