* locale/xlocale.c (_nl_C_locobj): Mark as const.

* include/locale.h: Define _nl_C_locobj_ptr.
	* iconv/gconv_charset.h: Use _nl_C_locobj_ptr instead of using pointer
	to _nl_C_locobj because we also need a cast.
	* iconv/gconv_conf.c: Likewise.
	* iconv/gconv_int.h: Likewise.
	* iconv/gconv_open.c: Likewise.
	* locale/duplocale.c: Likewise.
	* locale/freelocale.c: Likewise.
	* locale/newlocale.c: Likewise.
	* misc/syslog.c: Likewise.
	* stdlib/strtod_l.c: Likewise.
	* sysdeps/unix/sysv/linux/getloadavg.c: Likewise.
This commit is contained in:
Ulrich Drepper 2005-12-21 07:28:33 +00:00
parent 808e0190f7
commit 4b5b009cc3
13 changed files with 57 additions and 42 deletions

View File

@ -1,5 +1,19 @@
2005-12-20 Ulrich Drepper <drepper@redhat.com>
* locale/xlocale.c (_nl_C_locobj): Mark as const.
* include/locale.h: Define _nl_C_locobj_ptr.
* iconv/gconv_charset.h: Use _nl_C_locobj_ptr instead of using pointer
to _nl_C_locobj because we also need a cast.
* iconv/gconv_conf.c: Likewise.
* iconv/gconv_int.h: Likewise.
* iconv/gconv_open.c: Likewise.
* locale/duplocale.c: Likewise.
* locale/freelocale.c: Likewise.
* locale/newlocale.c: Likewise.
* misc/syslog.c: Likewise.
* stdlib/strtod_l.c: Likewise.
* sysdeps/unix/sysv/linux/getloadavg.c: Likewise.
* csu/dso_handle.c (__dso_handle): Mark as const.
* intl/plural-exp.c (GERMANIC_PLURAL): Mark as const.

View File

@ -1,5 +1,5 @@
/* Charset name normalization.
Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
@ -29,9 +29,9 @@ strip (char *wp, const char *s)
while (*s != '\0')
{
if (__isalnum_l (*s, &_nl_C_locobj)
if (__isalnum_l (*s, _nl_C_locobj_ptr)
|| *s == '_' || *s == '-' || *s == '.' || *s == ',')
*wp++ = __toupper_l (*s, &_nl_C_locobj);
*wp++ = __toupper_l (*s, _nl_C_locobj_ptr);
else if (*s == '/')
{
if (++slash_count == 3)
@ -52,7 +52,7 @@ static inline char * __attribute__ ((unused, always_inline))
upstr (char *dst, const char *str)
{
char *cp = dst;
while ((*cp++ = __toupper_l (*str++, &_nl_C_locobj)) != '\0')
while ((*cp++ = __toupper_l (*str++, _nl_C_locobj_ptr)) != '\0')
/* nothing */;
return dst;
}

View File

@ -133,20 +133,20 @@ add_alias (char *rp, void *modules)
struct gconv_alias *new_alias;
char *from, *to, *wp;
while (__isspace_l (*rp, &_nl_C_locobj))
while (__isspace_l (*rp, _nl_C_locobj_ptr))
++rp;
from = wp = rp;
while (*rp != '\0' && !__isspace_l (*rp, &_nl_C_locobj))
*wp++ = __toupper_l (*rp++, &_nl_C_locobj);
while (*rp != '\0' && !__isspace_l (*rp, _nl_C_locobj_ptr))
*wp++ = __toupper_l (*rp++, _nl_C_locobj_ptr);
if (*rp == '\0')
/* There is no `to' string on the line. Ignore it. */
return;
*wp++ = '\0';
to = ++rp;
while (__isspace_l (*rp, &_nl_C_locobj))
while (__isspace_l (*rp, _nl_C_locobj_ptr))
++rp;
while (*rp != '\0' && !__isspace_l (*rp, &_nl_C_locobj))
*wp++ = __toupper_l (*rp++, &_nl_C_locobj);
while (*rp != '\0' && !__isspace_l (*rp, _nl_C_locobj_ptr))
*wp++ = __toupper_l (*rp++, _nl_C_locobj_ptr);
if (to == wp)
/* No `to' string, ignore the line. */
return;
@ -254,30 +254,30 @@ add_module (char *rp, const char *directory, size_t dir_len, void **modules,
int need_ext;
int cost_hi;
while (__isspace_l (*rp, &_nl_C_locobj))
while (__isspace_l (*rp, _nl_C_locobj_ptr))
++rp;
from = rp;
while (*rp != '\0' && !__isspace_l (*rp, &_nl_C_locobj))
while (*rp != '\0' && !__isspace_l (*rp, _nl_C_locobj_ptr))
{
*rp = __toupper_l (*rp, &_nl_C_locobj);
*rp = __toupper_l (*rp, _nl_C_locobj_ptr);
++rp;
}
if (*rp == '\0')
return;
*rp++ = '\0';
to = wp = rp;
while (__isspace_l (*rp, &_nl_C_locobj))
while (__isspace_l (*rp, _nl_C_locobj_ptr))
++rp;
while (*rp != '\0' && !__isspace_l (*rp, &_nl_C_locobj))
*wp++ = __toupper_l (*rp++, &_nl_C_locobj);
while (*rp != '\0' && !__isspace_l (*rp, _nl_C_locobj_ptr))
*wp++ = __toupper_l (*rp++, _nl_C_locobj_ptr);
if (*rp == '\0')
return;
*wp++ = '\0';
do
++rp;
while (__isspace_l (*rp, &_nl_C_locobj));
while (__isspace_l (*rp, _nl_C_locobj_ptr));
module = wp;
while (*rp != '\0' && !__isspace_l (*rp, &_nl_C_locobj))
while (*rp != '\0' && !__isspace_l (*rp, _nl_C_locobj_ptr))
*wp++ = *rp++;
if (*rp == '\0')
{
@ -392,7 +392,7 @@ read_conf_file (const char *filename, const char *directory, size_t dir_len,
if (rp[n - 1] == '\n')
rp[n - 1] = '\0';
while (__isspace_l (*rp, &_nl_C_locobj))
while (__isspace_l (*rp, _nl_C_locobj_ptr))
++rp;
/* If this is an empty line go on with the next one. */
@ -400,7 +400,7 @@ read_conf_file (const char *filename, const char *directory, size_t dir_len,
continue;
word = rp;
while (*rp != '\0' && !__isspace_l (*rp, &_nl_C_locobj))
while (*rp != '\0' && !__isspace_l (*rp, _nl_C_locobj_ptr))
++rp;
if (rp - word == sizeof ("alias") - 1

View File

@ -148,7 +148,7 @@ __libc_lock_define (extern, __gconv_lock);
tmp = result = __alloca (cp - (str) + 3 + suffix_len); \
cp = (str); \
while (*cp != '\0') \
*tmp++ = __toupper_l (*cp++, &_nl_C_locobj); \
*tmp++ = __toupper_l (*cp++, _nl_C_locobj_ptr); \
if (cnt < 2) \
{ \
*tmp++ = '/'; \

View File

@ -67,7 +67,7 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
tok = __strtok_r (tok, ",", &ptr);
while (tok != NULL)
{
if (__strcasecmp_l (tok, "TRANSLIT", &_nl_C_locobj) == 0)
if (__strcasecmp_l (tok, "TRANSLIT", _nl_C_locobj_ptr) == 0)
{
/* It's the builtin transliteration handling. We only
support it for working on the internal encoding. */
@ -101,7 +101,7 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
lastp->next = newp;
}
}
else if (__strcasecmp_l (tok, "IGNORE", &_nl_C_locobj) == 0)
else if (__strcasecmp_l (tok, "IGNORE", _nl_C_locobj_ptr) == 0)
/* Set the flag to ignore all errors. */
conv_flags |= __GCONV_IGNORE_ERRORS;
else
@ -115,7 +115,7 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
for (runp = trans; runp != NULL; runp = runp->next)
if (runp->name != NULL
&& __strcasecmp_l (tok, runp->name,
&_nl_C_locobj) == 0)
_nl_C_locobj_ptr) == 0)
break;
else
lastp = runp;
@ -235,7 +235,7 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
for (runp = trans; runp != NULL; runp = runp->next)
for (n = 0; n < runp->ncsnames; ++n)
if (__strcasecmp_l (steps[cnt].__from_name,
runp->csnames[n], &_nl_C_locobj) == 0)
runp->csnames[n], _nl_C_locobj_ptr) == 0)
{
void *data = NULL;

View File

@ -11,7 +11,8 @@ libc_hidden_proto (setlocale)
extern struct loaded_l10nfile *_nl_locale_file_list[] attribute_hidden;
/* Locale object for C locale. */
extern struct __locale_struct _nl_C_locobj attribute_hidden;
extern const struct __locale_struct _nl_C_locobj attribute_hidden;
#define _nl_C_locobj_ptr ((struct __locale_struct *) &_nl_C_locobj)
/* Now define the internal interfaces. */
extern struct lconv *__localeconv (void);

View File

@ -1,5 +1,5 @@
/* Duplicate handle for selection of locales.
Copyright (C) 1997, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1997, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -34,7 +34,7 @@ __locale_t
__duplocale (__locale_t dataset)
{
/* This static object is returned for newlocale (LC_ALL_MASK, "C"). */
if (dataset == &_nl_C_locobj)
if (dataset == _nl_C_locobj_ptr)
return dataset;
__locale_t result;

View File

@ -1,5 +1,5 @@
/* Free data allocated by a call to setlocale_r
Copyright (C) 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -35,7 +35,7 @@ __freelocale (__locale_t dataset)
int cnt;
/* This static object is returned for newlocale (LC_ALL_MASK, "C"). */
if (dataset == &_nl_C_locobj)
if (dataset == _nl_C_locobj_ptr)
return;
/* We modify global data (the usage counts). */

View File

@ -1,5 +1,5 @@
/* Return a reference to locale information record.
Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2004
Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2004, 2005
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -66,7 +66,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
if (locale == NULL)
ERROR_RETURN;
if (base == &_nl_C_locobj)
if (base == _nl_C_locobj_ptr)
/* We're to modify BASE, returned for a previous call with "C".
We can't really modify the read-only structure, so instead
start over by copying it. */
@ -75,7 +75,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
if ((base == NULL || category_mask == (1 << __LC_LAST) - 1 - (1 << LC_ALL))
&& (category_mask == 0 || !strcmp (locale, "C")))
/* Asking for the "C" locale needn't allocate a new object. */
return &_nl_C_locobj;
return _nl_C_locobj_ptr;
/* Allocate memory for the result. */
if (base != NULL)

View File

@ -1,5 +1,5 @@
/* C locale object.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
@ -32,7 +32,7 @@ extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden;
struct __locale_struct _nl_C_locobj attribute_hidden =
const struct __locale_struct _nl_C_locobj attribute_hidden =
{
.__locales =
{

View File

@ -195,7 +195,7 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
- f->_IO_write_ptr,
"%h %e %T ",
__localtime_r (&now, &now_tm),
&_nl_C_locobj);
_nl_C_locobj_ptr);
msgoff = ftell (f);
if (LogTag == NULL)
LogTag = __progname;

View File

@ -100,9 +100,9 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **,
# define ISDIGIT(Ch) __iswdigit_l ((Ch), loc)
# define ISXDIGIT(Ch) __iswxdigit_l ((Ch), loc)
# define TOLOWER(Ch) __towlower_l ((Ch), loc)
# define TOLOWER_C(Ch) __towlower_l ((Ch), &_nl_C_locobj)
# define TOLOWER_C(Ch) __towlower_l ((Ch), _nl_C_locobj_ptr)
# define STRNCASECMP(S1, S2, N) \
__wcsncasecmp_l ((S1), (S2), (N), &_nl_C_locobj)
__wcsncasecmp_l ((S1), (S2), (N), _nl_C_locobj_ptr)
# define STRTOULL(S, E, B) ____wcstoull_l_internal ((S), (E), (B), 0, loc)
#else
# define STRING_TYPE char
@ -112,9 +112,9 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **,
# define ISDIGIT(Ch) __isdigit_l ((Ch), loc)
# define ISXDIGIT(Ch) __isxdigit_l ((Ch), loc)
# define TOLOWER(Ch) __tolower_l ((Ch), loc)
# define TOLOWER_C(Ch) __tolower_l ((Ch), &_nl_C_locobj)
# define TOLOWER_C(Ch) __tolower_l ((Ch), _nl_C_locobj_ptr)
# define STRNCASECMP(S1, S2, N) \
__strncasecmp_l ((S1), (S2), (N), &_nl_C_locobj)
__strncasecmp_l ((S1), (S2), (N), _nl_C_locobj_ptr)
# define STRTOULL(S, E, B) ____strtoull_l_internal ((S), (E), (B), 0, loc)
#endif

View File

@ -1,5 +1,5 @@
/* Get system load averages. Linux (/proc/loadavg) version.
Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
Copyright (C) 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -55,7 +55,7 @@ getloadavg (double loadavg[], int nelem)
for (i = 0; i < nelem; ++i)
{
char *endp;
loadavg[i] = __strtod_l (p, &endp, &_nl_C_locobj);
loadavg[i] = __strtod_l (p, &endp, _nl_C_locobj_ptr);
if (endp == p)
/* This should not happen. The format of /proc/loadavg
must have changed. Don't return with what we have,