about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--iconvdata/iso-2022-cn.c8
-rw-r--r--iconvdata/iso-2022-jp.c8
-rw-r--r--iconvdata/iso-2022-kr.c8
-rw-r--r--wcsmbs/wchar.h10
5 files changed, 28 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 0b8ec99a54..9e90ee8b96 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2000-04-07  Ulrich Drepper  <drepper@redhat.com>
+
+	* wcsmbs/wchar.h (__mbstate_t): Rename elements.  Make __value
+	element a union to allow byte access.
+	* iconvdata/iso-2022-cn.c: Adjust for change of element name in
+	mbstate_t.
+	* iconvdata/iso-2022-jp.c: Likewise.
+	* iconvdata/iso-2022-kr.c: Likewise.
+
 2000-04-06  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/getdents.c (__getdents): The Linux
diff --git a/iconvdata/iso-2022-cn.c b/iconvdata/iso-2022-cn.c
index 1b0eefbd40..cadebe9f17 100644
--- a/iconvdata/iso-2022-cn.c
+++ b/iconvdata/iso-2022-cn.c
@@ -50,7 +50,7 @@
 #define MAX_NEEDED_TO		4
 #define PREPARE_LOOP \
   int save_set;								      \
-  int *setp = &data->__statep->count;
+  int *setp = &data->__statep->__count;
 #define EXTRA_LOOP_ARGS		, setp
 
 
@@ -73,12 +73,12 @@ enum
    the output state to the initial state.  This has to be done during the
    flushing.  */
 #define EMIT_SHIFT_TO_INIT \
-  if (data->__statep->count != ASCII_set)				      \
+  if (data->__statep->__count != ASCII_set)				      \
     {									      \
       if (FROM_DIRECTION)						      \
 	/* It's easy, we don't have to emit anything, we just reset the	      \
 	   state for the input.  */					      \
-	data->__statep->count = ASCII_set;				      \
+	data->__statep->__count = ASCII_set;				      \
       else								      \
 	{								      \
 	  unsigned char *outbuf = data->__outbuf;			      \
@@ -95,7 +95,7 @@ enum
 	      if (data->__is_last)					      \
 		*written += 1;						      \
 	      data->__outbuf = outbuf;					      \
-	      data->__statep->count = ASCII_set;			      \
+	      data->__statep->__count = ASCII_set;			      \
 	    }								      \
 	}								      \
     }
diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c
index decb6c12a7..99f45dad7e 100644
--- a/iconvdata/iso-2022-jp.c
+++ b/iconvdata/iso-2022-jp.c
@@ -56,7 +56,7 @@ struct gap
   enum direction dir = ((struct iso2022jp_data *) step->__data)->dir;	      \
   enum variant var = ((struct iso2022jp_data *) step->__data)->var;	      \
   int save_set;								      \
-  int *setp = &data->__statep->count;
+  int *setp = &data->__statep->__count;
 #define EXTRA_LOOP_ARGS		, var, setp
 
 
@@ -188,7 +188,7 @@ gconv_end (struct __gconv_step *data)
    the output state to the initial state.  This has to be done during the
    flushing.  */
 #define EMIT_SHIFT_TO_INIT \
-  if (data->__statep->count != ASCII_set)				      \
+  if (data->__statep->__count != ASCII_set)				      \
     {									      \
       enum direction dir = ((struct iso2022jp_data *) step->__data)->dir;     \
 									      \
@@ -196,7 +196,7 @@ gconv_end (struct __gconv_step *data)
 	/* It's easy, we don't have to emit anything, we just reset the	      \
 	   state for the input.  Note that this also clears the G2	      \
 	   designation.  */						      \
-	data->__statep->count = ASCII_set;				      \
+	data->__statep->__count = ASCII_set;				      \
       else								      \
 	{								      \
 	  unsigned char *outbuf = data->__outbuf;			      \
@@ -216,7 +216,7 @@ gconv_end (struct __gconv_step *data)
 	        *written += 3;						      \
 	      data->__outbuf = outbuf;					      \
 	      /* Note that this also clears the G2 designation.  */	      \
-	      data->__statep->count = ASCII_set;			      \
+	      data->__statep->__count = ASCII_set;			      \
 	    }								      \
 	}								      \
     }
diff --git a/iconvdata/iso-2022-kr.c b/iconvdata/iso-2022-kr.c
index ea03353065..11811d0c92 100644
--- a/iconvdata/iso-2022-kr.c
+++ b/iconvdata/iso-2022-kr.c
@@ -44,7 +44,7 @@
 #define MAX_NEEDED_TO		4
 #define PREPARE_LOOP \
   int save_set;								      \
-  int *setp = &data->__statep->count;					      \
+  int *setp = &data->__statep->__count;					      \
   if (!FROM_DIRECTION && !data->__internal_use				      \
       && data->__invocation_counter == 0)				      \
     {									      \
@@ -73,12 +73,12 @@ enum
    the output state to the initial state.  This has to be done during the
    flushing.  */
 #define EMIT_SHIFT_TO_INIT \
-  if (data->__statep->count != ASCII_set)				      \
+  if (data->__statep->__count != ASCII_set)				      \
     {									      \
       if (FROM_DIRECTION)						      \
 	/* It's easy, we don't have to emit anything, we just reset the	      \
 	   state for the input.  */					      \
-	data->__statep->count = ASCII_set;				      \
+	data->__statep->__count = ASCII_set;				      \
       else								      \
 	{								      \
 	  unsigned char *outbuf = data->__outbuf;			      \
@@ -95,7 +95,7 @@ enum
 	      if (data->__is_last)					      \
 		*written += 1;						      \
 	      data->__outbuf = outbuf;					      \
-	      data->__statep->count = ASCII_set;			      \
+	      data->__statep->__count = ASCII_set;			      \
 	    }								      \
 	}								      \
     }
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index 0903b554cd..66e72908bb 100644
--- a/wcsmbs/wchar.h
+++ b/wcsmbs/wchar.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -61,8 +61,12 @@ typedef unsigned int wint_t;
 /* Conversion state information.  */
 typedef struct
 {
-  int count;		/* Number of bytes needed for the current character. */
-  wint_t value;		/* Value so far.  */
+  int __count;
+  union
+  {
+    wint_t __wch;
+    char __wchb[4];
+  } __value;		/* Value so far.  */
 } __mbstate_t;
 #endif
 #undef __need_mbstate_t