* locale/xlocale.c (_nl_C_locobj): Mark as const.
authorUlrich Drepper <drepper@redhat.com>
Wed, 21 Dec 2005 07:28:33 +0000 (07:28 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 21 Dec 2005 07:28:33 +0000 (07:28 +0000)
* 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.

13 files changed:
ChangeLog
iconv/gconv_charset.h
iconv/gconv_conf.c
iconv/gconv_int.h
iconv/gconv_open.c
include/locale.h
locale/duplocale.c
locale/freelocale.c
locale/newlocale.c
locale/xlocale.c
misc/syslog.c
stdlib/strtod_l.c
sysdeps/unix/sysv/linux/getloadavg.c

index d001d774afd633a6660bc18f1b16acf6b87f7348..ad9ed77a11fe21a036fa68a44295522b63b9c1fa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 4a3db73118753b1505cb95263b2389b81d81648b..c18abec57871c4efa3d77101f65d964b09e0d8af 100644 (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;
 }
index 37179518ba9a5f7e00ce3aa7823ab5680dec9145..78f41cb368cca787515344bcbc78ed520c74d5d0 100644 (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
index 768ebf0a97af074cb0b7b1d6e8fcae52dc81059b..ace2bae1c6e40e4f14e427e8104e38c17226e1e8 100644 (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++ = '/';                                                         \
index 95f320339455e490e84f3729dc9e44d56b2ea14a..bbf27b3dc59a6689cd39f8ed4c258448b28a5b43 100644 (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;
 
index 22770b9ad2c2723e0408b9faadc0a6fcd9f61c7a..522600192955208db2084c54a493d95cb972b2d3 100644 (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);
index 77dfc01046f44593e3e72c9799707a9449ccc066..0cec09f63af7f4bb0ad56ebb7e01078f94f2b316 100644 (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;
index ec169bcb66aa9d11b1eafa2fc8c242fc52beac2a..7430455d56c1e867d39855a397844b10018e39b7 100644 (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).  */
index b646ffeacdd47d28d0128b179652a94e305d694b..b3d4b464b1fc5874778d348b4446740c4cc7549e 100644 (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)
index d9d344262148c8bebc8d58b6dea6d6778d531093..4573e6f390e80780694cff7a0f52cb9a92b162a9 100644 (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 =
     {
index 9c5597f5aa16fd50dd812d7568417e4e3bf77d58..cae13f876bfd05e9c388e9ab557f2e231333562f 100644 (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;
index c7901c29fee0e48984cdb90a843816bc669c33f0..5743ee434c36eaf008bf9f00a3b5fa4f7347961f 100644 (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
 
index 6a521431ba67cc93dacfa29e859755f0e2f7bf6b..81a1c0dd527d6c84b165a6752f4a22a4b485e1d8 100644 (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,