summaryrefslogtreecommitdiff
path: root/libc/locale/programs/locarchive.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/locale/programs/locarchive.c')
-rw-r--r--libc/locale/programs/locarchive.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/libc/locale/programs/locarchive.c b/libc/locale/programs/locarchive.c
index 4e3bbfec9..d8df39a8e 100644
--- a/libc/locale/programs/locarchive.c
+++ b/libc/locale/programs/locarchive.c
@@ -326,7 +326,6 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
unsigned int cnt, loccnt;
struct namehashent *oldnamehashtab;
struct locarhandle new_ah;
- struct oldlocrecent *oldlocrecarray;
size_t prefix_len = output_prefix ? strlen (output_prefix) : 0;
char archivefname[prefix_len + sizeof (ARCHIVE_NAME)];
char fname[prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1];
@@ -457,7 +456,7 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
+ head->namehash_offset);
/* Sort the old locrec table in order of data position. */
- oldlocrecarray = alloca (sizeof (*oldlocrecarray) * head->namehash_size);
+ struct oldlocrecent oldlocrecarray[head->namehash_size];
for (cnt = 0, loccnt = 0; cnt < head->namehash_size; ++cnt)
if (oldnamehashtab[cnt].locrec_offset != 0)
{
@@ -1129,9 +1128,9 @@ add_locale_to_archive (ah, name, data, replace)
unsigned int nstrings;
unsigned int strindex[0];
} *filedata = data[LC_CTYPE].addr;
- char *normalized_codeset_name = NULL;
codeset = (char *) filedata
+ filedata->strindex[_NL_ITEM_INDEX (_NL_CTYPE_CODESET_NAME)];
+ char *normalized_codeset_name = NULL;
normalized_codeset = _nl_normalize_codeset (codeset, strlen (codeset));
mask |= XPG_NORM_CODESET;