diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-03-03 23:06:16 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-03-03 23:06:16 +0000 |
commit | e4d0709f6d32c51f19d6f0b7c66b37061153a6ca (patch) | |
tree | f8309035908aedd8b49f3c5ed21a71108007a38b | |
parent | d52852dacda32704c210c17a50070b03cdfda059 (diff) | |
download | glibc-e4d0709f6d32c51f19d6f0b7c66b37061153a6ca.tar glibc-e4d0709f6d32c51f19d6f0b7c66b37061153a6ca.tar.gz glibc-e4d0709f6d32c51f19d6f0b7c66b37061153a6ca.tar.bz2 glibc-e4d0709f6d32c51f19d6f0b7c66b37061153a6ca.zip |
Update.
1999-03-03 Ulrich Drepper <drepper@cygnus.com>
* wcsmbs/wcsmbsload.c (add_slashes): Rename to norm_add_slashes
and fold string to uppercase [PR libc/1005].
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | wcsmbs/wcsmbsload.c | 16 |
2 files changed, 15 insertions, 6 deletions
@@ -1,3 +1,8 @@ +1999-03-03 Ulrich Drepper <drepper@cygnus.com> + + * wcsmbs/wcsmbsload.c (add_slashes): Rename to norm_add_slashes + and fold string to uppercase [PR libc/1005]. + 1999-03-03 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * elf/dl-load.c (lose): Fix return type. diff --git a/wcsmbs/wcsmbsload.c b/wcsmbs/wcsmbsload.c index a8412e3bf6..725652d656 100644 --- a/wcsmbs/wcsmbsload.c +++ b/wcsmbs/wcsmbsload.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -17,6 +17,7 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include <ctype.h> #include <langinfo.h> #include <limits.h> #include <stdlib.h> @@ -111,7 +112,7 @@ getfct (const char *to, const char *from) /* The gconv functions expects the name to be complete, including the trailing shashes if necessary. */ -#define add_slashes(str) \ +#define norm_add_slashes(str) \ ({ \ const char *cp = str; \ char *result; \ @@ -122,8 +123,10 @@ getfct (const char *to, const char *from) if (*cp++ == '/') \ ++cnt; \ \ - result = alloca (cp - str + 3); \ - tmp = __mempcpy (result, str, cp - str); \ + tmp = result = alloca (cp - str + 3); \ + cp = str; \ + while (*cp != '\0') \ + *tmp++ = _toupper (*cp++); \ if (cnt < 2) \ { \ *tmp++ = '/'; \ @@ -171,8 +174,9 @@ __wcsmbs_load_conv (const struct locale_data *new_category) charset_name = new_category->values[_NL_ITEM_INDEX(CODESET)].string; - /* Add the slashes necessary for a complete lookup. */ - complete_name = add_slashes (charset_name); + /* Normalize the name and add the slashes necessary for a + complete lookup. */ + complete_name = norm_add_slashes (charset_name); __wcsmbs_gconv_fcts.tomb = getfct (complete_name, "INTERNAL"); __wcsmbs_gconv_fcts.towc = getfct ("INTERNAL", complete_name); |