aboutsummaryrefslogtreecommitdiff
path: root/locale
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
parentc6c6dd4803a9ec8d7302b9ed8552ad15516baeb6 (diff)
downloadglibc-69f6a804b0947fb5c6bdbc007d71fa8b8e7bab08.zip
glibc-69f6a804b0947fb5c6bdbc007d71fa8b8e7bab08.tar.gz
glibc-69f6a804b0947fb5c6bdbc007d71fa8b8e7bab08.tar.bz2
* 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')
-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 f569d1b..e216165 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 5bbf0bf..64b1d44 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 ea2cf82..4983214 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 389adf1..c5e5581 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;