diff options
Diffstat (limited to 'posix/bug-regex5.c')
-rw-r--r-- | posix/bug-regex5.c | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/posix/bug-regex5.c b/posix/bug-regex5.c deleted file mode 100644 index fd18b19df4..0000000000 --- a/posix/bug-regex5.c +++ /dev/null @@ -1,63 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <stdint.h> -#include <locale.h> -#include <locale/localeinfo.h> - -int -main (void) -{ - int32_t table_size, idx, i, found; - const int32_t *symb_table; - const unsigned char *extra; - uint32_t nrules; - char *ca; - union locale_data_value u; - - ca = setlocale (LC_ALL, "da_DK.ISO-8859-1"); - if (ca == NULL) - { - printf ("cannot set locale: %m\n"); - return 1; - } - printf ("current locale : %s\n", ca); - - u.string = nl_langinfo (_NL_COLLATE_NRULES); - nrules = u.word; - if (nrules == 0) - { - printf("No rule\n"); - return 1; - } - - u.string = nl_langinfo (_NL_COLLATE_SYMB_HASH_SIZEMB); - table_size = u.word; - symb_table = (const int32_t *) nl_langinfo (_NL_COLLATE_SYMB_TABLEMB); - extra = (const unsigned char *) nl_langinfo (_NL_COLLATE_SYMB_EXTRAMB); - - found = 0; - for (i = 0; i < table_size; ++i) - { - if (symb_table[2 * i] != 0) - { - char elem[256]; - idx = symb_table[2 * i + 1]; - strncpy (elem, (const char *) (extra + idx + 1), extra[idx]); - elem[extra[idx]] = '\0'; - printf ("Found a collating element: %s\n", elem); - ++found; - } - } - if (found == 0) - { - printf ("No collating element!\n"); - return 1; - } - else if (found != 4) - { - printf ("expected 4 collating elements, found %d\n", found); - return 1; - } - - return 0; -} |