From e4d0709f6d32c51f19d6f0b7c66b37061153a6ca Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 3 Mar 1999 23:06:16 +0000 Subject: [PATCH] Update. 1999-03-03 Ulrich Drepper * wcsmbs/wcsmbsload.c (add_slashes): Rename to norm_add_slashes and fold string to uppercase [PR libc/1005]. --- ChangeLog | 5 +++++ wcsmbs/wcsmbsload.c | 16 ++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5415467..8b5dd0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +1999-03-03 Ulrich Drepper + + * wcsmbs/wcsmbsload.c (add_slashes): Rename to norm_add_slashes + and fold string to uppercase [PR libc/1005]. + 1999-03-03 Andreas Schwab * elf/dl-load.c (lose): Fix return type. diff --git a/wcsmbs/wcsmbsload.c b/wcsmbs/wcsmbsload.c index a8412e3..725652d 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 , 1998. @@ -17,6 +17,7 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include #include #include @@ -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); -- 2.7.4