summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--locale/loadlocale.c5
-rw-r--r--wctype/wctrans.c2
3 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d2c0dea9e8..48a033e52e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
1999-11-20 Ulrich Drepper <drepper@cygnus.com>
+ * wctype/wctrans.c (wctrans): Use correct base index to access
+ extra mapping tables.
+
+ * locale/loadlocale.c (_nl_load_locale): Use actual number of
+ entries from file and not the fixed (minimal number from the
+ langinfo.h list.
+
* locale/programs/ld-ctype.c (ctype_read): Fix reading of <U....>
values in charmaps.
diff --git a/locale/loadlocale.c b/locale/loadlocale.c
index d829309f9f..7b94a42d0a 100644
--- a/locale/loadlocale.c
+++ b/locale/loadlocale.c
@@ -176,8 +176,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
}
newdata = malloc (sizeof *newdata
- + (_nl_category_num_items[category]
- * sizeof (union locale_data_value)));
+ + filedata->nstrings * sizeof (union locale_data_value));
if (! newdata)
goto puntmap;
@@ -186,7 +185,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
newdata->filesize = st.st_size;
newdata->mmaped = mmaped;
newdata->usage_count = 0;
- newdata->nstrings = _nl_category_num_items[category];
+ newdata->nstrings = filedata->nstrings;
for (cnt = 0; cnt < newdata->nstrings; ++cnt)
{
off_t idx = filedata->strindex[cnt];
diff --git a/wctype/wctrans.c b/wctype/wctrans.c
index 3c46131f24..a5b4a32aac 100644
--- a/wctype/wctrans.c
+++ b/wctype/wctrans.c
@@ -50,7 +50,7 @@ wctrans (const char *property)
return (wctrans_t) __ctype_tolower;
/* We have to search the table. */
- result = (int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_WIDTH + cnt - 2);
+ result = (int32_t *) _NL_CURRENT (LC_CTYPE, _NL_NUM_LC_CTYPE + cnt - 2);
return (wctrans_t) (result + 128);
}