about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog20
-rw-r--r--locale/programs/ld-ctype.c2
-rw-r--r--locale/programs/locale.c2
-rw-r--r--locale/programs/localedef.c20
-rw-r--r--locale/programs/localedef.h8
-rw-r--r--locale/programs/locfile-kw.gperf3
-rw-r--r--locale/programs/locfile-kw.h468
-rw-r--r--locale/programs/locfile-token.h1
-rw-r--r--locale/programs/locfile.h2
-rw-r--r--localedata/ChangeLog13
-rw-r--r--localedata/locales/i18n4
-rw-r--r--localedata/locales/iso14651_t132
-rw-r--r--localedata/sort-test.sh11
-rwxr-xr-xlocaledata/tst-fmon.sh7
-rwxr-xr-xlocaledata/tst-locale.sh2
-rwxr-xr-xlocaledata/tst-mbswcs.sh2
-rwxr-xr-xlocaledata/tst-rpmatch.sh3
-rwxr-xr-xlocaledata/tst-trans.sh2
18 files changed, 318 insertions, 284 deletions
diff --git a/ChangeLog b/ChangeLog
index 6b5df54aa7..249fd8edbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,24 @@
+2000-06-25  Ulrich Drepper  <drepper@redhat.com>
+
+	* locale/programs/ld-collate.c: Correct handling of different
+	collation sections.
+	* locale/programs/localedef.c (add_to_readlist): Take locale pointer
+	as extra parameter from which to copy category information.
+	Change all callers.
+	(load_locale): Likewise.
+	* locale/programs/localedef.h: Update prototypes of add_to_readlist
+	and load_locale.
+	* locale/programs/ld-ctype.c: Update call to add_to_readlist.
+	* locale/programs/locfile.h: Likewise.
+	* locale/programs/locfile-kw.gperf: Add entry for script.
+	* locale/programs/locfile-token.h: Add tok_script.
+
+	* locale/programs/locale.c: Update copyright year.
+	* locale/programs/localedef.c: Likewise.
+
 2000-06-23  Thorsten Kukuk  <kukuk@suse.de>
 
-	* xdr_rec.c (set_input_fragment) Fix PR libc/1549, patch from Jens
+	* xdr_rec.c (set_input_fragment): Fix PR libc/1549, patch from Jens
 	Moeller <jens.moeller@waii.com>.
 
 2000-06-24  Ulrich Drepper  <drepper@redhat.com>
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index e05df68cad..ce097e741b 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -2545,7 +2545,7 @@ with character code range values one must use the absolute ellipsis `...'"));
 
 		  /* Make sure the locale is read.  */
 		  add_to_readlist (LC_CTYPE, ctype->translit_copy_locale,
-				   repertoire_name, 1);
+				   repertoire_name, 1, NULL);
 		  continue;
 		}
 	      else if (now->tok == tok_default_missing)
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index 261f7c729b..0fcc2599e1 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -268,7 +268,7 @@ print_version (FILE *stream, struct argp_state *state)
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "1999");
+"), "2000");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }
 
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index fbd80ccc0f..d0eb711ee4 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -296,7 +296,7 @@ print_version (FILE *stream, struct argp_state *state)
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "1999");
+"), "2000");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }
 
@@ -431,7 +431,7 @@ normalize_codeset (codeset, name_len)
 
 struct localedef_t *
 add_to_readlist (int locale, const char *name, const char *repertoire_name,
-		 int generate)
+		 int generate, struct localedef_t *copy_locale)
 {
   struct localedef_t *runp = locales;
 
@@ -463,6 +463,16 @@ add_to_readlist (int locale, const char *name, const char *repertoire_name,
   if (generate && (runp->needed & (1 << locale)) != 0)
     error (5, 0, _("circular dependencies between locale definitions"));
 
+  if (copy_locale != NULL)
+    {
+      if (runp->categories[locale].generic != NULL)
+	error (5, 0, _("cannot add already read locale `%s' a second time"),
+	       name);
+      else
+	runp->categories[locale].generic =
+	  copy_locale->categories[locale].generic;
+    }
+
   runp->needed |= 1 << locale;
 
   return runp;
@@ -476,7 +486,7 @@ find_locale (int locale, const char *name, const char *repertoire_name,
   struct localedef_t *result;
 
   /* Find the locale, but do not generate it since this would be a bug.  */
-  result = add_to_readlist (locale, name, repertoire_name, 0);
+  result = add_to_readlist (locale, name, repertoire_name, 0, NULL);
 
   assert (result != NULL);
 
@@ -491,12 +501,12 @@ find_locale (int locale, const char *name, const char *repertoire_name,
 
 struct localedef_t *
 load_locale (int locale, const char *name, const char *repertoire_name,
-	     struct charmap_t *charmap)
+	     struct charmap_t *charmap, struct localedef_t *copy_locale)
 {
   struct localedef_t *result;
 
   /* Generate the locale if it does not exist.  */
-  result = add_to_readlist (locale, name, repertoire_name, 1);
+  result = add_to_readlist (locale, name, repertoire_name, 1, copy_locale);
 
   assert (result != NULL);
 
diff --git a/locale/programs/localedef.h b/locale/programs/localedef.h
index 4f8a103fd9..ac25d979ac 100644
--- a/locale/programs/localedef.h
+++ b/locale/programs/localedef.h
@@ -1,5 +1,5 @@
 /* General definitions for localedef(1).
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -124,7 +124,8 @@ extern char *xstrdup (const char *__str);
 /* Mark given locale as to be read.  */
 extern struct localedef_t *add_to_readlist (int locale, const char *name,
 					    const char *repertoire_name,
-					    int generate);
+					    int generate,
+					    struct localedef_t *copy_locale);
 
 /* Find the information for the locale NAME.  */
 extern struct localedef_t *find_locale (int locale, const char *name,
@@ -134,6 +135,7 @@ extern struct localedef_t *find_locale (int locale, const char *name,
 /* Load (if necessary) the information for the locale NAME.  */
 extern struct localedef_t *load_locale (int locale, const char *name,
 					const char *repertoire_name,
-					struct charmap_t *charmap);
+					struct charmap_t *charmap,
+					struct localedef_t *copy_locale);
 
 #endif /* localedef.h */
diff --git a/locale/programs/locfile-kw.gperf b/locale/programs/locfile-kw.gperf
index 3670548a4c..72421c742a 100644
--- a/locale/programs/locfile-kw.gperf
+++ b/locale/programs/locfile-kw.gperf
@@ -1,5 +1,5 @@
 %{
-/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
@@ -60,6 +60,7 @@ section-symbol,         tok_section_symbol,         0
 collating-element,      tok_collating_element,      0
 collating-symbol,       tok_collating_symbol,       0
 symbol-equivalence,     tok_symbol_equivalence,     0
+script,                 tok_script,                 0
 order_start,            tok_order_start,            0
 order_end,              tok_order_end,              0
 from,                   tok_from,                   0
diff --git a/locale/programs/locfile-kw.h b/locale/programs/locfile-kw.h
index a04bc2723c..ce219a6565 100644
--- a/locale/programs/locfile-kw.h
+++ b/locale/programs/locfile-kw.h
@@ -1,6 +1,6 @@
-/* ANSI-C code produced by gperf version 2.7.1 (19981006 egcs) */
+/* ANSI-C code produced by gperf version 2.7 */
 /* Command-line: gperf -acCgopt -k1,2,5,9,$ -L ANSI-C -N locfile_hash programs/locfile-kw.gperf  */
-/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
@@ -24,12 +24,12 @@
 #include "locfile-token.h"
 struct keyword_t ;
 
-#define TOTAL_KEYWORDS 173
+#define TOTAL_KEYWORDS 174
 #define MIN_WORD_LENGTH 3
 #define MAX_WORD_LENGTH 22
 #define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 645
-/* maximum key range = 643, duplicates = 0 */
+#define MAX_HASH_VALUE 539
+/* maximum key range = 537, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -39,32 +39,32 @@ hash (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-       10,   0, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646,  15, 646,   0,   0,   0,
-       10,  20,   0,   0, 646, 646,   0, 646,   0,   5,
-      646, 646,  10,   0,  10,   5, 646, 646, 646,  20,
-      646, 646, 646, 646, 646,  30, 646,   0,  25, 110,
-        5,   0,  25,   0,   5, 105, 646,  20, 125,  85,
-      175,   0,  75,  10,   5, 125,   0, 135,  45,  15,
-       10,  75,   0, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
-      646, 646, 646, 646, 646, 646
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+        5,   0, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540,  25, 540,   0,   0,   0,
+       15,   0,   0,   0, 540, 540,   0, 540,   0,   0,
+      540, 540,  15,   0,  10,   5, 540, 540, 540,   0,
+      540, 540, 540, 540, 540,  50, 540,   0,  20, 120,
+        5,   0, 110,  15, 105,  90, 540,  15,  75, 150,
+       70,  65,  15,   0,   5,  50,   0, 230,  10,   5,
+        5,   5,   0, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+      540, 540, 540, 540, 540, 540
     };
   register int hval = len;
 
@@ -104,299 +104,293 @@ locfile_hash (register const char *str, register unsigned int len)
       {"era",                    tok_era,                    0},
       {"date",                   tok_date,                   0},
       {"LC_ADDRESS",             tok_lc_address,             0},
-      {""},
+      {"LC_MESSAGES",            tok_lc_messages,            0},
       {"LC_TELEPHONE",           tok_lc_telephone,           0},
-      {""},
+      {"day",                    tok_day,                    0},
       {"era_t_fmt",              tok_era_t_fmt,              0},
       {"LC_NUMERIC",             tok_lc_numeric,             0},
-      {"height",                 tok_height,                 0},
+      {"yesstr",                 tok_yesstr,                 0},
       {"LC_IDENTIFICATION",      tok_lc_identification,      0},
       {"LC_CTYPE",               tok_lc_ctype,               0},
       {"era_d_fmt",              tok_era_d_fmt,              0},
-      {"graph",                  tok_graph,                  0},
-      {"order_start",            tok_order_start,            0},
-      {"LC_NAME",                tok_lc_name,                0},
-      {""},
-      {"UNDEFINED",              tok_undefined,              0},
       {"LC_COLLATE",             tok_lc_collate,             0},
-      {"reorder-end",            tok_reorder_end,            0},
-      {"tolower",                tok_tolower,                0},
-      {"reorder-after",          tok_reorder_after,          0},
-      {"order_end",              tok_order_end,              0},
-      {""},
-      {"LC_MESSAGES",            tok_lc_messages,            0},
-      {""},
-      {"LC_PAPER",               tok_lc_paper,               0},
-      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
-      {"t_fmt",                  tok_t_fmt,                  0},
       {"IGNORE",                 tok_ignore,                 0},
-      {"forward",                tok_forward,                0},
-      {"fax",                    tok_fax,                    0},
+      {"yesexpr",                tok_yesexpr,                0},
+      {"era_year",               tok_era_year,               0},
       {"week",                   tok_week,                   0},
-      {"d_fmt",                  tok_d_fmt,                  0},
-      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
-      {""}, {""}, {""}, {""},
-      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
-      {""}, {""}, {""}, {""},
+      {"print",                  tok_print,                  0},
+      {"reorder-end",            tok_reorder_end,            0},
+      {""},
+      {"reorder-after",          tok_reorder_after,          0},
+      {"UNDEFINED",              tok_undefined,              0},
+      {""}, {""},
+      {"LC_NAME",                tok_lc_name,                0},
+      {""}, {""},
+      {"abday",                  tok_abday,                  0},
       {"LC_MONETARY",            tok_lc_monetary,            0},
       {""},
       {"backward",               tok_backward,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-      {"d_t_fmt",                tok_d_t_fmt,                0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"day",                    tok_day,                    0},
-      {""},
-      {"print",                  tok_print,                  0},
-      {"yesstr",                 tok_yesstr,                 0},
-      {"toupper",                tok_toupper,                0},
-      {"grouping",               tok_grouping,               0},
-      {""}, {""}, {""}, {""},
-      {"era_year",               tok_era_year,               0},
+      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
       {""}, {""}, {""},
-      {"yesexpr",                tok_yesexpr,                0},
-      {""}, {""}, {""}, {""}, {""},
       {"repertoiremap",          tok_repertoiremap,          0},
+      {""}, {""}, {""}, {""},
+      {"LC_PAPER",               tok_lc_paper,               0},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"title",                  tok_title,                  0},
+      {"t_fmt",                  tok_t_fmt,                  0},
       {""}, {""},
-      {"timezone",               tok_timezone,               0},
-      {""},
-      {"digit",                  tok_digit,                  0},
-      {""},
-      {"contact",                tok_contact,                0},
+      {"grouping",               tok_grouping,               0},
       {""},
-      {"from",                   tok_from,                   0},
+      {"d_fmt",                  tok_d_fmt,                  0},
       {""},
-      {"country_ab3",            tok_country_ab3,            0},
-      {""}, {""}, {""},
-      {"conversion_rate",        tok_conversion_rate,        0},
-      {"xdigit",                 tok_xdigit,                 0},
-      {"collating-element",      tok_collating_element,      0},
+      {"address",                tok_address,                0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"space",                  tok_space,                  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"tel",                    tok_tel,                    0},
       {"else",                   tok_else,                   0},
       {"alpha",                  tok_alpha,                  0},
-      {"country_ab2",            tok_country_ab2,            0},
-      {""}, {""}, {""},
-      {"width",                  tok_width,                  0},
-      {""},
-      {"address",                tok_address,                0},
+      {"define",                 tok_define,                 0},
+      {"tolower",                tok_tolower,                0},
       {""}, {""},
-      {"lower",                  tok_lower,                  0},
-      {"tel_int_fmt",            tok_tel_int_fmt,            0},
-      {""},
-      {"audience",               tok_audience,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"elif",                   tok_elif,                   0},
-      {""}, {""}, {""}, {""}, {""},
       {"reorder-sections-end",   tok_reorder_sections_end,   0},
-      {""},
+      {"order_start",            tok_order_start,            0},
       {"reorder-sections-after", tok_reorder_sections_after, 0},
-      {"map",                    tok_map,                    0},
-      {"lang_name",              tok_lang_name,              0},
-      {"coll_weight_max",        tok_coll_weight_max,        0},
       {""}, {""}, {""}, {""},
-      {"postal_fmt",             tok_postal_fmt,             0},
+      {"toupper",                tok_toupper,                0},
       {""},
-      {"mon_grouping",           tok_mon_grouping,           0},
+      {"order_end",              tok_order_end,              0},
+      {"title",                  tok_title,                  0},
+      {""}, {""},
+      {"timezone",               tok_timezone,               0},
+      {""},
+      {"digit",                  tok_digit,                  0},
       {""},
+      {"abbreviation",           tok_abbreviation,           0},
+      {""}, {""}, {""},
+      {"xdigit",                 tok_xdigit,                 0},
+      {""}, {""},
+      {"territory",              tok_territory,              0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"fax",                    tok_fax,                    0},
       {"translit_start",         tok_translit_start,         0},
       {"translit_ignore",        tok_translit_ignore,        0},
       {""},
       {"translit_end",           tok_translit_end,           0},
-      {"decimal_point",          tok_decimal_point,          0},
+      {""}, {""}, {""},
+      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
+      {""},
+      {"name_fmt",               tok_name_fmt,               0},
+      {""},
+      {"blank",                  tok_blank,                  0},
+      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
+      {"name_mr",                tok_name_mr,                0},
+      {"revision",               tok_revision,               0},
+      {"lang_name",              tok_lang_name,              0},
+      {""}, {""}, {""},
+      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+      {""},
+      {"alt_digits",             tok_alt_digits,             0},
+      {""}, {""}, {""},
+      {"p_sep_by_space",         tok_p_sep_by_space,         0},
+      {""}, {""}, {""},
+      {"category",               tok_category,               0},
+      {""},
+      {"nostr",                  tok_nostr,                  0},
       {""},
-      {"abday",                  tok_abday,                  0},
-      {""}, {""}, {""}, {""},
-      {"ifdef",                  tok_ifdef,                  0},
-      {"define",                 tok_define,                 0},
       {"lang_ab",                tok_lang_ab,                0},
       {"lang_lib",               tok_lang_lib,               0},
+      {""},
+      {"lower",                  tok_lower,                  0},
+      {""}, {""},
+      {"position",               tok_position,               0},
+      {""}, {""},
+      {"noexpr",                 tok_noexpr,                 0},
+      {""}, {""}, {""},
+      {"abmon",                  tok_abmon,                  0},
+      {""}, {""},
+      {"map",                    tok_map,                    0},
+      {""}, {""}, {""},
+      {"d_t_fmt",                tok_d_t_fmt,                0},
+      {""}, {""}, {""}, {""},
+      {"name_ms",                tok_name_ms,                0},
+      {"name_mrs",               tok_name_mrs,               0},
+      {""}, {""}, {""}, {""},
+      {"decimal_point",          tok_decimal_point,          0},
+      {""}, {""},
+      {"escape_char",            tok_escape_char,            0},
+      {"forward",                tok_forward,                0},
+      {""},
+      {"elif",                   tok_elif,                   0},
+      {""},
+      {"script",                 tok_script,                 0},
+      {"contact",                tok_contact,                0},
+      {""},
       {"copy",                   tok_copy,                   0},
-      {"nostr",                  tok_nostr,                  0},
       {""},
-      {"mon_decimal_point",      tok_mon_decimal_point,      0},
-      {"category",               tok_category,               0},
+      {"country_ab3",            tok_country_ab3,            0},
       {""},
-      {"blank",                  tok_blank,                  0},
+      {"name_gen",               tok_name_gen,               0},
+      {"n_sep_by_space",         tok_n_sep_by_space,         0},
+      {""},
+      {"country_ab2",            tok_country_ab2,            0},
       {""},
+      {"negative_sign",          tok_negative_sign,          0},
+      {""}, {""}, {""}, {""},
+      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
+      {""}, {""},
+      {"tel_int_fmt",            tok_tel_int_fmt,            0},
       {"country_post",           tok_country_post,           0},
+      {"positive_sign",          tok_positive_sign,          0},
       {""}, {""},
+      {"height",                 tok_height,                 0},
+      {"collating-element",      tok_collating_element,      0},
+      {"first_weekday",          tok_first_weekday,          0},
+      {""}, {""}, {""}, {""},
+      {"first_workday",          tok_first_workday,          0},
+      {""},
       {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
+      {"p_sign_posn",            tok_p_sign_posn,            0},
+      {""}, {""},
+      {"name_miss",              tok_name_miss,              0},
+      {""}, {""}, {""},
+      {"thousands_sep",          tok_thousands_sep,          0},
       {""},
-      {"duo_valid_to",           tok_duo_valid_to,           0},
+      {"graph",                  tok_graph,                  0},
       {""}, {""},
-      {"space",                  tok_space,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"abbreviation",           tok_abbreviation,           0},
-      {"name_fmt",               tok_name_fmt,               0},
+      {"audience",               tok_audience,               0},
       {""},
+      {"postal_fmt",             tok_postal_fmt,             0},
+      {"source",                 tok_source,                 0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"punct",                  tok_punct,                  0},
-      {""},
-      {"name_mr",                tok_name_mr,                0},
-      {"first_weekday",          tok_first_weekday,          0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"upper",                  tok_upper,                  0},
       {""}, {""},
-      {"escape_char",            tok_escape_char,            0},
+      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
       {""},
-      {"first_workday",          tok_first_workday,          0},
-      {"p_sep_by_space",         tok_p_sep_by_space,         0},
-      {"upper",                  tok_upper,                  0},
+      {"conversion_rate",        tok_conversion_rate,        0},
+      {""},
+      {"country_name",           tok_country_name,           0},
+      {""},
+      {"from",                   tok_from,                   0},
+      {"coll_weight_max",        tok_coll_weight_max,        0},
+      {""},
+      {"mon_grouping",           tok_mon_grouping,           0},
       {""}, {""},
-      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
+      {"application",            tok_application,            0},
+      {""}, {""},
+      {"section-symbol",         tok_section_symbol,         0},
+      {"int_prefix",             tok_int_prefix,             0},
+      {"n_sign_posn",            tok_n_sign_posn,            0},
       {""},
-      {"endif",                  tok_endif,                  0},
-      {"measurement",            tok_measurement,            0},
+      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
       {""}, {""}, {""}, {""},
-      {"country_car",            tok_country_car,            0},
-      {"comment_char",           tok_comment_char,           0},
-      {""}, {""},
-      {"default_missing",        tok_default_missing,        0},
-      {"source",                 tok_source,                 0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"outdigit",               tok_outdigit,               0},
+      {"mon",                    tok_mon,                    0},
       {""}, {""},
       {"collating-symbol",       tok_collating_symbol,       0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"position",               tok_position,               0},
+      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
+      {""}, {""},
+      {"endif",                  tok_endif,                  0},
       {""},
-      {"am_pm",                  tok_am_pm,                  0},
-      {"noexpr",                 tok_noexpr,                 0},
+      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
+      {"p_cs_precedes",          tok_p_cs_precedes,          0},
       {""},
-      {"mon",                    tok_mon,                    0},
-      {"territory",              tok_territory,              0},
-      {"alt_digits",             tok_alt_digits,             0},
+      {"class",                  tok_class,                  0},
+      {""}, {""}, {""}, {""},
+      {"email",                  tok_email,                  0},
+      {""}, {""}, {""}, {""},
+      {"width",                  tok_width,                  0},
       {""}, {""},
       {"language",               tok_language,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"charconv",               tok_charconv,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"duo_valid_from",         tok_duo_valid_from,         0},
-      {""},
-      {"p_sign_posn",            tok_p_sign_posn,            0},
-      {""},
-      {"positive_sign",          tok_positive_sign,          0},
-      {""}, {""}, {""},
-      {"country_name",           tok_country_name,           0},
       {""}, {""},
-      {"alnum",                  tok_alnum,                  0},
       {"frac_digits",            tok_frac_digits,            0},
-      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
-      {""}, {""}, {""}, {""}, {""},
-      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
       {""}, {""}, {""}, {""},
-      {"revision",               tok_revision,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"n_sep_by_space",         tok_n_sep_by_space,         0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"lang_term",              tok_lang_term,              0},
-      {"duo_frac_digits",        tok_duo_frac_digits,        0},
-      {""},
-      {"name_ms",                tok_name_ms,                0},
-      {"name_mrs",               tok_name_mrs,               0},
-      {""},
-      {"email",                  tok_email,                  0},
+      {"country_car",            tok_country_car,            0},
+      {"comment_char",           tok_comment_char,           0},
+      {""}, {""}, {""}, {""},
+      {"duo_valid_to",           tok_duo_valid_to,           0},
+      {"cal_direction",          tok_cal_direction,          0},
       {""},
-      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
-      {"thousands_sep",          tok_thousands_sep,          0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"undef",                  tok_undef,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"uno_valid_to",           tok_uno_valid_to,           0},
+      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"abmon",                  tok_abmon,                  0},
-      {"country_num",            tok_country_num,            0},
+      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
       {""},
-      {"p_cs_precedes",          tok_p_cs_precedes,          0},
-      {""}, {""}, {""},
-      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
-      {"name_gen",               tok_name_gen,               0},
-      {""}, {""},
-      {"n_sign_posn",            tok_n_sign_posn,            0},
+      {"int_select",             tok_int_select,             0},
+      {""}, {""}, {""}, {""},
+      {"cntrl",                  tok_cntrl,                  0},
       {""},
-      {"negative_sign",          tok_negative_sign,          0},
-      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"country_isbn",           tok_country_isbn,           0},
+      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0},
       {""}, {""},
       {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
       {""}, {""},
-      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
+      {"n_cs_precedes",          tok_n_cs_precedes,          0},
+      {""}, {""}, {""},
+      {"country_isbn",           tok_country_isbn,           0},
       {""}, {""}, {""}, {""},
-      {"cal_direction",          tok_cal_direction,          0},
-      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
-      {"currency_symbol",        tok_currency_symbol,        0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"include",                tok_include,                0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
+      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
+      {"charconv",               tok_charconv,               0},
+      {""}, {""}, {""},
+      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"uno_valid_from",         tok_uno_valid_from,         0},
+      {""}, {""}, {""},
+      {"alnum",                  tok_alnum,                  0},
       {""}, {""}, {""}, {""},
-      {"name_miss",              tok_name_miss,              0},
+      {"int_frac_digits",        tok_int_frac_digits,        0},
       {""},
-      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
-      {""}, {""}, {""}, {""},
-      {"application",            tok_application,            0},
+      {"mon_decimal_point",      tok_mon_decimal_point,      0},
       {""}, {""}, {""},
-      {"int_frac_digits",        tok_int_frac_digits,        0},
-      {""}, {""}, {""}, {""},
-      {"int_prefix",             tok_int_prefix,             0},
+      {"measurement",            tok_measurement,            0},
+      {"uno_valid_to",           tok_uno_valid_to,           0},
+      {"outdigit",               tok_outdigit,               0},
+      {""}, {""}, {""},
+      {"include",                tok_include,                0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
+      {""}, {""}, {""}, {""}, {""},
+      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
       {""}, {""},
-      {"n_cs_precedes",          tok_n_cs_precedes,          0},
-      {"charclass",              tok_charclass,              0},
+      {"duo_valid_from",         tok_duo_valid_from,         0},
+      {"default_missing",        tok_default_missing,        0},
+      {"country_num",            tok_country_num,            0},
+      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
       {""}, {""},
+      {"int_curr_symbol",        tok_int_curr_symbol,        0},
+      {""},
       {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
       {""}, {""},
-      {"class",                  tok_class,                  0},
+      {"ifdef",                  tok_ifdef,                  0},
       {""}, {""}, {""},
-      {"section-symbol",         tok_section_symbol,         0},
-      {""}, {""}, {""}, {""},
-      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
-      {""}, {""}, {""}, {""}, {""},
-      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"int_select",             tok_int_select,             0},
-      {""},
-      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"cntrl",                  tok_cntrl,                  0},
       {""}, {""}, {""}, {""},
-      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
-      {""}, {""},
-      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
+      {"lang_term",              tok_lang_term,              0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"int_curr_symbol",        tok_int_curr_symbol,        0},
+      {""}, {""}, {""}, {""}, {""},
+      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
+      {""}, {""}, {""}, {""},
+      {"charclass",              tok_charclass,              0},
+      {"am_pm",                  tok_am_pm,                  0},
+      {""}, {""}, {""}, {""},
+      {"duo_frac_digits",        tok_duo_frac_digits,        0},
       {""}, {""}, {""}, {""}, {""},
       {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"uno_valid_from",         tok_uno_valid_from,         0},
+      {""}, {""}, {""}, {""},
+      {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
+      {""}, {""}, {""}, {""}, {""},
+      {"currency_symbol",        tok_currency_symbol,        0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
-      {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0},
+      {"undef",                  tok_undef,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"int_n_sign_posn",        tok_int_n_sign_posn,        0}
+      {""}, {""}, {""}, {""},
+      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/locale/programs/locfile-token.h b/locale/programs/locfile-token.h
index 6eecc5618a..59648f1eb3 100644
--- a/locale/programs/locfile-token.h
+++ b/locale/programs/locfile-token.h
@@ -98,6 +98,7 @@ enum token_t
   tok_collating_element,
   tok_collating_symbol,
   tok_symbol_equivalence,
+  tok_script,
   tok_order_start,
   tok_order_end,
   tok_from,
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
index ed843b6a29..96e2a110df 100644
--- a/locale/programs/locfile.h
+++ b/locale/programs/locfile.h
@@ -65,7 +65,7 @@ locale name should consist only of portable characters"));
       else
 	{
 	  (void) add_to_readlist (locale, now->val.str.startmb,
-				  repertoire_name, 1);
+				  repertoire_name, 1, NULL);
 	  result->copy_name[locale] = now->val.str.startmb;
 	}
     }
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 39771c5763..5c419b2eb2 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,16 @@
+2000-06-25  Ulrich Drepper  <drepper@redhat.com>
+
+	* sort-test.sh: Add more GCONV_PATH usages.
+	* tst-fmon.sh: Likewise.
+	* tst-locale.sh: Likewise.
+	* tst-mbswcs.sh: Likewise.
+	* tst-rpmatch.sh: Likewise.
+	* tst-trans.sh: Likewise.
+
+	* locales/i18n: Remove order_start around copy.
+
+	* locales/iso14651_t1: Correct various small errors.
+
 2000-06-24  Ulrich Drepper  <drepper@redhat.com>
 
 	* charmaps/ISO-8859-1: Correct width specification.
diff --git a/localedata/locales/i18n b/localedata/locales/i18n
index cd76ef792c..7598840864 100644
--- a/localedata/locales/i18n
+++ b/localedata/locales/i18n
@@ -995,13 +995,9 @@ symbol-equivalence <HOOK>              <CROOK>
 symbol-equivalence <HORN>              <HORNU>
 symbol-equivalence <DOT-BELOW>         <POINS>
 
-order_start forward;forward;forward;forward,position
-
 % Copy the template from ISO/IEC 14651
 copy "iso14651_t1"
 
-order_end
-
 END LC_COLLATE
 
 LC_MONETARY
diff --git a/localedata/locales/iso14651_t1 b/localedata/locales/iso14651_t1
index 0402a1f510..c0b2bba758 100644
--- a/localedata/locales/iso14651_t1
+++ b/localedata/locales/iso14651_t1
@@ -1,7 +1,5 @@
 LC_COLLATE
 
-COLL_WEIGHT_MAX=4
-
 # Déclaration des systèmes d'écriture / Declaration of scripts
 script <SPECIAL>
 script <LATIN>
@@ -106,6 +104,7 @@ collating-symbol <w>
 collating-symbol <x>
 collating-symbol <y>
 collating-symbol <z>
+collating-symbol <th>
 #
 # <ARABINT>/<ARABFOR>
 #
@@ -153,7 +152,7 @@ collating-symbol <yeh_barree>
 #
 # <HEBREU>
 #
-collating-symbol <alef>
+collating-symbol <halef>
 collating-symbol <bet>
 collating-symbol <gimel>
 collating-symbol <dalet>
@@ -164,7 +163,7 @@ collating-symbol <het>
 collating-symbol <tet>
 collating-symbol <yod>
 collating-symbol <kaf_fin>
-collating-symbol <kaf>
+collating-symbol <hkaf>
 collating-symbol <lamed>
 collating-symbol <mem_fin>
 collating-symbol <mem>
@@ -204,7 +203,7 @@ collating-symbol <SIGMA>
 collating-symbol <TAU>
 collating-symbol <UPSILON>
 collating-symbol <PHI>
-collating-symbol <KHI>
+collating-symbol <CHI>
 collating-symbol <PSI>
 collating-symbol <OMEGA>
 #
@@ -246,7 +245,6 @@ collating-symbol <CYR-OUBRE>
 collating-symbol <CYR-EF>
 collating-symbol <CYR-HA>
 collating-symbol <CYR-TSE>
-collating-symbol <CYR-TSHE>
 collating-symbol <CYR-DCHE>
 collating-symbol <CYR-SHA>
 collating-symbol <CYR-SHTSHA>
@@ -272,7 +270,6 @@ collating-symbol <CYR-YA>
 #
 #
 <ANO> # voir
-<MIN>
 <AIS> # isol.
 # 3
 <AFI> # final
@@ -411,7 +408,7 @@ collating-symbol <CYR-YA>
 #
 # <HEBREU>
 #
-<alef>
+<halef>
 <bet>
 <gimel>
 <dalet>
@@ -422,7 +419,7 @@ collating-symbol <CYR-YA>
 <tet>
 <yod>
 <kaf_fin>
-<kaf>
+<hkaf>
 <lamed>
 <mem_fin>
 <mem>
@@ -504,7 +501,6 @@ collating-symbol <CYR-YA>
 <CYR-EF>
 <CYR-HA>
 <CYR-TSE>
-<CYR-TSHE>
 <CYR-DCHE>
 <CYR-SHA>
 <CYR-SHTSHA>
@@ -573,7 +569,7 @@ order_start <SPECIAL>;forward;backward;forward;forward,position
 <U00A3> IGNORE;IGNORE;IGNORE;<U00A3> # 86 £
 <U00A5> IGNORE;IGNORE;IGNORE;<U00A5> # 87 ¥
 <U002A> IGNORE;IGNORE;IGNORE;<U002A> # 88 *
-<U005C> IGNORE;IGNORE;IGNORE;<U005C> # 89 \
+<U005C> IGNORE;IGNORE;IGNORE;<U005C> # 89
 <U0026> IGNORE;IGNORE;IGNORE;<U0026> # 90 &
 <U0023> IGNORE;IGNORE;IGNORE;<U0023> # 91 #
 <U0025> IGNORE;IGNORE;IGNORE;<U0025> # 92 %
@@ -680,7 +676,7 @@ order_start <SPECIAL>;forward;backward;forward;forward,position
 
 order_start <LATIN>;forward;backward;forward;forward,position
 #
-<U00A0> U0020;<BAS>;<MIN>;IGNORE # 170<NBSP>
+<U00A0> <U0020>;<BAS>;<MIN>;IGNORE # 170<NBSP>
 #
 <U0030> <0>;<BAS>;<MIN>;IGNORE # 171 0
 <U0031> <1>;<BAS>;<MIN>;IGNORE # 172 1
@@ -722,7 +718,7 @@ order_start <LATIN>;forward;backward;forward;forward,position
 <U0103> <a>;<BRE>;<MIN>;IGNORE # 206 <a(>
 <U0105> <a>;<OGO>;<MIN>;IGNORE # 207 <a;>
 <U0101> <a>;<MAC>;<MIN>;IGNORE # 208 <a->
-<U00E6> <a><e>;<LIG><LIG>;<MIN><MIN>;IGNORE # 209 æ
+<U00E6> "<a><e>";"<LIG><LIG>";"<MIN><MIN>";IGNORE # 209 æ
 <U0062> <b>;<BAS>;<MIN>;IGNORE # 210 b
 <U0063> <c>;<BAS>;<MIN>;IGNORE # 211 c
 <U00E7> <c>;<CDI>;<MIN>;IGNORE # 212 ç
@@ -803,7 +799,7 @@ order_start <LATIN>;forward;backward;forward;forward,position
 <U015D> <s>;<CIR>;<MIN>;IGNORE # 287 <s/>>
 <U0161> <s>;<CAR>;<MIN>;IGNORE # 288 <s<>
 <U015F> <s>;<CDI>;<MIN>;IGNORE # 289 <s,>
-<U00DF> <s><s>;<LIG><LIG>;<MIN><MIN>;IGNORE # 290 ß
+<U00DF> "<s><s>";"<LIG><LIG>";"<MIN><MIN>";IGNORE # 290 ß
 <U0074> <t>;<BAS>;<MIN>;IGNORE # 291 t
 <U0165> <t>;<CAR>;<MIN>;IGNORE # 292 <t<>
 <U0167> <t>;<OBL>;<MIN>;IGNORE # 293 <t//>
@@ -842,7 +838,7 @@ order_start <LATIN>;forward;backward;forward;forward,position
 <U0102> <a>;<BRE>;<CAP>;IGNORE # 326 <A(>
 <U0104> <a>;<OGO>;<CAP>;IGNORE # 327 <A;>
 <U0100> <a>;<MAC>;<CAP>;IGNORE # 328 <A->
-<U00C6> <a><e>;<LIG><LIG>;<CAP><CAP>;IGNORE # 329 Æ
+<U00C6> "<a><e>";"<LIG><LIG>";"<CAP><CAP>";IGNORE # 329 Æ
 <U0042> <b>;<BAS>;<CAP>;IGNORE # 330 B
 <U0043> <c>;<BAS>;<CAP>;IGNORE # 331 C
 <U00C7> <c>;<CDI>;<CAP>;IGNORE # 332 Ç
@@ -1176,7 +1172,7 @@ order_start <ARABFOR>;backward;backward;backward;forward,position
 <UFEFC> <lam><alef>;<BAS><BAS>;<AFI><AFI>;IGNORE
 
 order_start <HEBREU>;forward;forward;forward;forward,position
-<U05D0> <alef>;<BAS>;IGNORE;IGNORE
+<U05D0> <halef>;<BAS>;IGNORE;IGNORE
 <U05D1> <bet>;<BAS>;IGNORE;IGNORE
 <U05D2> <gimel>;<BAS>;IGNORE;IGNORE
 <U05D3> <dalet>;<BAS>;IGNORE;IGNORE
@@ -1187,7 +1183,7 @@ order_start <HEBREU>;forward;forward;forward;forward,position
 <U05D8> <tet>;<BAS>;IGNORE;IGNORE
 <U05D9> <yod>;<BAS>;IGNORE;IGNORE
 <U05DA> <kaf_fin>;<BAS>;IGNORE;IGNORE
-<U05DB> <kaf>;<BAS>;IGNORE;IGNORE
+<U05DB> <hkaf>;<BAS>;IGNORE;IGNORE
 <U05DC> <lamed>;<BAS>;IGNORE;IGNORE
 <U05DD> <mem_fin>;<BAS>;IGNORE;IGNORE
 <U05DE> <mem>;<BAS>;IGNORE;IGNORE
@@ -1204,7 +1200,7 @@ order_start <HEBREU>;forward;forward;forward;forward,position
 <U05E9> <shin>;<BAS>;IGNORE;IGNORE
 <U05EA> <tav>;<BAS>;IGNORE;IGNORE
 
-order_start <GREC>;forward;backward;forward
+order_start <GREC>;forward;backward;forward;forward,position
 <U0391> <ALPHA>;<BAS>;<CAP>;IGNORE
 <U03B1> <ALPHA>;<BAS>;<AMI>;IGNORE
 <U0386> <ALPHA>;<TNS>;<CAP>;IGNORE
diff --git a/localedata/sort-test.sh b/localedata/sort-test.sh
index 322d40cb2c..be5693a492 100644
--- a/localedata/sort-test.sh
+++ b/localedata/sort-test.sh
@@ -11,7 +11,8 @@ for l in $lang; do
   cns=`echo $l | sed 's/\(.*\)[.][^.]*/\1/'`
   cn=locales/$cns
   fn=charmaps/`echo $l | sed 's/.*[.]\([^.]*\)/\1/'`
-  I18NPATH=. ${common_objpfx}elf/ld.so --library-path $common_objpfx \
+  I18NPATH=. GCONV_PATH=${common_objpfx}/iconvdata \
+   ${common_objpfx}elf/ld.so --library-path $common_objpfx \
    ${common_objpfx}locale/localedef --quiet -i $cn -f $fn \
    ${common_objpfx}localedata/$cns
 done
@@ -20,14 +21,14 @@ done
 status=0
 for l in $lang; do
   cns=`echo $l | sed 's/\(.*\)[.][^.]*/\1/'`
-  LOCPATH=${common_objpfx}localedata LC_ALL=$cns \
-   ${common_objpfx}elf/ld.so --library-path $common_objpfx \
+  LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}/iconvdata \
+   LC_ALL=$cns ${common_objpfx}elf/ld.so --library-path $common_objpfx \
    ${common_objpfx}localedata/collate-test $id < $cns.in \
    > ${common_objpfx}localedata/$cns.out || status=1
   cmp -s $cns.in ${common_objpfx}localedata/$cns.out || status=1
 
-  LOCPATH=${common_objpfx}localedata LC_ALL=$cns \
-   ${common_objpfx}elf/ld.so --library-path $common_objpfx \
+  LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}/iconvdata \
+   LC_ALL=$cns ${common_objpfx}elf/ld.so --library-path $common_objpfx \
    ${common_objpfx}localedata/xfrm-test $id < $cns.in \
    > ${common_objpfx}localedata/$cns.xout || status=1
   cmp -s $cns.in ${common_objpfx}localedata/$cns.xout || status=1
diff --git a/localedata/tst-fmon.sh b/localedata/tst-fmon.sh
index a1c9ad5d3c..c578826145 100755
--- a/localedata/tst-fmon.sh
+++ b/localedata/tst-fmon.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Testing the implementation of strfmon(3).
-# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 # Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 1997.
 #
@@ -36,7 +36,7 @@ for l in $lang; do
     cns=`echo $l | sed 's/\(.*\)[.][^.]*/\1/'`
     cn=locales/$cns
     fn=charmaps/`echo $l | sed 's/.*[.]\([^.]*\)/\1/'`
-    I18NPATH=. \
+    I18NPATH=. GCONV_PATH=${common_objpfx}/iconvdata \
     ${common_objpfx}elf/ld.so --library-path $common_objpfx \
     ${common_objpfx}locale/localedef \
     --quiet -i $cn -f $fn ${common_objpfx}localedata/$cns
@@ -44,7 +44,7 @@ done
 for cns in `cd ./tst-fmon-locales && ls tstfmon_*`; do
     cn=tst-fmon-locales/$cns
     fn=charmaps/ISO-8859-1
-    I18NPATH=. \
+    I18NPATH=. GCONV_PATH=${common_objpfx}/iconvdata \
     ${common_objpfx}elf/ld.so --library-path $common_objpfx \
     ${common_objpfx}locale/localedef \
     --quiet -i $cn -f $fn ${common_objpfx}localedata/$cns
@@ -55,6 +55,7 @@ IFS="	"                # This is a TAB
 while read locale format value expect; do
     if [ -n "$format" ]; then
 	LOCPATH=${common_objpfx}localedata \
+	GCONV_PATH=${common_objpfx}/iconvdata \
 	${common_objpfx}elf/ld.so --library-path $common_objpfx \
         ${common_objpfx}localedata/tst-fmon \
 	    "$locale" "$format" "$value" "$expect"
diff --git a/localedata/tst-locale.sh b/localedata/tst-locale.sh
index 6851c364c8..75d54b81ae 100755
--- a/localedata/tst-locale.sh
+++ b/localedata/tst-locale.sh
@@ -27,7 +27,7 @@ test_locale ()
     input=$2
     out=$3
     rep=$4
-    I18NPATH=. \
+    I18NPATH=. GCONV_PATH=${common_objpfx}/iconvdata \
     ${common_objpfx}elf/ld.so --library-path $common_objpfx \
     ${common_objpfx}locale/localedef --quiet -c -f $charmap -i $input \
       --repertoire-map $rep ${common_objpfx}localedata/$out
diff --git a/localedata/tst-mbswcs.sh b/localedata/tst-mbswcs.sh
index 936db382e3..a23de6bc75 100755
--- a/localedata/tst-mbswcs.sh
+++ b/localedata/tst-mbswcs.sh
@@ -26,7 +26,7 @@ generate_locale ()
     input=$2
     out=$3
     rep=$4
-    I18NPATH=. \
+    I18NPATH=. GCONV_PATH=${common_objpfx}/iconvdata \
     ${common_objpfx}elf/ld.so --library-path $common_objpfx \
     ${common_objpfx}locale/localedef --quiet -c -f $charmap -i $input \
       --repertoire-map $rep ${common_objpfx}localedata/$out
diff --git a/localedata/tst-rpmatch.sh b/localedata/tst-rpmatch.sh
index 50297139d1..a3993a3885 100755
--- a/localedata/tst-rpmatch.sh
+++ b/localedata/tst-rpmatch.sh
@@ -1,6 +1,6 @@
 #! /bin/sh -f
 #
-# Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
 # This file is part of the GNU C Library and contains tests for
 # the rpmatch(3)-implementation.
 # contributed by Jochen Hein <jochen.hein@delphi.central.de>
@@ -25,6 +25,7 @@ rc=0
 while read locale string result dummy; do
     if [ "$locale" != "#" ]; then
 	LOCPATH=${common_objpfx}localedata \
+	GCONV_PATH=${common_objpfx}/iconvdata \
 	${common_objpfx}elf/ld.so --library-path $common_objpfx \
 	${common_objpfx}localedata/tst-rpmatch $locale $string $result \
 	|| exit 1
diff --git a/localedata/tst-trans.sh b/localedata/tst-trans.sh
index c17525dd18..0689c5cfe3 100755
--- a/localedata/tst-trans.sh
+++ b/localedata/tst-trans.sh
@@ -21,7 +21,7 @@
 common_objpfx=$1
 
 # Generate the necessary locale data.
-I18NPATH=. \
+I18NPATH=. GCONV_PATH=${common_objpfx}/iconvdata \
 ${common_objpfx}elf/ld.so --library-path $common_objpfx \
 ${common_objpfx}locale/localedef --quiet \
 -i tests/trans.def -f charmaps/ISO-8859-1 -u repertoiremaps/mnemonic.ds \