about summary refs log tree commit diff
path: root/iconv
diff options
context:
space:
mode:
Diffstat (limited to 'iconv')
-rw-r--r--iconv/gconv.c10
-rw-r--r--iconv/gconv_int.h4
-rw-r--r--iconv/gconv_simple.c46
-rw-r--r--iconv/iconv.c18
-rw-r--r--iconv/loop.c6
-rw-r--r--iconv/skeleton.c33
6 files changed, 62 insertions, 55 deletions
diff --git a/iconv/gconv.c b/iconv/gconv.c
index fbb77554c4..06e212b2cb 100644
--- a/iconv/gconv.c
+++ b/iconv/gconv.c
@@ -29,7 +29,7 @@ int
 internal_function
 __gconv (__gconv_t cd, const unsigned char **inbuf,
 	 const unsigned char *inbufend, unsigned char **outbuf,
-	 unsigned char *outbufend, size_t *converted)
+	 unsigned char *outbufend, size_t *irreversible)
 {
   size_t last_step = cd->__nsteps - 1;
   int result;
@@ -37,8 +37,8 @@ __gconv (__gconv_t cd, const unsigned char **inbuf,
   if (cd == (__gconv_t) -1L)
     return __GCONV_ILLEGAL_DESCRIPTOR;
 
-  assert (converted != NULL);
-  *converted = 0;
+  assert (irreversible != NULL);
+  *irreversible = 0;
 
   cd->__data[last_step].__outbuf = outbuf != NULL ? *outbuf : NULL;
   cd->__data[last_step].__outbufend = outbufend;
@@ -47,7 +47,7 @@ __gconv (__gconv_t cd, const unsigned char **inbuf,
     /* We just flush.  */
     result = DL_CALL_FCT (cd->__steps->__fct,
 			   (cd->__steps, cd->__data, NULL, NULL,
-			    converted, 1, 0));
+			    irreversible, 1, 0));
   else
     {
       const unsigned char *last_start;
@@ -59,7 +59,7 @@ __gconv (__gconv_t cd, const unsigned char **inbuf,
 	  last_start = *inbuf;
 	  result = DL_CALL_FCT (cd->__steps->__fct,
 				 (cd->__steps, cd->__data, inbuf, inbufend,
-				  converted, 0, 0));
+				  irreversible, 0, 0));
 	}
       while (result == __GCONV_EMPTY_INPUT && last_start != *inbuf
 	     && *inbuf + cd->__steps->__min_needed_from <= inbufend);
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h
index 8624f74967..01cebe72c4 100644
--- a/iconv/gconv_int.h
+++ b/iconv/gconv_int.h
@@ -140,10 +140,10 @@ extern int __gconv_close (__gconv_t cd)
 /* Transform at most *INBYTESLEFT bytes from buffer starting at *INBUF
    according to rules described by CD and place up to *OUTBYTESLEFT
    bytes in buffer starting at *OUTBUF.  Return number of non-identical
-   conversions in *CONVERTED if this pointer is not null.  */
+   conversions in *IRREVERSIBLE if this pointer is not null.  */
 extern int __gconv (__gconv_t __cd, const unsigned char **__inbuf,
 		    const unsigned char *inbufend, unsigned char **__outbuf,
-		    unsigned char *outbufend, size_t *converted)
+		    unsigned char *outbufend, size_t *irreversible)
      internal_function;
 
 /* Return in *HANDLE a pointer to an array with *NSTEPS elements describing
diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c
index 7a1e6344a2..4b7004caa6 100644
--- a/iconv/gconv_simple.c
+++ b/iconv/gconv_simple.c
@@ -64,7 +64,8 @@ static const unsigned char encoding_byte[] =
 static inline int
 internal_ucs4_loop (const unsigned char **inptrp, const unsigned char *inend,
 		    unsigned char **outptrp, unsigned char *outend,
-		    mbstate_t *state, int flags, void *data, size_t *converted)
+		    mbstate_t *state, int flags, void *data,
+		    size_t *irreversible)
 {
   const unsigned char *inptr = *inptrp;
   unsigned char *outptr = *outptrp;
@@ -105,7 +106,7 @@ internal_ucs4_loop_unaligned (const unsigned char **inptrp,
 			      const unsigned char *inend,
 			      unsigned char **outptrp, unsigned char *outend,
 			      mbstate_t *state, int flags, void *data,
-			      size_t *converted)
+			      size_t *irreversible)
 {
   const unsigned char *inptr = *inptrp;
   unsigned char *outptr = *outptrp;
@@ -152,7 +153,7 @@ internal_ucs4_loop_single (const unsigned char **inptrp,
 			   const unsigned char *inend,
 			   unsigned char **outptrp, unsigned char *outend,
 			   mbstate_t *state, int flags, void *data,
-			   size_t *converted)
+			   size_t *irreversible)
 {
   size_t cnt = state->__count & 7;
 
@@ -206,7 +207,8 @@ internal_ucs4_loop_single (const unsigned char **inptrp,
 static inline int
 ucs4_internal_loop (const unsigned char **inptrp, const unsigned char *inend,
 		    unsigned char **outptrp, unsigned char *outend,
-		    mbstate_t *state, int flags, void *data, size_t *converted)
+		    mbstate_t *state, int flags, void *data,
+		    size_t *irreversible)
 {
   const unsigned char *inptr = *inptrp;
   unsigned char *outptr = *outptrp;
@@ -229,7 +231,7 @@ ucs4_internal_loop (const unsigned char **inptrp, const unsigned char *inend,
 	  if (flags & __GCONV_IGNORE_ERRORS)
 	    {
 	      /* Just ignore this character.  */
-	      ++*converted;
+	      ++*irreversible;
 	      continue;
 	    }
 
@@ -261,7 +263,7 @@ ucs4_internal_loop_unaligned (const unsigned char **inptrp,
 			      const unsigned char *inend,
 			      unsigned char **outptrp, unsigned char *outend,
 			      mbstate_t *state, int flags, void *data,
-			      size_t *converted)
+			      size_t *irreversible)
 {
   const unsigned char *inptr = *inptrp;
   unsigned char *outptr = *outptrp;
@@ -277,7 +279,7 @@ ucs4_internal_loop_unaligned (const unsigned char **inptrp,
 	  if (flags & __GCONV_IGNORE_ERRORS)
 	    {
 	      /* Just ignore this character.  */
-	      ++*converted;
+	      ++*irreversible;
 	      continue;
 	    }
 
@@ -320,7 +322,7 @@ ucs4_internal_loop_single (const unsigned char **inptrp,
 			   const unsigned char *inend,
 			   unsigned char **outptrp, unsigned char *outend,
 			   mbstate_t *state, int flags, void *data,
-			   size_t *converted)
+			   size_t *irreversible)
 {
   size_t cnt = state->__count & 7;
 
@@ -387,7 +389,7 @@ static inline int
 internal_ucs4le_loop (const unsigned char **inptrp, const unsigned char *inend,
 		      unsigned char **outptrp, unsigned char *outend,
 		      mbstate_t *state, int flags, void *data,
-		      size_t *converted)
+		      size_t *irreversible)
 {
   const unsigned char *inptr = *inptrp;
   unsigned char *outptr = *outptrp;
@@ -428,7 +430,7 @@ internal_ucs4le_loop_unaligned (const unsigned char **inptrp,
 				const unsigned char *inend,
 				unsigned char **outptrp, unsigned char *outend,
 				mbstate_t *state, int flags, void *data,
-				size_t *converted)
+				size_t *irreversible)
 {
   const unsigned char *inptr = *inptrp;
   unsigned char *outptr = *outptrp;
@@ -475,7 +477,7 @@ internal_ucs4le_loop_single (const unsigned char **inptrp,
 			     const unsigned char *inend,
 			     unsigned char **outptrp, unsigned char *outend,
 			     mbstate_t *state, int flags, void *data,
-			     size_t *converted)
+			     size_t *irreversible)
 {
   size_t cnt = state->__count & 7;
 
@@ -527,7 +529,7 @@ static inline int
 ucs4le_internal_loop (const unsigned char **inptrp, const unsigned char *inend,
 		      unsigned char **outptrp, unsigned char *outend,
 		      mbstate_t *state, int flags, void *data,
-		      size_t *converted)
+		      size_t *irreversible)
 {
   const unsigned char *inptr = *inptrp;
   unsigned char *outptr = *outptrp;
@@ -550,7 +552,7 @@ ucs4le_internal_loop (const unsigned char **inptrp, const unsigned char *inend,
 	  if (flags & __GCONV_IGNORE_ERRORS)
 	    {
 	      /* Just ignore this character.  */
-	      ++*converted;
+	      ++*irreversible;
 	      continue;
 	    }
 
@@ -580,7 +582,7 @@ ucs4le_internal_loop_unaligned (const unsigned char **inptrp,
 				const unsigned char *inend,
 				unsigned char **outptrp, unsigned char *outend,
 				mbstate_t *state, int flags, void *data,
-				size_t *converted)
+				size_t *irreversible)
 {
   const unsigned char *inptr = *inptrp;
   unsigned char *outptr = *outptrp;
@@ -596,7 +598,7 @@ ucs4le_internal_loop_unaligned (const unsigned char **inptrp,
 	  if (flags & __GCONV_IGNORE_ERRORS)
 	    {
 	      /* Just ignore this character.  */
-	      ++*converted;
+	      ++*irreversible;
 	      continue;
 	    }
 
@@ -641,7 +643,7 @@ ucs4le_internal_loop_single (const unsigned char **inptrp,
 			     const unsigned char *inend,
 			     unsigned char **outptrp, unsigned char *outend,
 			     mbstate_t *state, int flags, void *data,
-			     size_t *converted)
+			     size_t *irreversible)
 {
   size_t cnt = state->__count & 7;
 
@@ -715,7 +717,7 @@ ucs4le_internal_loop_single (const unsigned char **inptrp,
 	    break;							      \
 	  }								      \
 									      \
-	++*converted;							      \
+	++*irreversible;						      \
 	++inptr; 							      \
       }									      \
     else								      \
@@ -753,7 +755,7 @@ ucs4le_internal_loop_single (const unsigned char **inptrp,
 	    break;							      \
 	  }								      \
 									      \
-	++*converted;							      \
+	++*irreversible;						      \
 	inptr += 4; 							      \
       }									      \
     else								      \
@@ -933,7 +935,7 @@ ucs4le_internal_loop_single (const unsigned char **inptrp,
 	      {								      \
 		/* Ignore it.  */					      \
 		inptr += i;						      \
-		++*converted;						      \
+		++*irreversible;					      \
 		continue;						      \
 	      }								      \
 									      \
@@ -963,7 +965,7 @@ ucs4le_internal_loop_single (const unsigned char **inptrp,
 	    if (ignore_errors_p ())					      \
 	      {								      \
 		inptr += i;						      \
-		++*converted;						      \
+		++*irreversible;					      \
 		continue;						      \
 	      }								      \
 									      \
@@ -1130,7 +1132,7 @@ ucs4le_internal_loop_single (const unsigned char **inptrp,
 	  }								      \
 									      \
 	inptr += 4;							      \
-	++*converted;							      \
+	++*irreversible;						      \
       }									      \
     else 								      \
       *((uint16_t *) outptr)++ = *((uint32_t *) inptr)++;		      \
@@ -1186,7 +1188,7 @@ ucs4le_internal_loop_single (const unsigned char **inptrp,
 	  }								      \
 									      \
 	inptr += 4;							      \
-	++*converted;							      \
+	++*irreversible;						      \
       }									      \
     *((uint16_t *) outptr)++ = bswap_16 (val);				      \
     inptr += 4;								      \
diff --git a/iconv/iconv.c b/iconv/iconv.c
index 58d977e949..53c1f97e3b 100644
--- a/iconv/iconv.c
+++ b/iconv/iconv.c
@@ -34,17 +34,17 @@ iconv (iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf,
 {
   __gconv_t gcd = (__gconv_t) cd;
   char *outstart = outbuf ? *outbuf : NULL;
-  size_t converted;
+  size_t irreversible;
   int result;
 
   if (__builtin_expect (inbuf == NULL || *inbuf == NULL, 0))
     {
       if (outbuf == NULL || *outbuf == NULL)
-	result = __gconv (gcd, NULL, NULL, NULL, NULL, &converted);
+	result = __gconv (gcd, NULL, NULL, NULL, NULL, &irreversible);
       else
 	result = __gconv (gcd, NULL, NULL, (unsigned char **) outbuf,
 			  (unsigned char *) (outstart + *outbytesleft),
-			  &converted);
+			  &irreversible);
     }
   else
     {
@@ -54,7 +54,7 @@ iconv (iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf,
 			(const unsigned char *)  (*inbuf + *inbytesleft),
 			(unsigned char **) outbuf,
 			(unsigned char *) (*outbuf + *outbytesleft),
-			&converted);
+			&irreversible);
 
       *inbytesleft -= *inbuf - instart;
     }
@@ -65,22 +65,22 @@ iconv (iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf,
     {
     case __GCONV_ILLEGAL_DESCRIPTOR:
       __set_errno (EBADF);
-      converted = (size_t) -1L;
+      irreversible = (size_t) -1L;
       break;
 
     case __GCONV_ILLEGAL_INPUT:
       __set_errno (EILSEQ);
-      converted = (size_t) -1L;
+      irreversible = (size_t) -1L;
       break;
 
     case __GCONV_FULL_OUTPUT:
       __set_errno (E2BIG);
-      converted = (size_t) -1L;
+      irreversible = (size_t) -1L;
       break;
 
     case __GCONV_INCOMPLETE_INPUT:
       __set_errno (EINVAL);
-      converted = (size_t) -1L;
+      irreversible = (size_t) -1L;
       break;
 
     case __GCONV_EMPTY_INPUT:
@@ -92,5 +92,5 @@ iconv (iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf,
       assert (!"Nothing like this should happen");
     }
 
-  return converted;
+  return irreversible;
 }
diff --git a/iconv/loop.c b/iconv/loop.c
index 473d0a3922..c01e52040e 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -177,8 +177,8 @@
 static inline int
 FCTNAME (LOOPFCT) (const unsigned char **inptrp, const unsigned char *inend,
 		   unsigned char **outptrp, unsigned char *outend,
-		   mbstate_t *state, int flags, void *data, size_t *converted
-		   EXTRA_LOOP_DECLS)
+		   mbstate_t *state, int flags, void *data,
+		   size_t *irreversible EXTRA_LOOP_DECLS)
 {
   int result = __GCONV_OK;
   const unsigned char *inptr = *inptrp;
@@ -293,7 +293,7 @@ FCTNAME (LOOPFCT) (const unsigned char **inptrp, const unsigned char *inend,
 static inline int
 SINGLE(LOOPFCT) (const unsigned char **inptrp, const unsigned char *inend,
 		 unsigned char **outptrp, unsigned char *outend,
-		 mbstate_t *state, int flags, void *data, size_t *converted
+		 mbstate_t *state, int flags, void *data, size_t *irreversible
 		 EXTRA_LOOP_DECLS)
 {
   int result = __GCONV_OK;
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index bf4e11f37a..9b7b4a1125 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -271,7 +271,7 @@ gconv_init (struct __gconv_step *step)
 int
 FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 	       const unsigned char **inptrp, const unsigned char *inend,
-	       size_t *written, int do_flush, int consume_incomplete)
+	       size_t *irreversible, int do_flush, int consume_incomplete)
 {
   struct __gconv_step *next_step = step + 1;
   struct __gconv_step_data *next_data = data + 1;
@@ -295,7 +295,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
          successfully emitted the escape sequence.  */
       if (status == __GCONV_OK && ! (data->__flags & __GCONV_IS_LAST))
 	status = DL_CALL_FCT (fct, (next_step, next_data, NULL, NULL,
-				    written, 1, consume_incomplete));
+				    irreversible, 1, consume_incomplete));
     }
   else
     {
@@ -306,7 +306,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
       unsigned char *outstart;
       /* This variable is used to count the number of characters we
 	 actually converted.  */
-      size_t converted = 0;
+      size_t lirreversible = 0;
 #if defined _STRING_ARCH_unaligned \
     || MIN_NEEDED_FROM == 1 || MAX_NEEDED_FROM % MIN_NEEDED_FROM != 0 \
     || MIN_NEEDED_TO == 1 || MAX_NEEDED_TO % MIN_NEEDED_TO != 0
@@ -335,7 +335,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 	  if (MAX_NEEDED_TO == 1 || FROM_DIRECTION)
 	    status = SINGLE(FROM_LOOP) (inptrp, inend, &outbuf, outend,
 					data->__statep, data->__flags,
-					step->__data, &converted
+					step->__data, &lirreversible
 					EXTRA_LOOP_ARGS);
 # endif
 # if MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1 && !ONE_DIRECTION
@@ -344,7 +344,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 # if MAX_NEEDED_TO > 1 && !ONE_DIRECTION
 	    status = SINGLE(TO_LOOP) (inptrp, inend, &outbuf, outend,
 				      data->__statep, data->__flags,
-				      step->__data, &converted
+				      step->__data, &lirreversible
 				      EXTRA_LOOP_ARGS);
 # endif
 
@@ -388,12 +388,14 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 		/* Run the conversion loop.  */
 		status = FROM_LOOP (inptrp, inend, &outbuf, outend,
 				    data->__statep, data->__flags,
-				    step->__data, &converted EXTRA_LOOP_ARGS);
+				    step->__data, &lirreversible
+				    EXTRA_LOOP_ARGS);
 	      else
 		/* Run the conversion loop.  */
 		status = TO_LOOP (inptrp, inend, &outbuf, outend,
 				  data->__statep, data->__flags,
-				  step->__data, &converted EXTRA_LOOP_ARGS);
+				  step->__data, &lirreversible
+				  EXTRA_LOOP_ARGS);
 	    }
 #if !defined _STRING_ARCH_unaligned \
     && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
@@ -405,14 +407,16 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 		status = GEN_unaligned (FROM_LOOP) (inptrp, inend, &outbuf,
 						    outend, data->__statep,
 						    data->__flags,
-						    step->__data, &converted
+						    step->__data,
+						    &lirreversible
 						    EXTRA_LOOP_ARGS);
 	      else
 		/* Run the conversion loop.  */
 		status = GEN_unaligned (TO_LOOP) (inptrp, inend, &outbuf,
 						  outend, data->__statep,
 						  data->__flags,
-						  step->__data, &converted
+						  step->__data,
+						  &lirreversible
 						  EXTRA_LOOP_ARGS);
 	    }
 #endif
@@ -427,8 +431,9 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 	      /* Store information about how many bytes are available.  */
 	      data->__outbuf = outbuf;
 
-	      /* Remember how many non-identical characters we converted.  */
-	      *written += converted;
+	      /* Remember how many non-identical characters we
+                 converted in a irreversible way.  */
+	      *irreversible += lirreversible;
 
 	      break;
 	    }
@@ -440,7 +445,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 	      int result;
 
 	      result = DL_CALL_FCT (fct, (next_step, next_data, &outerr,
-					  outbuf, written, 0,
+					  outbuf, irreversible, 0,
 					  consume_incomplete));
 
 	      if (result != __GCONV_EMPTY_INPUT)
@@ -471,7 +476,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 					     (unsigned char **) &outbuf,
 					     (unsigned char *) outerr,
 					     data->__statep, data->__flags,
-					     step->__data, &converted
+					     step->__data, &lirreversible
 					     EXTRA_LOOP_ARGS);
 		      else
 			/* Run the conversion loop.  */
@@ -480,7 +485,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 					   (unsigned char **) &outbuf,
 					   (unsigned char *) outerr,
 					   data->__statep, data->__flags,
-					   step->__data, &converted
+					   step->__data, &lirreversible
 					   EXTRA_LOOP_ARGS);
 
 		      /* We must run out of output buffer space in this