* 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.
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.
/* 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.
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)
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;
}
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;
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')
{
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. */
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
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++ = '/'; \
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. */
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
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;
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;
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);
/* 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.
__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;
/* 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.
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). */
/* 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.
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. */
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)
/* 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.
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 =
{
- 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;
# 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
# 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
/* 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
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,