about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--iconv/gconv_conf.c7
-rw-r--r--iconv/gconv_db.c9
-rw-r--r--iconv/iconv_open.c20
-rw-r--r--iconv/skeleton.c4
5 files changed, 34 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index d4776f4b15..a049c634ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+1999-01-22  Ulrich Drepper  <drepper@cygnus.com>
+
+	* iconv/gconv_conf.c (add_alias): Convert names to uppercase before
+	adding into search tree.
+	(add_module): Likewise.
+	* iconv/iconv_open.c: Likewise.
+	* iconv/gconv_db.c: Change all __strcasecmp to strcmp.
+	* iconv/skeleton.c (gconv_init): Likewise.
+
 1999-01-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
 
 	* elf/Makefile: Make dependencies between test modules explicit.
diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c
index 24ec14aea8..307bf8a274 100644
--- a/iconv/gconv_conf.c
+++ b/iconv/gconv_conf.c
@@ -177,7 +177,7 @@ add_alias (char *rp, void *modules)
     ++rp;
   from = wp = rp;
   while (*rp != '\0' && !isspace (*rp))
-    ++rp;
+    *wp = toupper (*rp++);
   if (*rp == '\0')
     /* There is no `to' string on the line.  Ignore it.  */
     return;
@@ -186,7 +186,7 @@ add_alias (char *rp, void *modules)
   while (isspace (*rp))
     ++rp;
   while (*rp != '\0' && !isspace (*rp))
-    *wp++ = *rp++;
+    *wp++ = toupper (*rp++);
   if (to == wp)
     /* No `to' string, ignore the line.  */
     return;
@@ -307,6 +307,7 @@ add_module (char *rp, const char *directory, size_t dir_len, void **modules,
       if (!isalnum (*rp) && *rp != '-' && *rp != '/' && *rp != '.'
 	  && *rp != '_' && *rp != '(' && *rp != ')')
 	from_is_regex = 1;
+      *rp = toupper (*rp);
       ++rp;
     }
   if (*rp == '\0')
@@ -316,7 +317,7 @@ add_module (char *rp, const char *directory, size_t dir_len, void **modules,
   while (isspace (*rp))
     ++rp;
   while (*rp != '\0' && !isspace (*rp))
-    *wp++ = *rp++;
+    *wp++ = toupper (*rp++);
   if (*rp == '\0')
     return;
   *wp++ = '\0';
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index 5269d792f6..a5f2375f1c 100644
--- a/iconv/gconv_db.c
+++ b/iconv/gconv_db.c
@@ -46,7 +46,7 @@ __gconv_alias_compare (const void *p1, const void *p2)
 {
   struct gconv_alias *s1 = (struct gconv_alias *) p1;
   struct gconv_alias *s2 = (struct gconv_alias *) p2;
-  return __strcasecmp (s1->fromname, s2->fromname);
+  return strcmp (s1->fromname, s2->fromname);
 }
 
 
@@ -473,9 +473,9 @@ find_derivation (const char *toset, const char *toset_expand,
 
 		      /* We managed to find a derivation.  First see whether
 			 this is what we are looking for.  */
-		      if (__strcasecmp (result_set, toset) == 0
+		      if (strcmp (result_set, toset) == 0
 			  || (toset_expand != NULL
-			      && __strcasecmp (result_set, toset_expand) == 0))
+			      && strcmp (result_set, toset_expand) == 0))
 			{
 			  if (solution == NULL || cost_hi < best_cost_hi
 			      || (cost_hi == best_cost_hi
@@ -505,8 +505,7 @@ find_derivation (const char *toset, const char *toset_expand,
 			  /* Append at the end if there is no entry with
 			     this name.  */
 			  for (step = first; step != NULL; step = step->next)
-			    if (__strcasecmp (result_set, step->result_set)
-				== 0)
+			    if (strcmp (result_set, step->result_set) == 0)
 			      break;
 
 			  if (step == NULL)
diff --git a/iconv/iconv_open.c b/iconv/iconv_open.c
index cad8be6be7..49576fd508 100644
--- a/iconv/iconv_open.c
+++ b/iconv/iconv_open.c
@@ -1,5 +1,5 @@
 /* Get descriptor for character set conversion.
-   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.
 
@@ -35,7 +35,7 @@ strip (char *wp, const char *s)
   while (*s != '\0')
     {
       if (isalnum (*s) || *s == '_' || *s == '-' || *s == '.')
-	*wp++ = *s;
+	*wp++ = toupper (*s);
       else if (*s == '/')
 	{
 	  if (++slash_count == 3)
@@ -52,6 +52,16 @@ strip (char *wp, const char *s)
 }
 
 
+static char *
+upstr (char *str)
+{
+  char *cp = str;
+  while ((*cp = toupper (*cp)) != '\0')
+    ++cp;
+  return str;
+}
+
+
 iconv_t
 iconv_open (const char *tocode, const char *fromcode)
 {
@@ -67,14 +77,14 @@ iconv_open (const char *tocode, const char *fromcode)
   tocode_len = strlen (tocode);
   tocode_conv = alloca (tocode_len + 3);
   strip (tocode_conv, tocode);
+  tocode = tocode_conv[2] == '\0' ? upstr (tocode) : tocode_conv;
 
   fromcode_len = strlen (fromcode);
   fromcode_conv = alloca (fromcode_len + 3);
   strip (fromcode_conv, fromcode);
+  fromcode = romcode_conv[2] == '\0' ? upstr (fromcode) : fromcode_conv;
 
-  res = __gconv_open (tocode_conv[2] == '\0' ? tocode : tocode_conv,
-		      fromcode_conv[2] == '\0' ? fromcode : fromcode_conv,
-		      &cd);
+  res = __gconv_open (tocode, fromcode, &cd);
 
   if (res != GCONV_OK)
     {
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index c124eb1e07..55d938bd7e 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -143,7 +143,7 @@ int
 gconv_init (struct gconv_step *step)
 {
   /* Determine which direction.  */
-  if (__strcasecmp (step->from_name, CHARSET_NAME) == 0)
+  if (strcmp (step->from_name, CHARSET_NAME) == 0)
     {
       step->data = &from_object;
 
@@ -152,7 +152,7 @@ gconv_init (struct gconv_step *step)
       step->min_needed_to = MIN_NEEDED_TO;
       step->max_needed_to = MAX_NEEDED_TO;
     }
-  else if (__strcasecmp (step->to_name, CHARSET_NAME) == 0)
+  else if (strcmp (step->to_name, CHARSET_NAME) == 0)
     {
       step->data = &to_object;