This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Remove unused PREDEFINED_CLASSES code
- From: Marko Myllynen <myllynen at redhat dot com>
- To: libc-alpha at sourceware dot org
- Date: Wed, 03 Jun 2015 18:59:16 +0300
- Subject: Re: [PATCH] Remove unused PREDEFINED_CLASSES code
- Authentication-results: sourceware.org; auth=none
- References: <5551B0C4 dot 80903 at redhat dot com>
- Reply-to: myllynen at redhat dot com
Hi,
OndÅej acked this on 2015-05-13, could someone please check it in?
Thanks,
On 2015-05-12 10:50, Marko Myllynen wrote:
> Hi,
>
> AFAICS PREDEFINED_CLASSES is never defined thus the code is unused. It would seem that the code is related to LO_LTYPE which was discussed in the past but there are no any recent references:
>
> http://pubs.opengroup.org/onlinepubs/9638399/loltype.htm
>
> Patch below, compiles and passes make check.
>
>
> 2015-05-12 Marko Myllynen <myllynen@redhat.com>
>
> * locale/C-ctype.c (PREDEFINED_CLASSES): Remove.
> * locale/programs/ld-ctype.c: Likewise.
>
> ---
> locale/C-ctype.c | 17 +--------
> locale/programs/ld-ctype.c | 81 ++-----------------------------------------
> 2 files changed, 6 insertions(+), 92 deletions(-)
>
> diff --git a/locale/C-ctype.c b/locale/C-ctype.c
> index 7c616d8..aa5f19f 100644
> --- a/locale/C-ctype.c
> +++ b/locale/C-ctype.c
> @@ -569,22 +569,9 @@ const struct __locale_data _nl_C_LC_CTYPE attribute_hidden =
> { .string = NULL },
> /* _NL_CTYPE_CLASS_NAMES */
> { .string = "upper\0" "lower\0" "alpha\0" "digit\0" "xdigit\0" "space\0"
> - "print\0" "graph\0" "blank\0" "cntrl\0" "punct\0" "alnum\0"
> -#ifdef PREDEFINED_CLASSES
> - "left_to_right\0" "right_to_left\0" "num_terminator\0"
> - "num_separator\0" "segment_separator\0" "block_separator\0"
> - "direction_control\0" "sym_swap_layout\0" "char_shape_selector\0"
> - "num_shape_selector\0" "non_spacing\0" "non_spacing_level3\0"
> - "r_connect\0" "no_connect\0" "no_connect-space\0"
> - "vowel_connect\0"
> -#endif
> - },
> + "print\0" "graph\0" "blank\0" "cntrl\0" "punct\0" "alnum\0" },
> /* _NL_CTYPE_MAP_NAMES */
> - { .string = "toupper\0" "tolower\0"
> -#ifdef PREDEFINED_CLASSES
> - "tosymmetric\0"
> -#endif
> - },
> + { .string = "toupper\0" "tolower\0" },
> /* _NL_CTYPE_WIDTH */
> { .string = (const char *) _nl_C_LC_CTYPE_width.header },
> /* _NL_CTYPE_MB_CUR_MAX */
> diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
> index e8690f3..3f464ef 100644
> --- a/locale/programs/ld-ctype.c
> +++ b/locale/programs/ld-ctype.c
> @@ -43,15 +43,6 @@
> #include <assert.h>
>
>
> -#ifdef PREDEFINED_CLASSES
> -/* These are the extra bits not in wctype.h since these are not preallocated
> - classes. */
> -# define _ISwspecial1 (1 << 29)
> -# define _ISwspecial2 (1 << 30)
> -# define _ISwspecial3 (1 << 31)
> -#endif
> -
> -
> /* The bit used for representing a special class. */
> #define BITPOS(class) ((class) - tok_upper)
> #define BIT(class) (_ISbit (BITPOS (class)))
> @@ -337,26 +328,6 @@ ctype_startup (struct linereader *lr, struct localedef_t *locale,
> ctype_class_new (lr, ctype, "cntrl");
> ctype_class_new (lr, ctype, "punct");
> ctype_class_new (lr, ctype, "alnum");
> -#ifdef PREDEFINED_CLASSES
> - /* The following are extensions from ISO 14652. */
> - ctype_class_new (lr, ctype, "left_to_right");
> - ctype_class_new (lr, ctype, "right_to_left");
> - ctype_class_new (lr, ctype, "num_terminator");
> - ctype_class_new (lr, ctype, "num_separator");
> - ctype_class_new (lr, ctype, "segment_separator");
> - ctype_class_new (lr, ctype, "block_separator");
> - ctype_class_new (lr, ctype, "direction_control");
> - ctype_class_new (lr, ctype, "sym_swap_layout");
> - ctype_class_new (lr, ctype, "char_shape_selector");
> - ctype_class_new (lr, ctype, "num_shape_selector");
> - ctype_class_new (lr, ctype, "non_spacing");
> - ctype_class_new (lr, ctype, "non_spacing_level3");
> - ctype_class_new (lr, ctype, "normal_connect");
> - ctype_class_new (lr, ctype, "r_connect");
> - ctype_class_new (lr, ctype, "no_connect");
> - ctype_class_new (lr, ctype, "no_connect-space");
> - ctype_class_new (lr, ctype, "vowel_connect");
> -#endif
>
> ctype->class_collection_max = charmap->mb_cur_max == 1 ? 256 : 512;
> ctype->class_collection
> @@ -368,18 +339,13 @@ ctype_startup (struct linereader *lr, struct localedef_t *locale,
> ctype->last_map_idx = MAX_NR_CHARMAP;
> ctype_map_new (lr, ctype, "toupper", charmap);
> ctype_map_new (lr, ctype, "tolower", charmap);
> -#ifdef PREDEFINED_CLASSES
> - ctype_map_new (lr, ctype, "tosymmetric", charmap);
> -#endif
>
> /* Fill first 256 entries in `toXXX' arrays. */
> for (cnt = 0; cnt < 256; ++cnt)
> {
> ctype->map_collection[0][cnt] = cnt;
> ctype->map_collection[1][cnt] = cnt;
> -#ifdef PREDEFINED_CLASSES
> - ctype->map_collection[2][cnt] = cnt;
> -#endif
> +
> ctype->map256_collection[0][cnt] = cnt;
> ctype->map256_collection[1][cnt] = cnt;
> }
> @@ -2269,24 +2235,10 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
> break;
> if (cnt >= ctype->nr_charclass)
> {
> -#ifdef PREDEFINED_CLASSES
> - if (now->val.str.lenmb == 8
> - && memcmp ("special1", now->val.str.startmb, 8) == 0)
> - class_bit = _ISwspecial1;
> - else if (now->val.str.lenmb == 8
> - && memcmp ("special2", now->val.str.startmb, 8) == 0)
> - class_bit = _ISwspecial2;
> - else if (now->val.str.lenmb == 8
> - && memcmp ("special3", now->val.str.startmb, 8) == 0)
> - class_bit = _ISwspecial3;
> - else
> -#endif
> - {
> - /* OK, it's a new class. */
> - ctype_class_new (ldfile, ctype, now->val.str.startmb);
> + /* OK, it's a new class. */
> + ctype_class_new (ldfile, ctype, now->val.str.startmb);
>
> - class_bit = _ISwbit (ctype->nr_charclass - 1);
> - }
> + class_bit = _ISwbit (ctype->nr_charclass - 1);
> }
> else
> {
> @@ -2874,31 +2826,6 @@ previous definition was here")));
> free (now->val.str.startmb);
> goto read_mapping;
> }
> -#ifdef PREDEFINED_CLASSES
> - if (strcmp (now->val.str.startmb, "special1") == 0)
> - {
> - class_bit = _ISwspecial1;
> - free (now->val.str.startmb);
> - goto read_charclass;
> - }
> - if (strcmp (now->val.str.startmb, "special2") == 0)
> - {
> - class_bit = _ISwspecial2;
> - free (now->val.str.startmb);
> - goto read_charclass;
> - }
> - if (strcmp (now->val.str.startmb, "special3") == 0)
> - {
> - class_bit = _ISwspecial3;
> - free (now->val.str.startmb);
> - goto read_charclass;
> - }
> - if (strcmp (now->val.str.startmb, "tosymmetric") == 0)
> - {
> - mapidx = 2;
> - goto read_mapping;
> - }
> -#endif
> break;
>
> case tok_end:
>
--
Marko Myllynen