From c90a2db6e0c4661091a9c5b1454a9beffc611e9e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 22 Aug 1999 22:39:16 +0000 Subject: Update. 1999-08-22 Ulrich Drepper * iconv/gconv_int.h (GCONV_AVOID_NOCONV): New definition. (__gconv_find_transform): Update prototype. (__gconv_open): Likewise. * iconv/gconv_open.c: Take extra parameter and pass it to __gconv_find_transform. * iconv/gconv_db.c (__gconv_find_transform): Take extra parameter with flags. If GCONV_AVOID_NOCONV flag is set don't return copying transformation. * iconv/iconv_open.c: Pass extra parameter to __gconv_open. * wcsmbs/wcsmbsload.c: Likewise. * intl/dcgettext.c (_nl_find_msg): Rewrite to use gconv instead of iconv for glibc. * intl/gettextP.h: Likewise. * intl/loadmsgcat.c: Likewise. * posix/regexbug1.c: New file. * posix/Makefile (tests): Add regexbug1. --- iconv/gconv_int.h | 11 +++++++++-- iconv/gconv_open.c | 5 +++-- iconv/iconv_open.c | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'iconv') diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h index 6048319372..794f41f86b 100644 --- a/iconv/gconv_int.h +++ b/iconv/gconv_int.h @@ -83,6 +83,13 @@ struct gconv_module }; +/* Flags for `gconv_open'. */ +enum +{ + GCONV_AVOID_NOCONV = 1 << 0 +}; + + /* Global variables. */ /* Database of alias names. */ @@ -95,7 +102,7 @@ extern struct gconv_module *__gconv_modules_db; /* Return in *HANDLE decriptor for transformation from FROMSET to TOSET. */ extern int __gconv_open (const char *__toset, const char *__fromset, - __gconv_t *__handle) + __gconv_t *__handle, int flags) internal_function; /* Free resources associated with transformation descriptor CD. */ @@ -115,7 +122,7 @@ extern int __gconv (__gconv_t __cd, const unsigned char **__inbuf, the single steps necessary for transformation from FROMSET to TOSET. */ extern int __gconv_find_transform (const char *__toset, const char *__fromset, struct __gconv_step **__handle, - size_t *__nsteps) + size_t *__nsteps, int flags) internal_function; /* Read all the configuration data and cache it. */ diff --git a/iconv/gconv_open.c b/iconv/gconv_open.c index cf36999d0d..44cb5ccab5 100644 --- a/iconv/gconv_open.c +++ b/iconv/gconv_open.c @@ -27,7 +27,8 @@ int internal_function -__gconv_open (const char *toset, const char *fromset, __gconv_t *handle) +__gconv_open (const char *toset, const char *fromset, __gconv_t *handle, + int flags) { struct __gconv_step *steps; size_t nsteps; @@ -35,7 +36,7 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle) size_t cnt = 0; int res; - res = __gconv_find_transform (toset, fromset, &steps, &nsteps); + res = __gconv_find_transform (toset, fromset, &steps, &nsteps, flags); if (res == __GCONV_OK) { /* Allocate room for handle. */ diff --git a/iconv/iconv_open.c b/iconv/iconv_open.c index e566c6a544..96b910ea94 100644 --- a/iconv/iconv_open.c +++ b/iconv/iconv_open.c @@ -85,7 +85,7 @@ iconv_open (const char *tocode, const char *fromcode) fromcode = (fromcode_conv[2] == '\0' ? upstr (fromcode_conv, fromcode) : fromcode_conv); - res = __gconv_open (tocode, fromcode, &cd); + res = __gconv_open (tocode, fromcode, &cd, 0); if (res != __GCONV_OK) { -- cgit v1.2.1