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].
This commit is contained in:
Ulrich Drepper 1999-03-03 23:06:16 +00:00
parent d52852dacd
commit e4d0709f6d
2 changed files with 15 additions and 6 deletions

View File

@ -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> 1999-03-03 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* elf/dl-load.c (lose): Fix return type. * elf/dl-load.c (lose): Fix return type.

View File

@ -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. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -17,6 +17,7 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#include <ctype.h>
#include <langinfo.h> #include <langinfo.h>
#include <limits.h> #include <limits.h>
#include <stdlib.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 /* The gconv functions expects the name to be complete, including the
trailing shashes if necessary. */ trailing shashes if necessary. */
#define add_slashes(str) \ #define norm_add_slashes(str) \
({ \ ({ \
const char *cp = str; \ const char *cp = str; \
char *result; \ char *result; \
@ -122,8 +123,10 @@ getfct (const char *to, const char *from)
if (*cp++ == '/') \ if (*cp++ == '/') \
++cnt; \ ++cnt; \
\ \
result = alloca (cp - str + 3); \ tmp = result = alloca (cp - str + 3); \
tmp = __mempcpy (result, str, cp - str); \ cp = str; \
while (*cp != '\0') \
*tmp++ = _toupper (*cp++); \
if (cnt < 2) \ if (cnt < 2) \
{ \ { \
*tmp++ = '/'; \ *tmp++ = '/'; \
@ -171,8 +174,9 @@ __wcsmbs_load_conv (const struct locale_data *new_category)
charset_name = charset_name =
new_category->values[_NL_ITEM_INDEX(CODESET)].string; new_category->values[_NL_ITEM_INDEX(CODESET)].string;
/* Add the slashes necessary for a complete lookup. */ /* Normalize the name and add the slashes necessary for a
complete_name = add_slashes (charset_name); complete lookup. */
complete_name = norm_add_slashes (charset_name);
__wcsmbs_gconv_fcts.tomb = getfct (complete_name, "INTERNAL"); __wcsmbs_gconv_fcts.tomb = getfct (complete_name, "INTERNAL");
__wcsmbs_gconv_fcts.towc = getfct ("INTERNAL", complete_name); __wcsmbs_gconv_fcts.towc = getfct ("INTERNAL", complete_name);