aboutsummaryrefslogtreecommitdiff
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 d4776f4..a049c63 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 24ec14a..307bf8a 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 5269d79..a5f2375 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 cad8be6..49576fd 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 c124eb1..55d938b 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;