diff options
Diffstat (limited to 'locale/programs/3level.h')
-rw-r--r-- | locale/programs/3level.h | 41 |
1 files changed, 3 insertions, 38 deletions
diff --git a/locale/programs/3level.h b/locale/programs/3level.h index 88f1b49724..cce925e1bc 100644 --- a/locale/programs/3level.h +++ b/locale/programs/3level.h @@ -3,8 +3,9 @@ Contributed by Bruno Haible <haible@clisp.cons.org>, 2000. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation. + it under the terms of the GNU General Public License as published + by the Free Software Foundation; version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -202,42 +203,6 @@ CONCAT(TABLE,_iterate) (struct TABLE *t, } } } - -/* GCC ATM seems to do a poor job with pointers to nested functions passed - to inlined functions. Help it a little bit with this hack. */ -#define wchead_table_iterate(tp, fn) \ -do \ - { \ - struct wchead_table *t = (tp); \ - uint32_t index1; \ - for (index1 = 0; index1 < t->level1_size; index1++) \ - { \ - uint32_t lookup1 = t->level1[index1]; \ - if (lookup1 != ((uint32_t) ~0)) \ - { \ - uint32_t lookup1_shifted = lookup1 << t->q; \ - uint32_t index2; \ - for (index2 = 0; index2 < (1 << t->q); index2++) \ - { \ - uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \ - if (lookup2 != ((uint32_t) ~0)) \ - { \ - uint32_t lookup2_shifted = lookup2 << t->p; \ - uint32_t index3; \ - for (index3 = 0; index3 < (1 << t->p); index3++) \ - { \ - struct element_t *lookup3 \ - = t->level3[index3 + lookup2_shifted]; \ - if (lookup3 != NULL) \ - fn ((((index1 << t->q) + index2) << t->p) + index3, \ - lookup3); \ - } \ - } \ - } \ - } \ - } \ - } while (0) - #endif #ifndef NO_FINALIZE |