From c90a2db6e0c4661091a9c5b1454a9beffc611e9e Mon Sep 17 00:00:00 2001
From: Ulrich Drepper <drepper@redhat.com>
Date: Sun, 22 Aug 1999 22:39:16 +0000
Subject: Update.

1999-08-22  Ulrich Drepper  <drepper@cygnus.com>

	* 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