aboutsummaryrefslogtreecommitdiff
path: root/iconv
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-06-16 22:55:47 +0000
committerUlrich Drepper <drepper@redhat.com>1999-06-16 22:55:47 +0000
commitd64b6ad07585b8a37e5fecc9a47fcee766d52ede (patch)
tree076b36cc9c1b82254348212e75939d842885563a /iconv
parentbc938d3de936a8e429b16237180c046139be8247 (diff)
downloadglibc-d64b6ad07585b8a37e5fecc9a47fcee766d52ede.tar.xz
glibc-d64b6ad07585b8a37e5fecc9a47fcee766d52ede.zip
Update.
* Versions.def: Add GLIBC_2.2 for libc. * iconv/gconv.h: Make header suitable for inclusion in public header by protecting all names with __. * iconv/gconv.c: Adapt for symbol name changes. * iconv/gconv.h: Likewise. * iconv/gconv_builtin.c: Likewise. * iconv/gconv_close.c: Likewise. * iconv/gconv_db.c: Likewise. * iconv/gconv_dl.c: Likewise. * iconv/gconv_int.h: Likewise. * iconv/gconv_open.c: Likewise. * iconv/gconv_simple.c: Likewise. * iconv/iconv.c: Likewise. * iconv/iconv_close.c: Likewise. * iconv/iconv_open.c: Likewise. * iconv/loop.c: Likewise. * iconv/skeleton.c: Likewise. * iconvdata/8bit-gap.c: Likewise. * iconvdata/8bit-generic.c: Likewise. * iconvdata/ansi_x3.110.c: Likewise. * iconvdata/big5.c: Likewise. * iconvdata/cns11643.h: Likewise. * iconvdata/cns11643l1.h: Likewise. * iconvdata/euc-cn.c: Likewise. * iconvdata/euc-jp.c: Likewise. * iconvdata/euc-kr.c: Likewise. * iconvdata/euc-tw.c: Likewise. * iconvdata/gb2312.h: Likewise. * iconvdata/iso-2022-jp.c: Likewise. * iconvdata/iso-2022-kr.c: Likewise. * iconvdata/iso646.c: Likewise. * iconvdata/iso8859-1.c: Likewise. * iconvdata/iso_6937-2.c: Likewise. * iconvdata/iso_6937.c: Likewise. * iconvdata/jis0201.h: Likewise. * iconvdata/jis0208.h: Likewise. * iconvdata/jis0212.h: Likewise. * iconvdata/johab.c: Likewise. * iconvdata/ksc5601.h: Likewise. * iconvdata/sjis.c: Likewise. * iconvdata/t.61.c: Likewise. * iconvdata/uhc.c: Likewise. * stdlib/mblen.c: Likewise. * stdlib/mbtowc.c: Likewise. * stdlib/wctomb.c: Likewise. * wcsmbs/btowc.c: Likewise. * wcsmbs/mbrtowc.c: Likewise. * wcsmbs/mbsnrtowcs.c: Likewise. * wcsmbs/mbsrtowcs.c: Likewise. * wcsmbs/wchar.h: Likewise. * wcsmbs/wcrtomb.c: Likewise. * wcsmbs/wcsmbsload.c: Likewise. * wcsmbs/wcsmbsload.h: Likewise. * wcsmbs/wcsnrtombs.c: Likewise. * wcsmbs/wcsrtombs.c: Likewise. * wcsmbs/wctob.c: Likewise. * include/limits.h (MB_LEN_MAX): Increase to 16. * sysdeps/generic/_G_config.h: Define _G_fpos_t as struct. Define _G_iconv_t. * sysdeps/unix/sysv/linux/_G_config.h: Likewise. * include/wchar.h: Change mbstate_t to __mbstate_t. * libio/Makefile (routines): Add wfiledoalloc, oldiofgetpos, oldiofgetpos64, oldiofsetpos, oldiofsetpos64, fputwc, fputwc_u, getwc, getwc_u, getwchar, getwchar_u, iofgetws, iofgetws_u, iofputws, iofputws_u, iogetwline, iowpadn, ioungetwc, putwc, putwc_u, putchar, putchar_u, swprintf, vwprintf, wprintf, wscanf, fwscanf, vwscanf, vswprintf, iovswscanf, swscanf, wgenops, wstrops, wfileops, and iofwide. (tests): Add tst_swprintf, tst_wprintf, tst_swscanf, and tst_wscanf. * libio/Versions: Add _IO_fgetpos, _IO_fgetpos64, _IO_fsetpos, _IO_fsetpos64, fgetpos, fgetpos64, fgetwc, fgetwc_unlocked, fgetws, fgetws_unlocked, fputwc, fputwc_unlocked, fputws, fputws_unlocked, fsetpos, fsetpos64, fwide, fwprintf, fwscanf, getwc, getwc_unlocked, getwchar, getwchar_unlocked, putwc, putwc_unlocked, putwchar, putwchar_unlocked, swprintf, swscanf, ungetwc, vfwprintf, vswprintf, vwprintf, vfwscanf, vswscanf, vwscanf, wprintf, and wscanf to GLIBC_2.2 for libc. * libio/libio.h: Define codecvt struct. Define _IO_wide_data. Extend _IO_file contain pointer to codecvt, widedata and mode. (_IO_getwc_unlocked): New macro. (_IO_putwc_unlocked): New macro. (_IO_fwide): New macro. * libio/libioP.h: Add new prototypes and adjust existing declarations. * libio/fileops.c (_IO_new_file_close_it): Reset normal or widedata buffers based on mode. (new_do_write): Set _IO_write_end to _IO_buf_end if stream is wide oriented. (_IO_new_file_overflow): Don't depend only on _IO_CURRENTLY_PUTTING flag to be enough to signal unallocated buffer. For wide oriented stream don't make it linebuffered. Don't use _IO_do_flush, use _IO_new_do_write directly. (_IO_new_file_seekoff): Change return value type to _IO_off64_t. (_IO_file_seek): Likewise. * libio/genops.c (_IO_least_marker): Make global. (__underflow): Orient stream if not already done. (__uflow): Likewise. (_IO_default_seekpos): Change to type _IO_off64_t. (_IO_default_seekoff): Likewise. (_IO_default_seek): Likewise. (_IO_no_init): New function. Similar to _IO_init but allows to orient in initialization. * libio/iolibio.h: Add prototype for _IO_vswprintf. Change _IO_pos_BAD to use _IO_off64_t. * libio/ftello.c: Use _IO_off_t. For now abort when use with wide char stream. * libio/ftello64.c: Likewise. * libio/ioftell.c: Likewise. * libio/iofopncook.c: Likewise. * libio/ioseekoff.c: Likewise. * libio/ioseekpos.c: Likewise. * libio/oldfileops.c: Likewise. * libio/iofgetpos.c: Store state of conversion if necessary. * libio/iofgetpos64.c: Likewise. * libio/iofsetpos.c: Restore conversion state if necessary. * libio/iofsetpos64.c: Likewise. * libio/iofdopen.c: Initialize so that stream can be wide oriented. * libio/iofopen.c: Likewise. * libio/iofopen64.c: Likewise. * libio/iopopen.c: Likewise. * libio/iovdprintf.c: Likewise. * libio/iovsprintf.c: Likewise. * libio/iovsscanf.c: Likewise. * libio/memstream.c: Likewise. * libio/obprintf.c: Likewise. * libio/iofputs.c: Orient stream if not already happened. * libio/iofputs_u.c: Likewise. * libio/iofwrite.c: Likewise. * libio/iofwrite_u.c: Likewise. * libio/ioputs.c: Likewise. * libio/iosetbuffer.c: Handle not yet oriented stream. * libio/iosetvbuf.c: Likewise. * libio/oldstdfiles.c: Adjust FILEBUF_LITERAL call. * libio/stdfiles.c: Likewise. * libio/strops.c (_IO_str_overflow): Correctly free buffer after failed allocation. (_IO_str_seekoff): Use _IO_off64_t. * libio/vasprintf.c: Pre-orient stream. * libio/vsnprintf.c: Likewise. * libio/fputwc.c: New file. * libio/fputwc_u.c: New file. * libio/fwprintf.c: New file. * libio/fwscanf.c: New file. * libio/getwc.c: New file. * libio/getwc_u.c: New file. * libio/getwchar.c: New file. * libio/getwchar_u.c: New file. * libio/iofgetws.c: New file. * libio/iofgetws_u.c: New file. * libio/iofputws.c: New file. * libio/iofputws_u.c: New file. * libio/iofwide.c: New file. * libio/iogetwline.c: New file. * libio/ioungetwc.c: New file. * libio/iovswscanf.c: New file. * libio/iowpadn.c: New file. * libio/oldiofgetpos.c: New file. * libio/oldiofgetpos64.c: New file. * libio/oldiofsetpos.c: New file. * libio/oldiofsetpos64.c: New file. * libio/putwc.c: New file. * libio/putwc_u.c: New file. * libio/putwchar.c: New file. * libio/putwchar_u.c: New file. * libio/swprintf.c: New file. * libio/swscanf.c: New file. * libio/tst_swprintf.c: New file. * libio/tst_swscanf.c: New file. * libio/tst_wprintf.c: New file. * libio/tst_wscanf.c: New file. * libio/tst_wscanf.input: New file. * libio/vswprintf.c: New file. * libio/vwprintf.c: New file. * libio/vwscanf.c: New file. * libio/wfiledoalloc.c: New file. * libio/wfileops.c: New file. * libio/wgenops.c: New file. * libio/wprintf.c: New file. * libio/wscanf.c: New file. * libio/wstrops.c: New file. * stdio-common/Makefile (routines): Add _itowa, itowa-digits, vfwprintf, and vfwscanf. * stdio-common/_itoa.c (base_table): Rename to _IO_base_table and make global. * stdio-common/_itowa.c: New file. * stdio-common/_itowa.h: New file. * stdio-common/itoa-digits.c: Minimal optimization. * stdio-common/itowa-digits.c: New file. * stdio-common/printf-parse.h: Allow use in wide character context. * stdio-common/printf-prs.c: Define ISASCII and MBRLEN. * stdio-common/printf.h (printf_info): Add wide bit. * stdio-common/printf_fp.c: Determine from wide bit whether stream is wide oriented or not. * stdio-common/printf_size.c: Likewise. * sysdeps/generic/printf_fphex.c: Likewise. * stdlib/strfmon.c: Call __printf_fp with wide bit cleared. * stdio-common/vfprintf.c: Rewrite to allow use in wide character context. * stdio-common/vfscand.c: Likewise. * stdio-common/vfwprintf.c: New file. * stdio-common/vfwscanf.c: New file. * time/Makefile (routines): Add wcsftime. (tests): Add tst_wcsftime. * time/Versions: Add wcsftime to GLIBC_2.2 for libc. * time/strftime.c: Make usable as wcsftime. * time/wcsftime.c: New file. * time/tst_wcsftime.c: New file. * wcsmbs/Makefile (routines): Add wmempcpy and wcschrnul. * wcsmbs/Versions: Add wmempcpy and wcschrnul to GLIBC_2.2 for libc. * wcsmbs/wcschrnul.c: New file. * wcsmbs/wmemcpy.c: New file. * wcsmbs/wmemcpy.c: Rename to __wmemcpy and make wmemcpy weak alias. * wcsmbs/wmemmove.c: Likewise for wmemmove. * manual/stdio.texi: Document is_char and wide element if printf_info. * manual/time.texi: Document wcsftime. * include/wchar.h: Add prototypes for __wmemcpy, __wmempcpy, __wmemmove, __wcschrnul, and __vfwscanf. * locale/langinfo.h: Add new LC_TIME entries for wchar_t data. * locale/C-time.c: Adapt for above change. * locale/categories.def: Likewise. * locale/localeinfo.h: Likewise. * localedata/Makefile: Don't run tests for now.
Diffstat (limited to 'iconv')
-rw-r--r--iconv/gconv.c30
-rw-r--r--iconv/gconv.h102
-rw-r--r--iconv/gconv_builtin.c46
-rw-r--r--iconv/gconv_close.c18
-rw-r--r--iconv/gconv_db.c118
-rw-r--r--iconv/gconv_dl.c28
-rw-r--r--iconv/gconv_int.h27
-rw-r--r--iconv/gconv_open.c49
-rw-r--r--iconv/gconv_simple.c42
-rw-r--r--iconv/iconv.c14
-rw-r--r--iconv/iconv_close.c4
-rw-r--r--iconv/iconv_open.c6
-rw-r--r--iconv/loop.c19
-rw-r--r--iconv/skeleton.c78
14 files changed, 294 insertions, 287 deletions
diff --git a/iconv/gconv.c b/iconv/gconv.c
index 14398e2e37..828db9d6f8 100644
--- a/iconv/gconv.c
+++ b/iconv/gconv.c
@@ -27,43 +27,45 @@
int
internal_function
-__gconv (gconv_t cd, const unsigned char **inbuf, const unsigned char *inbufend,
- unsigned char **outbuf, unsigned char *outbufend, size_t *converted)
+__gconv (__gconv_t cd, const unsigned char **inbuf,
+ const unsigned char *inbufend, unsigned char **outbuf,
+ unsigned char *outbufend, size_t *converted)
{
- size_t last_step = cd->nsteps - 1;
+ size_t last_step = cd->__nsteps - 1;
int result;
- if (cd == (gconv_t) -1L)
- return GCONV_ILLEGAL_DESCRIPTOR;
+ if (cd == (__gconv_t) -1L)
+ return __GCONV_ILLEGAL_DESCRIPTOR;
assert (converted != NULL);
*converted = 0;
if (inbuf == NULL || *inbuf == NULL)
/* We just flush. */
- result = _CALL_DL_FCT (cd->steps->fct,
- (cd->steps, cd->data, NULL, NULL, converted, 1));
+ result = _CALL_DL_FCT (cd->__steps->__fct,
+ (cd->__steps, cd->__data, NULL, NULL,
+ converted, 1));
else
{
const unsigned char *last_start;
assert (outbuf != NULL && *outbuf != NULL);
- cd->data[last_step].outbuf = *outbuf;
- cd->data[last_step].outbufend = outbufend;
+ cd->__data[last_step].__outbuf = *outbuf;
+ cd->__data[last_step].__outbufend = outbufend;
do
{
last_start = *inbuf;
- result = _CALL_DL_FCT (cd->steps->fct,
- (cd->steps, cd->data, inbuf, inbufend,
+ result = _CALL_DL_FCT (cd->__steps->__fct,
+ (cd->__steps, cd->__data, inbuf, inbufend,
converted, 0));
}
- while (result == GCONV_EMPTY_INPUT && last_start != *inbuf
- && *inbuf + cd->steps->min_needed_from <= inbufend);
+ while (result == __GCONV_EMPTY_INPUT && last_start != *inbuf
+ && *inbuf + cd->__steps->__min_needed_from <= inbufend);
}
if (outbuf != NULL && *outbuf != NULL)
- *outbuf = cd->data[last_step].outbuf;
+ *outbuf = cd->__data[last_step].__outbuf;
return result;
}
diff --git a/iconv/gconv.h b/iconv/gconv.h
index 4b71ccf4b8..f4a66c68d4 100644
--- a/iconv/gconv.h
+++ b/iconv/gconv.h
@@ -24,106 +24,108 @@
#define _GCONV_H 1
#include <features.h>
+#define __need_mbstate_t
#include <wchar.h>
#define __need_size_t
#include <stddef.h>
/* ISO 10646 value used to signal invalid value. */
-#define UNKNOWN_10646_CHAR ((wchar_t) 0xfffd)
+#define __UNKNOWN_10646_CHAR ((wchar_t) 0xfffd)
/* Error codes for gconv functions. */
enum
{
- GCONV_OK = 0,
- GCONV_NOCONV,
- GCONV_NODB,
- GCONV_NOMEM,
-
- GCONV_EMPTY_INPUT,
- GCONV_FULL_OUTPUT,
- GCONV_ILLEGAL_INPUT,
- GCONV_INCOMPLETE_INPUT,
-
- GCONV_ILLEGAL_DESCRIPTOR,
- GCONV_INTERNAL_ERROR
+ __GCONV_OK = 0,
+ __GCONV_NOCONV,
+ __GCONV_NODB,
+ __GCONV_NOMEM,
+
+ __GCONV_EMPTY_INPUT,
+ __GCONV_FULL_OUTPUT,
+ __GCONV_ILLEGAL_INPUT,
+ __GCONV_INCOMPLETE_INPUT,
+
+ __GCONV_ILLEGAL_DESCRIPTOR,
+ __GCONV_INTERNAL_ERROR
};
/* Forward declarations. */
-struct gconv_step;
-struct gconv_step_data;
-struct gconv_loaded_object;
+struct __gconv_step;
+struct __gconv_step_data;
+struct __gconv_loaded_object;
/* Type of a conversion function. */
-typedef int (*gconv_fct) __PMT ((struct gconv_step *,
- struct gconv_step_data *,
- __const unsigned char **,
- __const unsigned char *, size_t *, int));
+typedef int (*__gconv_fct) __PMT ((struct __gconv_step *,
+ struct __gconv_step_data *,
+ __const unsigned char **,
+ __const unsigned char *, size_t *, int));
/* Constructor and destructor for local data for conversion step. */
-typedef int (*gconv_init_fct) __PMT ((struct gconv_step *));
-typedef void (*gconv_end_fct) __PMT ((struct gconv_step *));
+typedef int (*__gconv_init_fct) __PMT ((struct __gconv_step *));
+typedef void (*__gconv_end_fct) __PMT ((struct __gconv_step *));
/* Description of a conversion step. */
-struct gconv_step
+struct __gconv_step
{
- struct gconv_loaded_object *shlib_handle;
- __const char *modname;
+ struct __gconv_loaded_object *__shlib_handle;
+ __const char *__modname;
- int counter;
+ int __counter;
- __const char *from_name;
- __const char *to_name;
+ __const char *__from_name;
+ __const char *__to_name;
- gconv_fct fct;
- gconv_init_fct init_fct;
- gconv_end_fct end_fct;
+ __gconv_fct __fct;
+ __gconv_init_fct __init_fct;
+ __gconv_end_fct __end_fct;
/* Information about the number of bytes needed or produced in this
step. This helps optimizing the buffer sizes. */
- int min_needed_from;
- int max_needed_from;
- int min_needed_to;
- int max_needed_to;
+ int __min_needed_from;
+ int __max_needed_from;
+ int __min_needed_to;
+ int __max_needed_to;
/* Flag whether this is a stateful encoding or not. */
- int stateful;
+ int __stateful;
- void *data; /* Pointer to step-local data. */
+ void *__data; /* Pointer to step-local data. */
};
/* Additional data for steps in use of conversion descriptor. This is
allocated by the `init' function. */
-struct gconv_step_data
+struct __gconv_step_data
{
- unsigned char *outbuf; /* Output buffer for this step. */
- unsigned char *outbufend; /* Address of first byte after the output buffer.*/
+ unsigned char *__outbuf; /* Output buffer for this step. */
+ unsigned char *__outbufend; /* Address of first byte after the output
+ buffer.*/
/* Is this the last module in the chain. */
- int is_last;
+ int __is_last;
/* Counter for number of invocations of the module function for this
descriptor. */
- int invocation_counter;
+ int __invocation_counter;
/* Flag whether this is an internal use of the module (in the mb*towc*
and wc*tomb* functions) or regular with iconv(3). */
- int internal_use;
+ int __internal_use;
- mbstate_t *statep;
- mbstate_t __state; /* This element should not be used directly by
+ __mbstate_t *__statep;
+ __mbstate_t __state; /* This element should not be used directly by
any module; always use STATEP! */
};
/* Combine conversion step description with data. */
-typedef struct gconv_info
+typedef struct __gconv_info
{
- size_t nsteps;
- struct gconv_step *steps;
- struct gconv_step_data data[0];
-} *gconv_t;
+ size_t __nsteps;
+ struct __gconv_step *__steps;
+ struct __gconv_step_data __data[0];
+} *__gconv_t;
#endif /* gconv.h */
diff --git a/iconv/gconv_builtin.c b/iconv/gconv_builtin.c
index 4f3ca565ac..ca3ca3e5e6 100644
--- a/iconv/gconv_builtin.c
+++ b/iconv/gconv_builtin.c
@@ -1,5 +1,5 @@
/* Table for builtin transformation mapping.
- Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -29,9 +29,9 @@
static struct builtin_map
{
const char *name;
- gconv_fct fct;
- gconv_init_fct init;
- gconv_end_fct end;
+ __gconv_fct fct;
+ __gconv_init_fct init;
+ __gconv_end_fct end;
int min_needed_from;
int max_needed_from;
@@ -43,15 +43,15 @@ static struct builtin_map
#define BUILTIN_TRANSFORMATION(From, ConstPfx, ConstLen, To, Cost, Name, \
Fct, Init, End, MinF, MaxF, MinT, MaxT) \
{ \
- name: Name, \
- fct: Fct, \
- init: Init, \
- end: End, \
+ .name = Name, \
+ .fct = Fct, \
+ .init = Init, \
+ .end = End, \
\
- min_needed_from: MinF, \
- max_needed_from: MaxF, \
- min_needed_to: MinT, \
- max_needed_to: MaxT \
+ .min_needed_from = MinF, \
+ .max_needed_from = MaxF, \
+ .min_needed_to = MinT, \
+ .max_needed_to = MaxT \
},
#define BUILTIN_ALIAS(From, To)
@@ -61,7 +61,7 @@ static struct builtin_map
void
internal_function
-__gconv_get_builtin_trans (const char *name, struct gconv_step *step)
+__gconv_get_builtin_trans (const char *name, struct __gconv_step *step)
{
size_t cnt;
@@ -71,17 +71,17 @@ __gconv_get_builtin_trans (const char *name, struct gconv_step *step)
assert (cnt < sizeof (map) / sizeof (map[0]));
- step->fct = map[cnt].fct;
- step->init_fct = map[cnt].init;
- step->end_fct = map[cnt].end;
- step->counter = INT_MAX;
- step->shlib_handle = NULL;
+ step->__fct = map[cnt].fct;
+ step->__init_fct = map[cnt].init;
+ step->__end_fct = map[cnt].end;
+ step->__counter = INT_MAX;
+ step->__shlib_handle = NULL;
- step->min_needed_from = map[cnt].min_needed_from;
- step->max_needed_from = map[cnt].max_needed_from;
- step->min_needed_to = map[cnt].min_needed_to;
- step->max_needed_to = map[cnt].max_needed_to;
+ step->__min_needed_from = map[cnt].min_needed_from;
+ step->__max_needed_from = map[cnt].max_needed_from;
+ step->__min_needed_to = map[cnt].min_needed_to;
+ step->__max_needed_to = map[cnt].max_needed_to;
/* None of the builtin converters handles stateful encoding. */
- step->stateful = 0;
+ step->__stateful = 0;
}
diff --git a/iconv/gconv_close.c b/iconv/gconv_close.c
index 2fe842467b..a22123b1c9 100644
--- a/iconv/gconv_close.c
+++ b/iconv/gconv_close.c
@@ -25,23 +25,23 @@
int
internal_function
-__gconv_close (gconv_t cd)
+__gconv_close (__gconv_t cd)
{
- struct gconv_step *srunp;
- struct gconv_step_data *drunp;
+ struct __gconv_step *srunp;
+ struct __gconv_step_data *drunp;
size_t nsteps;
/* Free all resources by calling destructor functions and release
the implementations. */
- srunp = cd->steps;
- nsteps = cd->nsteps;
- drunp = cd->data;
+ srunp = cd->__steps;
+ nsteps = cd->__nsteps;
+ drunp = cd->__data;
do
{
- if (!drunp->is_last && drunp->outbuf != NULL)
- free (drunp->outbuf);
+ if (!drunp->__is_last && drunp->__outbuf != NULL)
+ free (drunp->__outbuf);
}
- while (!(drunp++)->is_last);
+ while (!(drunp++)->__is_last);
/* Free the data allocated for the descriptor. */
free (cd);
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index 4abc1ae48b..727be41c25 100644
--- a/iconv/gconv_db.c
+++ b/iconv/gconv_db.c
@@ -82,7 +82,7 @@ struct known_derivation
{
const char *from;
const char *to;
- struct gconv_step *steps;
+ struct __gconv_step *steps;
size_t nsteps;
};
@@ -107,7 +107,7 @@ static void *known_derivations;
static int
internal_function
derivation_lookup (const char *fromset, const char *toset,
- struct gconv_step **handle, size_t *nsteps)
+ struct __gconv_step **handle, size_t *nsteps)
{
struct known_derivation key = { fromset, toset, NULL, 0 };
struct known_derivation **result;
@@ -115,21 +115,21 @@ derivation_lookup (const char *fromset, const char *toset,
result = __tfind (&key, &known_derivations, derivation_compare);
if (result == NULL)
- return GCONV_NOCONV;
+ return __GCONV_NOCONV;
*handle = (*result)->steps;
*nsteps = (*result)->nsteps;
/* Please note that we return GCONV_OK even if the last search for
this transformation was unsuccessful. */
- return GCONV_OK;
+ return __GCONV_OK;
}
/* Add new derivation to list of known ones. */
static void
internal_function
add_derivation (const char *fromset, const char *toset,
- struct gconv_step *handle, size_t nsteps)
+ struct __gconv_step *handle, size_t nsteps)
{
struct known_derivation *new_deriv;
size_t fromset_len = strlen (fromset) + 1;
@@ -163,14 +163,14 @@ free_derivation (void *p)
size_t cnt;
for (cnt = 0; cnt < deriv->nsteps; ++cnt)
- if (deriv->steps[cnt].end_fct)
- _CALL_DL_FCT (deriv->steps[cnt].end_fct, (&deriv->steps[cnt]));
+ if (deriv->steps[cnt].__end_fct)
+ _CALL_DL_FCT (deriv->steps[cnt].__end_fct, (&deriv->steps[cnt]));
/* Free the name strings. */
- free ((char *) deriv->steps[0].from_name);
- free ((char *) deriv->steps[deriv->nsteps - 1].to_name);
+ free ((char *) deriv->steps[0].__from_name);
+ free ((char *) deriv->steps[deriv->nsteps - 1].__to_name);
- free ((struct gconv_step *) deriv->steps);
+ free ((struct __gconv_step *) deriv->steps);
free (deriv);
}
@@ -178,40 +178,40 @@ free_derivation (void *p)
static int
internal_function
gen_steps (struct derivation_step *best, const char *toset,
- const char *fromset, struct gconv_step **handle, size_t *nsteps)
+ const char *fromset, struct __gconv_step **handle, size_t *nsteps)
{
size_t step_cnt = 0;
- struct gconv_step *result;
+ struct __gconv_step *result;
struct derivation_step *current;
- int status = GCONV_NOMEM;
+ int status = __GCONV_NOMEM;
/* First determine number of steps. */
for (current = best; current->last != NULL; current = current->last)
++step_cnt;
- result = (struct gconv_step *) malloc (sizeof (struct gconv_step)
- * step_cnt);
+ result = (struct __gconv_step *) malloc (sizeof (struct __gconv_step)
+ * step_cnt);
if (result != NULL)
{
int failed = 0;
- status = GCONV_OK;
+ status = __GCONV_OK;
*nsteps = step_cnt;
current = best;
while (step_cnt-- > 0)
{
- result[step_cnt].from_name = (step_cnt == 0
- ? __strdup (fromset)
- : current->last->result_set);
- result[step_cnt].to_name = (step_cnt + 1 == *nsteps
- ? __strdup (current->result_set)
- : result[step_cnt + 1].from_name);
+ result[step_cnt].__from_name = (step_cnt == 0
+ ? __strdup (fromset)
+ : current->last->result_set);
+ result[step_cnt].__to_name = (step_cnt + 1 == *nsteps
+ ? __strdup (current->result_set)
+ : result[step_cnt + 1].__from_name);
#ifndef STATIC_GCONV
if (current->code->module_name[0] == '/')
{
/* Load the module, return handle for it. */
- struc