aboutsummaryrefslogtreecommitdiff
path: root/iconv
diff options
context:
space:
mode:
Diffstat (limited to 'iconv')
-rw-r--r--iconv/gconv_int.h6
-rw-r--r--iconv/loop.c52
-rw-r--r--iconv/skeleton.c4
3 files changed, 6 insertions, 56 deletions
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h
index 794f41f..da9e012 100644
--- a/iconv/gconv_int.h
+++ b/iconv/gconv_int.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -111,8 +111,8 @@ 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 written
- characters in *CONVERTED if this pointer is not null. */
+ bytes in buffer starting at *OUTBUF. Return number of non-identical
+ conversions in *CONVERTED 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)
diff --git a/iconv/loop.c b/iconv/loop.c
index ada4f0a..5c5948f 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -1,5 +1,5 @@
/* Conversion loop frame work.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -36,11 +36,6 @@
the name is `loop' but this prevents the use
of multiple functions in the same file.
- COUNT_CONVERTED optional macro which is used to count the actual
- number of characters converted. For some conversion
- it is easy to compute the value afterwards, but for
- others explicit counting is cheaper.
-
BODY this is supposed to expand to the body of the loop.
The user must provide this.
@@ -87,30 +82,6 @@
# error "Definition of BODY missing for function" LOOPFCT
#endif
-/* We can calculate the number of converted characters easily if one
- of the character sets has a fixed width. */
-#ifndef COUNT_CONVERTED
-# if MIN_NEEDED_INPUT == MAX_NEEDED_INPUT
-# if MIN_NEEDED_OUTPUT == MAX_NEEDED_OUTPUT
-/* Decide whether one of the charsets has size 1. */
-# if MIN_NEEDED_INPUT == 1
-# define COUNT_CONVERTED (inptr - *inptrp)
-# elif MIN_NEEDED_OUTPUT == 1
-# define COUNT_CONVERTED (outptr - *outptrp)
-# else
-/* Else we should see whether one of the two numbers is a power of 2. */
-# define COUNT_CONVERTED \
- ((MIN_NEEDED_INPUT & (-MIN_NEEDED_INPUT)) == MIN_NEEDED_INPUT \
- ? (inptr - *inptrp) : (outptr - *outptrp))
-# endif
-# else
-# define COUNT_CONVERTED ((inptr - *inptrp) / MIN_NEEDED_INPUT)
-# endif
-# elif MIN_NEEDED_OUTPUT == MAX_NEEDED_OUTPUT
-# define COUNT_CONVERTED ((outptr - *outptrp) / MIN_NEEDED_OUTPUT)
-# endif
-#endif
-
/* If no arguments have to passed to the loop function define the macro
as empty. */
@@ -128,9 +99,6 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend,
int result = __GCONV_OK;
const unsigned char *inptr = *inptrp;
unsigned char *outptr = *outptrp;
-#ifndef COUNT_CONVERTED
- size_t done = 0;
-#endif
/* We run one loop where we avoid checks for underflow/overflow of the
buffers to speed up the conversion a bit. */
@@ -151,11 +119,6 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend,
vary in size), GCONV_ILLEGAL_INPUT, or GCONV_FULL_OUTPUT (if the
output characters vary in size. */
BODY
-
- /* If necessary count the successful conversion. */
-#ifndef COUNT_CONVERTED
- ++done;
-#endif
}
if (result == __GCONV_OK)
@@ -205,22 +168,10 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend,
input characters vary in size), GCONV_ILLEGAL_INPUT, or
GCONV_FULL_OUTPUT (if the output characters vary in size). */
BODY
-
- /* If necessary count the successful conversion. */
-# ifndef COUNT_CONVERTED
- ++done;
-# endif
}
#endif /* Input and output charset are not both fixed width. */
}
- /* Add the number of characters we actually converted. */
-#ifdef COUNT_CONVERTED
- *converted += COUNT_CONVERTED;
-#else
- *converted += done;
-#endif
-
/* Update the pointers pointed to by the parameters. */
*inptrp = inptr;
*outptrp = outptr;
@@ -239,7 +190,6 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend,
#undef MIN_NEEDED_OUTPUT
#undef MAX_NEEDED_OUTPUT
#undef LOOPFCT
-#undef COUNT_CONVERTED
#undef BODY
#undef LOOPFCT
#undef EXTRA_LOOP_DECLS
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index 02d6118..da15758 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -1,5 +1,5 @@
/* Skeleton for a conversion module.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -264,7 +264,7 @@ 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 characters we converted. */
+ /* Remember how many non-identical characters we converted. */
*written += converted;
break;