mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
2000-02-23 Ulrich Drepper <drepper@redhat.com> * locale/programs/ld-ctype.c (allocate_arrays): Make sure the end of width table is 4-byte aligned. (ctype_output): Write out the entire width array. * sysdeps/unix/sysv/linux/bits/waitflags.h: Add __WALL.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2000-02-23 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* locale/programs/ld-ctype.c (allocate_arrays): Make sure the end
|
||||||
|
of width table is 4-byte aligned.
|
||||||
|
(ctype_output): Write out the entire width array.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/bits/waitflags.h: Add __WALL.
|
||||||
|
|
||||||
2000-02-23 Andreas Jaeger <aj@suse.de>
|
2000-02-23 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
* dlfcn/dlopen.c: Include <stddef.h> for NULL.
|
* dlfcn/dlopen.c: Include <stddef.h> for NULL.
|
||||||
|
@ -281,7 +281,6 @@ ctype_startup (struct linereader *lr, struct localedef_t *locale,
|
|||||||
ctype->class_collection_act = 256;
|
ctype->class_collection_act = 256;
|
||||||
|
|
||||||
/* Fill character map information. */
|
/* Fill character map information. */
|
||||||
ctype->map_collection_nr = 0;
|
|
||||||
ctype->last_map_idx = MAX_NR_CHARMAP;
|
ctype->last_map_idx = MAX_NR_CHARMAP;
|
||||||
ctype_map_new (lr, ctype, "toupper", charmap);
|
ctype_map_new (lr, ctype, "toupper", charmap);
|
||||||
ctype_map_new (lr, ctype, "tolower", charmap);
|
ctype_map_new (lr, ctype, "tolower", charmap);
|
||||||
@ -910,7 +909,8 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
CTYPE_DATA (_NL_CTYPE_WIDTH,
|
CTYPE_DATA (_NL_CTYPE_WIDTH,
|
||||||
ctype->width, ctype->plane_size * ctype->plane_cnt);
|
ctype->width,
|
||||||
|
(ctype->plane_size * ctype->plane_cnt + 3) & ~3ul);
|
||||||
|
|
||||||
CTYPE_DATA (_NL_CTYPE_MB_CUR_MAX,
|
CTYPE_DATA (_NL_CTYPE_MB_CUR_MAX,
|
||||||
&ctype->mb_cur_max, sizeof (uint32_t));
|
&ctype->mb_cur_max, sizeof (uint32_t));
|
||||||
@ -1094,9 +1094,7 @@ implementation limit: no more than %d character maps allowed"),
|
|||||||
ctype->map_collection_max[cnt] = max_chars;
|
ctype->map_collection_max[cnt] = max_chars;
|
||||||
|
|
||||||
ctype->map_collection[cnt] = (uint32_t *)
|
ctype->map_collection[cnt] = (uint32_t *)
|
||||||
xmalloc (sizeof (uint32_t) * ctype->map_collection_max[cnt]);
|
xcalloc (sizeof (uint32_t), ctype->map_collection_max[cnt]);
|
||||||
memset (ctype->map_collection[cnt], '\0',
|
|
||||||
sizeof (uint32_t) * ctype->map_collection_max[cnt]);
|
|
||||||
ctype->map_collection_act[cnt] = 256;
|
ctype->map_collection_act[cnt] = 256;
|
||||||
|
|
||||||
++ctype->map_collection_nr;
|
++ctype->map_collection_nr;
|
||||||
@ -1125,9 +1123,9 @@ find_idx (struct locale_ctype_t *ctype, uint32_t **table, size_t *max,
|
|||||||
if (ctype->charnames_act == ctype->charnames_max)
|
if (ctype->charnames_act == ctype->charnames_max)
|
||||||
{
|
{
|
||||||
ctype->charnames_max *= 2;
|
ctype->charnames_max *= 2;
|
||||||
ctype->charnames = (unsigned int *)
|
ctype->charnames = (uint32_t *)
|
||||||
xrealloc (ctype->charnames,
|
xrealloc (ctype->charnames,
|
||||||
sizeof (unsigned int) * ctype->charnames_max);
|
sizeof (uint32_t) * ctype->charnames_max);
|
||||||
}
|
}
|
||||||
ctype->charnames[ctype->charnames_act++] = idx;
|
ctype->charnames[ctype->charnames_act++] = idx;
|
||||||
}
|
}
|
||||||
@ -1146,7 +1144,7 @@ find_idx (struct locale_ctype_t *ctype, uint32_t **table, size_t *max,
|
|||||||
while (*max <= cnt);
|
while (*max <= cnt);
|
||||||
|
|
||||||
*table =
|
*table =
|
||||||
(uint32_t *) xrealloc (*table, *max * sizeof (unsigned long int));
|
(uint32_t *) xrealloc (*table, *max * sizeof (uint32_t));
|
||||||
memset (&(*table)[old_max], '\0',
|
memset (&(*table)[old_max], '\0',
|
||||||
(*max - old_max) * sizeof (uint32_t));
|
(*max - old_max) * sizeof (uint32_t));
|
||||||
}
|
}
|
||||||
@ -1197,10 +1195,11 @@ get_character (struct token *now, struct charmap_t *charmap,
|
|||||||
/* Insert a negative entry. */
|
/* Insert a negative entry. */
|
||||||
static const struct charseq negative
|
static const struct charseq negative
|
||||||
= { .ucs4 = ILLEGAL_CHAR_VALUE };
|
= { .ucs4 = ILLEGAL_CHAR_VALUE };
|
||||||
uint32_t *newp = obstack_alloc (&repertoire->mem_pool, 4);
|
uint32_t *newp = obstack_alloc (&repertoire->mem_pool,
|
||||||
|
sizeof (uint32_t));
|
||||||
*newp = now->val.ucs4;
|
*newp = now->val.ucs4;
|
||||||
|
|
||||||
insert_entry (&repertoire->seq_table, newp, 4,
|
insert_entry (&repertoire->seq_table, newp, sizeof (uint32_t),
|
||||||
(void *) &negative);
|
(void *) &negative);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1391,7 +1390,8 @@ to-value <U%0*X> of range is smaller than from-value <U%0*X>"),
|
|||||||
{
|
{
|
||||||
const char *symbol = repertoire_find_symbol (repertoire,
|
const char *symbol = repertoire_find_symbol (repertoire,
|
||||||
last_wch);
|
last_wch);
|
||||||
uint32_t *newp = obstack_alloc (&repertoire->mem_pool, 4);
|
uint32_t *newp = obstack_alloc (&repertoire->mem_pool,
|
||||||
|
sizeof (uint32_t));
|
||||||
*newp = last_wch;
|
*newp = last_wch;
|
||||||
|
|
||||||
if (symbol != NULL)
|
if (symbol != NULL)
|
||||||
@ -1404,7 +1404,8 @@ to-value <U%0*X> of range is smaller than from-value <U%0*X>"),
|
|||||||
else
|
else
|
||||||
seq->ucs4 = last_wch;
|
seq->ucs4 = last_wch;
|
||||||
|
|
||||||
insert_entry (&repertoire->seq_table, newp, 4, seq);
|
insert_entry (&repertoire->seq_table, newp, sizeof (uint32_t),
|
||||||
|
seq);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
/* We have to create a fake entry. */
|
/* We have to create a fake entry. */
|
||||||
@ -1418,7 +1419,7 @@ to-value <U%0*X> of range is smaller than from-value <U%0*X>"),
|
|||||||
|= class256_bit;
|
|= class256_bit;
|
||||||
|
|
||||||
/* And of course we have the UCS4 position. */
|
/* And of course we have the UCS4 position. */
|
||||||
if (class_bit != 0 && class_bit != 0)
|
if (class_bit != 0)
|
||||||
*find_idx (ctype, &ctype->class_collection,
|
*find_idx (ctype, &ctype->class_collection,
|
||||||
&ctype->class_collection_max,
|
&ctype->class_collection_max,
|
||||||
&ctype->class_collection_act, last_wch) |= class_bit;
|
&ctype->class_collection_act, last_wch) |= class_bit;
|
||||||
@ -1583,7 +1584,7 @@ read_widestring (struct linereader *ldfile, struct token *now,
|
|||||||
|
|
||||||
if (now->tok == tok_default_missing)
|
if (now->tok == tok_default_missing)
|
||||||
/* The special name "" will denote this case. */
|
/* The special name "" will denote this case. */
|
||||||
wstr = (uint32_t *) L"";
|
wstr = ((uint32_t *) { 0 });
|
||||||
else if (now->tok == tok_bsymbol)
|
else if (now->tok == tok_bsymbol)
|
||||||
{
|
{
|
||||||
/* Get the value from the repertoire. */
|
/* Get the value from the repertoire. */
|
||||||
@ -3233,11 +3234,11 @@ Computing table size for character classes might take a while..."),
|
|||||||
/* Array for width information. Because the expected width are very
|
/* Array for width information. Because the expected width are very
|
||||||
small we use only one single byte. This save space and we need
|
small we use only one single byte. This save space and we need
|
||||||
not provide the information twice with both endianesses. */
|
not provide the information twice with both endianesses. */
|
||||||
ctype->width = (unsigned char *) xmalloc (ctype->plane_size
|
width_table_size = (ctype->plane_size * ctype->plane_cnt + 3) & ~3ul;
|
||||||
* ctype->plane_cnt);
|
ctype->width = (unsigned char *) xmalloc (width_table_size);
|
||||||
|
|
||||||
/* Initialize with default width value. */
|
/* Initialize with default width value. */
|
||||||
memset (ctype->width, charmap->width_default,
|
memset (ctype->width, charmap->width_default, width_table_size);
|
||||||
ctype->plane_size * ctype->plane_cnt);
|
|
||||||
if (charmap->width_rules != NULL)
|
if (charmap->width_rules != NULL)
|
||||||
{
|
{
|
||||||
size_t cnt;
|
size_t cnt;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Definitions of flag bits for `waitpid' et al.
|
/* Definitions of flag bits for `waitpid' et al.
|
||||||
Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
|
Copyright (C) 1992, 1996, 1997, 2000 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -26,4 +26,5 @@
|
|||||||
#define WNOHANG 1 /* Don't block waiting. */
|
#define WNOHANG 1 /* Don't block waiting. */
|
||||||
#define WUNTRACED 2 /* Report status of stopped children. */
|
#define WUNTRACED 2 /* Report status of stopped children. */
|
||||||
|
|
||||||
|
#define __WALL 0x40000000 /* Wait for any child. */
|
||||||
#define __WCLONE 0x80000000 /* Wait for cloned process. */
|
#define __WCLONE 0x80000000 /* Wait for cloned process. */
|
||||||
|
Reference in New Issue
Block a user