about summary refs log tree commit diff
path: root/locale/programs
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-08-20 23:10:34 +0000
committerRoland McGrath <roland@gnu.org>2002-08-20 23:10:34 +0000
commit69f6a804b0947fb5c6bdbc007d71fa8b8e7bab08 (patch)
tree0c2d1beec2594f3ef81ee412e4cfee0749856d4b /locale/programs
parentc6c6dd4803a9ec8d7302b9ed8552ad15516baeb6 (diff)
downloadglibc-69f6a804b0947fb5c6bdbc007d71fa8b8e7bab08.tar.gz
glibc-69f6a804b0947fb5c6bdbc007d71fa8b8e7bab08.tar.xz
glibc-69f6a804b0947fb5c6bdbc007d71fa8b8e7bab08.zip
* locale/programs/localedef.c (add_to_readlist): Error about
	circular dependencies only if the locale in question hasn't
	been finished.
	* locale/programs/linereader.c (get_string): Pass LC_CTYPE not
	CTYPE_LOCALE to load_locale.
	* locale/programs/locfile.c (locfile_read): Don't include
	unneeded but available locales in locale_mask.

	* locale/programs/locarchive.c (enlarge_archive): If quiet, don't
	print any messages about enlarging archive.
Diffstat (limited to 'locale/programs')
-rw-r--r--locale/programs/linereader.c2
-rw-r--r--locale/programs/localedef.c4
-rw-r--r--locale/programs/locarchive.c5
-rw-r--r--locale/programs/locfile.c2
4 files changed, 8 insertions, 5 deletions
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
index f569d1b9b8..e21616538f 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -735,7 +735,7 @@ non-symbolic character value should not be used"));
 				  int old_needed = locale->needed;
 
 				  locale->needed = 0;
-				  locale = load_locale (CTYPE_LOCALE,
+				  locale = load_locale (LC_CTYPE,
 							locale->name,
 							locale->repertoire_name,
 							charmap, locale);
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index 5bbf0bf7e3..64b1d44637 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -561,7 +561,9 @@ add_to_readlist (int locale, const char *name, const char *repertoire_name,
 	}
     }
 
-  if (generate && (runp->needed & (1 << locale)) != 0)
+  if (generate
+      && (runp->needed & (1 << locale)) != 0
+      && (runp->avail & (1 << locale)) == 0)
     WITH_CUR_LOCALE (error (5, 0, _("\
 circular dependencies between locale definitions")));
 
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
index ea2cf82792..498321442f 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -259,8 +259,9 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
      should be double from what is currently used.  */
   newhead.namehash_size = MAX (next_prime (2 * newhead.namehash_used),
 			       newhead.namehash_size);
-  printf ("name: size: %u, used: %d, new: size: %u\n",
-	  head->namehash_size, head->namehash_used, newhead.namehash_size);
+  if (! be_quiet)
+    printf ("name: size: %u, used: %d, new: size: %u\n",
+	    head->namehash_size, head->namehash_used, newhead.namehash_size);
 
   newhead.string_offset = (newhead.namehash_offset
 			   + (newhead.namehash_size
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index 389adf1ee3..c5e5581ac5 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -47,7 +47,7 @@ locfile_read (struct localedef_t *result, const struct charmap_t *charmap)
 {
   const char *filename = result->name;
   const char *repertoire_name = result->repertoire_name;
-  int locale_mask = result->needed ^ result->avail;
+  int locale_mask = result->needed & ~result->avail;
   struct linereader *ldfile;
   int not_here = ALL_LOCALES;