Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc don't use __link_set_* stuff for locale implementat...



details:   https://anonhg.NetBSD.org/src/rev/122cc2426805
branches:  trunk
changeset: 777795:122cc2426805
user:      tnozaki <tnozaki%NetBSD.org@localhost>
date:      Sun Mar 04 21:14:55 2012 +0000

description:
don't use __link_set_* stuff for locale implementation.
patch reviewed by matt@, thanks.

diffstat:

 lib/libc/citrus/citrus_lc_ctype.c          |   5 +-
 lib/libc/citrus/citrus_lc_messages.c       |   5 +-
 lib/libc/citrus/citrus_lc_monetary.c       |   5 +-
 lib/libc/citrus/citrus_lc_numeric.c        |   5 +-
 lib/libc/citrus/citrus_lc_time.c           |   5 +-
 lib/libc/locale/dummy_lc_collate.c         |   5 +-
 lib/libc/locale/dummy_lc_template.h        |   6 +-
 lib/libc/locale/generic_lc_all.c           |  29 +++++--------
 lib/libc/locale/generic_lc_template.h      |  38 ------------------
 lib/libc/locale/generic_lc_template_decl.h |   4 +-
 lib/libc/locale/nb_lc_template.h           |   6 +-
 lib/libc/locale/setlocale.c                |  63 +++++++++++------------------
 lib/libc/locale/setlocale_local.h          |  25 ++++++++---
 13 files changed, 70 insertions(+), 131 deletions(-)

diffs (truncated from 460 to 300 lines):

diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/citrus/citrus_lc_ctype.c
--- a/lib/libc/citrus/citrus_lc_ctype.c Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/citrus/citrus_lc_ctype.c Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: citrus_lc_ctype.c,v 1.9 2010/06/19 13:26:51 tnozaki Exp $ */
+/* $NetBSD: citrus_lc_ctype.c,v 1.10 2012/03/04 21:14:55 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_lc_ctype.c,v 1.9 2010/06/19 13:26:51 tnozaki Exp $");
+__RCSID("$NetBSD: citrus_lc_ctype.c,v 1.10 2012/03/04 21:14:55 tnozaki Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "reentrant.h"
@@ -130,4 +130,3 @@
 #define _CATEGORY_DEFAULT      _DefaultRuneLocale
 
 #include "nb_lc_template.h"
-_LOCALE_CATEGORY_ENTRY(_citrus_LC_CTYPE_);
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/citrus/citrus_lc_messages.c
--- a/lib/libc/citrus/citrus_lc_messages.c      Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/citrus/citrus_lc_messages.c      Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: citrus_lc_messages.c,v 1.4 2010/06/13 04:14:57 tnozaki Exp $ */
+/* $NetBSD: citrus_lc_messages.c,v 1.5 2012/03/04 21:14:55 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_lc_messages.c,v 1.4 2010/06/13 04:14:57 tnozaki Exp $");
+__RCSID("$NetBSD: citrus_lc_messages.c,v 1.5 2012/03/04 21:14:55 tnozaki Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -160,4 +160,3 @@
 #define _CATEGORY_MAGIC                _CITRUS_LC_MESSAGES_MAGIC_1
 
 #include "citrus_lc_template.h"
-_LOCALE_CATEGORY_ENTRY(_citrus_LC_MESSAGES_);
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/citrus/citrus_lc_monetary.c
--- a/lib/libc/citrus/citrus_lc_monetary.c      Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/citrus/citrus_lc_monetary.c      Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: citrus_lc_monetary.c,v 1.4 2010/06/13 04:14:57 tnozaki Exp $ */
+/* $NetBSD: citrus_lc_monetary.c,v 1.5 2012/03/04 21:14:55 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_lc_monetary.c,v 1.4 2010/06/13 04:14:57 tnozaki Exp $");
+__RCSID("$NetBSD: citrus_lc_monetary.c,v 1.5 2012/03/04 21:14:55 tnozaki Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -217,4 +217,3 @@
 #define _CATEGORY_MAGIC                _CITRUS_LC_MONETARY_MAGIC_1
 
 #include "citrus_lc_template.h"
-_LOCALE_CATEGORY_ENTRY(_citrus_LC_MONETARY_);
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/citrus/citrus_lc_numeric.c
--- a/lib/libc/citrus/citrus_lc_numeric.c       Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/citrus/citrus_lc_numeric.c       Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: citrus_lc_numeric.c,v 1.4 2010/06/13 04:14:57 tnozaki Exp $ */
+/* $NetBSD: citrus_lc_numeric.c,v 1.5 2012/03/04 21:14:55 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_lc_numeric.c,v 1.4 2010/06/13 04:14:57 tnozaki Exp $");
+__RCSID("$NetBSD: citrus_lc_numeric.c,v 1.5 2012/03/04 21:14:55 tnozaki Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -166,4 +166,3 @@
 #define _CATEGORY_MAGIC                _CITRUS_LC_NUMERIC_MAGIC_1
 
 #include "citrus_lc_template.h"
-_LOCALE_CATEGORY_ENTRY(_citrus_LC_NUMERIC_);
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/citrus/citrus_lc_time.c
--- a/lib/libc/citrus/citrus_lc_time.c  Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/citrus/citrus_lc_time.c  Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: citrus_lc_time.c,v 1.5 2010/06/13 04:14:57 tnozaki Exp $ */
+/* $NetBSD: citrus_lc_time.c,v 1.6 2012/03/04 21:14:55 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_lc_time.c,v 1.5 2010/06/13 04:14:57 tnozaki Exp $");
+__RCSID("$NetBSD: citrus_lc_time.c,v 1.6 2012/03/04 21:14:55 tnozaki Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -211,4 +211,3 @@
 #define _CATEGORY_MAGIC                _CITRUS_LC_TIME_MAGIC_1
 
 #include "citrus_lc_template.h"
-_LOCALE_CATEGORY_ENTRY(_citrus_LC_TIME_);
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/locale/dummy_lc_collate.c
--- a/lib/libc/locale/dummy_lc_collate.c        Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/locale/dummy_lc_collate.c        Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: dummy_lc_collate.c,v 1.2 2009/01/11 02:46:28 christos Exp $ */
+/* $NetBSD: dummy_lc_collate.c,v 1.3 2012/03/04 21:14:56 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: dummy_lc_collate.c,v 1.2 2009/01/11 02:46:28 christos Exp $");
+__RCSID("$NetBSD: dummy_lc_collate.c,v 1.3 2012/03/04 21:14:56 tnozaki Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include <sys/types.h>
@@ -51,4 +51,3 @@
 #define _CATEGORY_NAME         "LC_COLLATE"
 
 #include "dummy_lc_template.h"
-_LOCALE_CATEGORY_ENTRY(_dummy_LC_COLLATE_);
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/locale/dummy_lc_template.h
--- a/lib/libc/locale/dummy_lc_template.h       Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/locale/dummy_lc_template.h       Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: dummy_lc_template.h,v 1.2 2009/01/11 02:46:28 christos Exp $ */
+/* $NetBSD: dummy_lc_template.h,v 1.3 2012/03/04 21:14:56 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -31,7 +31,7 @@
 
 #include "generic_lc_template_decl.h"
 
-static const char *
+const char *
 _PREFIX(setlocale)(const char * __restrict name,
     struct _locale_impl_t * __restrict locale)
 {
@@ -51,6 +51,4 @@
        return locale->part_name[(size_t)_CATEGORY_ID];
 }
 
-#include "generic_lc_template.h"
-
 #endif /*_DUMMY_LC_TEMPLATE_H_*/
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/locale/generic_lc_all.c
--- a/lib/libc/locale/generic_lc_all.c  Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/locale/generic_lc_all.c  Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: generic_lc_all.c,v 1.3 2009/10/04 21:05:18 tnozaki Exp $ */
+/* $NetBSD: generic_lc_all.c,v 1.4 2012/03/04 21:14:56 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: generic_lc_all.c,v 1.3 2009/10/04 21:05:18 tnozaki Exp $");
+__RCSID("$NetBSD: generic_lc_all.c,v 1.4 2012/03/04 21:14:56 tnozaki Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include <sys/types.h>
@@ -53,13 +53,13 @@
 _generic_LC_ALL_setlocale(const char * __restrict name,
     struct _locale_impl_t * __restrict locale)
 {
-       _locale_category_t *l;
+       _locale_set_t sl;
        char head[_LOCALENAME_LEN_MAX * (_LC_LAST - 1)], *tail;
        const char *tokens[_LC_LAST], *s, *t;
        int load_locale_success, i, j;
 
-       l = _find_category(1);
-       _DIAGASSERT(l != NULL);
+       sl = _find_category(1);
+       _DIAGASSERT(sl != NULL);
        load_locale_success = 0;
        if (name != NULL) {
                strlcpy(&head[0], name, sizeof(head));
@@ -82,20 +82,20 @@
                        if (tail != NULL)
                                return NULL;
                }
-               if ((*l->setlocale)(tokens[1], locale) != NULL)
+               if ((*sl)(tokens[1], locale) != NULL)
                        load_locale_success = 1;
        }
-       s = (*l->setlocale)(NULL, locale);
+       s = (*sl)(NULL, locale);
        _DIAGASSERT(s != NULL);
        strlcpy(&locale->query[0], s, sizeof(locale->query));
        for (i = 2, j = 0; i < _LC_LAST; ++i) {
-               l = _find_category(i);
-               _DIAGASSERT(l != NULL);
+               sl = _find_category(i);
+               _DIAGASSERT(sl != NULL);
                if (name != NULL) {
-                       if ((*l->setlocale)(tokens[i], locale) != NULL)
+                       if ((*sl)(tokens[i], locale) != NULL)
                                load_locale_success = 1;
                }
-               t = (*l->setlocale)(NULL, locale);
+               t = (*sl)(NULL, locale);
                _DIAGASSERT(t != NULL);
                if (j == 0) {
                        if (!strcmp(s, t))
@@ -115,10 +115,3 @@
        return (const char *)&locale->query[0];
 }
 
-/*
- * macro requrired by generic_lc_template.h
- */
-#define _CATEGORY_ID   LC_ALL
-
-#include "generic_lc_template.h"
-_LOCALE_CATEGORY_ENTRY(_generic_LC_ALL_);
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/locale/generic_lc_template.h
--- a/lib/libc/locale/generic_lc_template.h     Sun Mar 04 20:44:17 2012 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* $NetBSD: generic_lc_template.h,v 1.3 2009/03/09 02:22:25 tnozaki Exp $ */
-
-/*-
- * Copyright (c)2008 Citrus Project,
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _GENERIC_LC_TEMPLATE_H_
-#define _GENERIC_LC_TEMPLATE_H_
-
-#define _LOCALE_CATEGORY_ENTRY(name)                   \
-const _locale_category_t name##desc = {                        \
-    .category = _CATEGORY_ID,                          \
-    .setlocale = &name##setlocale,                     \
-}
-
-#endif /*_GENERIC_LC_TEMPLATE_H_*/
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/locale/generic_lc_template_decl.h
--- a/lib/libc/locale/generic_lc_template_decl.h        Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/locale/generic_lc_template_decl.h        Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: generic_lc_template_decl.h,v 1.2 2009/01/11 02:46:28 christos Exp $ */
+/* $NetBSD: generic_lc_template_decl.h,v 1.3 2012/03/04 21:14:56 tnozaki Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -29,7 +29,7 @@
 #ifndef _GENERIC_LC_TEMPLATE_DECL_H_
 #define _GENERIC_LC_TEMPLATE_DECL_H_
 
-static const char * _PREFIX(setlocale)(const char * __restrict,
+const char * _PREFIX(setlocale)(const char * __restrict,
     struct _locale_impl_t * __restrict);
 
 #endif /*_GENERIC_LC_TEMPLATE_DECL_H_*/
diff -r 0e2f0dbbfef0 -r 122cc2426805 lib/libc/locale/nb_lc_template.h
--- a/lib/libc/locale/nb_lc_template.h  Sun Mar 04 20:44:17 2012 +0000
+++ b/lib/libc/locale/nb_lc_template.h  Sun Mar 04 21:14:55 2012 +0000
@@ -1,4 +1,4 @@



Home | Main Index | Thread Index | Old Index