From 984edfe75854853d38f06dfb952c6d7bfd9da268 Mon Sep 17 00:00:00 2001 From: glebius Date: Mon, 17 Sep 2012 19:25:24 +0000 Subject: [PATCH] Merge r238182 by theraven@: Restore the __collate_load_error global that was accidentally removed in the xlocale refactoring. Approved by: re (kib) git-svn-id: svn://svn.freebsd.org/base/releng/9.1@240617 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- lib/libc/locale/collate.c | 10 ++++++---- lib/libc/locale/setrunelocale.c | 1 - 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/libc/locale/collate.c b/lib/libc/locale/collate.c index 448e6054..676d41cc 100644 --- a/lib/libc/locale/collate.c +++ b/lib/libc/locale/collate.c @@ -56,11 +56,11 @@ __FBSDID("$FreeBSD$"); * We also modify the collation table test functions to search the thread-local * table first and the global table second. */ -#define __collate_load_error (table->__collate_load_error) #define __collate_substitute_nontrivial (table->__collate_substitute_nontrivial) #define __collate_substitute_table_ptr (table->__collate_substitute_table_ptr) #define __collate_char_pri_table_ptr (table->__collate_char_pri_table_ptr) #define __collate_chain_pri_table (table->__collate_chain_pri_table) +int __collate_load_error; struct xlocale_collate __xlocale_global_collate = { @@ -109,7 +109,9 @@ __collate_load(const char *encoding, locale_t unused) int __collate_load_tables(const char *encoding) { - return __collate_load_tables_l(encoding, &__xlocale_global_collate); + int ret = __collate_load_tables_l(encoding, &__xlocale_global_collate); + __collate_load_error = __xlocale_global_collate.__collate_load_error; + return ret; } int @@ -123,7 +125,7 @@ __collate_load_tables_l(const char *encoding, struct xlocale_collate *table) /* 'encoding' must be already checked. */ if (strcmp(encoding, "C") == 0 || strcmp(encoding, "POSIX") == 0) { - __collate_load_error = 1; + table->__collate_load_error = 1; return (_LDP_CACHE); } @@ -240,7 +242,7 @@ __collate_load_tables_l(const char *encoding, struct xlocale_collate *table) break; } } - __collate_load_error = 0; + table->__collate_load_error = 0; return (_LDP_LOADED); } diff --git a/lib/libc/locale/setrunelocale.c b/lib/libc/locale/setrunelocale.c index f036bbcb..3ffb6491 100644 --- a/lib/libc/locale/setrunelocale.c +++ b/lib/libc/locale/setrunelocale.c @@ -67,7 +67,6 @@ extern _RuneLocale *_Read_RuneMagi(FILE *); static int __setrunelocale(struct xlocale_ctype *l, const char *); -#define __collate_load_error (table->__collate_load_error) #define __collate_substitute_nontrivial (table->__collate_substitute_nontrivial) #define __collate_substitute_table_ptr (table->__collate_substitute_table_ptr) #define __collate_char_pri_table_ptr (table->__collate_char_pri_table_ptr) -- 2.42.0