From 9ce5071a3d3af1b7837b1a081548fdd945a66efe Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 21 Apr 1998 19:09:49 +0000 Subject: Update. 1998-04-21 19:05 Ulrich Drepper * iconv/gconv.h (struct gconv_step): Add element stateful. * iconv/gconv_builtin.c (__gconv_builtin_trans): Initialize stateful to zero for all internal conversions. * iconv/skeleton.c: Initialize stateful depending on whether or not RESET_STATE is defined to one or zero respectively. * stdlib/mblen.c: Use stateful element of currently selected converter for result if S is NULL. * stdlib/mbtowc.c: Likewise. * stdlib/wctomb.c: Likewise. --- iconv/gconv.h | 3 +++ iconv/gconv_builtin.c | 3 +++ iconv/skeleton.c | 6 ++++++ 3 files changed, 12 insertions(+) (limited to 'iconv') diff --git a/iconv/gconv.h b/iconv/gconv.h index cd0e3de1dc..b359c92c62 100644 --- a/iconv/gconv.h +++ b/iconv/gconv.h @@ -87,6 +87,9 @@ struct gconv_step int min_needed_to; int max_needed_to; + /* Flag whether this is a stateful encoding or not. */ + int stateful; + void *data; /* Pointer to step-local data. */ }; diff --git a/iconv/gconv_builtin.c b/iconv/gconv_builtin.c index a970fcc8f2..4f3ca565ac 100644 --- a/iconv/gconv_builtin.c +++ b/iconv/gconv_builtin.c @@ -81,4 +81,7 @@ __gconv_get_builtin_trans (const char *name, struct gconv_step *step) 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; } diff --git a/iconv/skeleton.c b/iconv/skeleton.c index f905bcdaea..36cc33c9be 100644 --- a/iconv/skeleton.c +++ b/iconv/skeleton.c @@ -143,6 +143,12 @@ gconv_init (struct gconv_step *step) step->min_needed_to = MIN_NEEDED_TO; step->max_needed_to = MAX_NEEDED_TO; +#ifdef RESET_STATE + step->stateful = 1; +#else + step->stateful = 0; +#endif + return GCONV_OK; } #endif -- cgit v1.2.3