diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-11-28 00:09:26 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-11-28 00:09:26 +0000 |
commit | 0555fccea74d63cce35ca7121688a4a6dce610ca (patch) | |
tree | 2b29fafa424bd97c187d21457e3c4c70f73e32cb /intl/plural.c | |
parent | 8a2072042b2b77e4e160d8ebcf99cdde370737ab (diff) | |
download | glibc-0555fccea74d63cce35ca7121688a4a6dce610ca.tar.gz glibc-0555fccea74d63cce35ca7121688a4a6dce610ca.tar.xz glibc-0555fccea74d63cce35ca7121688a4a6dce610ca.zip |
Update.
2001-03-04 Bruno Haible <bruno@clisp.org> * intl/dcigettext.c (DCIGETTEXT): Increment path_max proportionally. 2001-10-31 Bruno Haible <bruno@clisp.org> * intl/plural.y: Include <stddef.h>, needed for NULL with SunOS 4 cc. 2001-03-21 Bruno Haible <bruno@clisp.org> * intl/dcigettext.c (_nl_state_lock): Mark as #ifdef _LIBC. AIX 3 xlc chokes on empty macro arguments. * intl/plural.y: Add #pragma for alloca on AIX 3. 2001-11-27 Ulrich Drepper <drepper@redhat.com> * intl/dcigettext.c (guess_category_value): Only implement for glibc. Otherwise rely on function _nl_locale_name which isn't present in the glibc sources. 2001-09-24 Bruno Haible <bruno@clisp.org> * intl/loadmsgcat.c (_nl_init_domain_conv): Also enable transliteration when building on a glibc system but outside glibc. 2001-09-22 Bruno Haible <bruno@clisp.org> * intl/plural-eval.c: New file, extracted from dcigettext.c. * intl/dcigettext.c (plural_eval): Remove function, moved to intl/plural-eval.c. (plural_lookup): Call PLURAL_EVAL instead of plural_eval. Include plural-eval.c. 2001-09-22 Bruno Haible <bruno@clisp.org> * intl/plural-exp.c (EXTRACT_PLURAL_EXPRESSION): Reject numbers that don't start with a digit; nplurals must be positive. 2001-09-02 Bruno Haible <bruno@clisp.org> * intl/plural-exp.h: New file, extracted from gettextP.h. * intl/plural-exp.c: New file, extracted from loadmsgcat.c. * intl/gettextP.h (struct expression, struct parse_args, __gettext_free_exp, __gettextparse): Move to plural-exp.h. * intl/loadmsgcat.c: Include plural-exp.h. (PLURAL_PARSE): Move macro to plural-exp.h. (plvar, plone, germanic_plural, INIT_GERMANIC_PLURAL): Move to plural-exp.c. (_nl_load_domain): Move plural handling code to plural-exp.c. Call EXTRACT_PLURAL_EXPRESSION. (_nl_unload_domain): Update. * intl/dcigettext.c: Include plural-exp.h. * intl/plural.y: Include plural-exp.h, not gettextP.h. (FREE_EXPRESSION): Move macro to plural-exp.h. * intl/Makefile (routines): Add plural-exp. (distribute): Add plural-exp.h. 2001-07-28 Bruno Haible <bruno@clisp.org> * intl/l10nflist.c (_nl_normalize_codeset): Cast isalnum, isalpha, isdigit, tolower argument to 'unsigned char'. * intl/loadmsgcat.c (_nl_load_domain): Cast isspace argument to 'unsigned char'. * intl/localealias.c (read_alias_file): Cast isspace argument to 'unsigned char'. 2001-10-20 Bruno Haible <bruno@clisp.org> Assume strchr() exists. (Without it, intl/explodename.c wouldn't link anyway.) * intl/dcigettext.c (strchr): Remove fallback definition; it conflicts with the variable 'index' in plural_lookup. * intl/l10nflist.c (strchr): Likewise. * intl/localealias.c (strchr): Likewise. Assume <stddef.h>, <stdlib.h>, <string.h>, <locale.h> exist. * intl/bindtextdom.c: Likewise. * intl/dcigettext.c: Likewise. * intl/dgettext.c: Likewise. * intl/dngettext.c: Likewise. * intl/explodename.c: Likewise. * intl/finddomain.c: Likewise. * intl/gettext.c: Likewise. * intl/l10nflist.c: Likewise. * intl/loadmsgcat.c: Likewise. * intl/localealias.c: Likewise. * intl/ngettext.c: Likewise. * intl/textdomain.c: Likewise. * intl/gettext.h: Assume <limits.h> exists.
Diffstat (limited to 'intl/plural.c')
-rw-r--r-- | intl/plural.c | 86 |
1 files changed, 37 insertions, 49 deletions
diff --git a/intl/plural.c b/intl/plural.c index f96eff2cda..92b192c7e8 100644 --- a/intl/plural.c +++ b/intl/plural.c @@ -39,34 +39,37 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +/* The bison generated parser uses alloca. AIX 3 forces us to put this + declaration at the beginning of the file. The declaration in bison's + skeleton file comes too late. This must come before <config.h> + because <config.h> may include arbitrary system headers. */ +#if defined _AIX && !defined __GNUC__ + #pragma alloca +#endif #ifdef HAVE_CONFIG_H # include <config.h> #endif +#include <stddef.h> #include <stdlib.h> -#include "gettextP.h" - -/* Names for the libintl functions are a problem. They must not clash - with existing names and they should follow ANSI C. But this source - code is also used in GNU C Library where the names have a __ - prefix. So we have to make a difference here. */ -#ifdef _LIBC -# define FREE_EXPRESSION __gettext_free_exp -#else -# define FREE_EXPRESSION gettext_free_exp__ -# define __gettextparse gettextparse__ +#include "plural-exp.h" + +/* The main function generated by the parser is called __gettextparse, + but we want it to be called PLURAL_PARSE. */ +#ifndef _LIBC +# define __gettextparse PLURAL_PARSE #endif #define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYPARSE_PARAM arg -#line 46 "plural.y" +#line 49 "plural.y" typedef union { unsigned long int num; enum operator op; struct expression *exp; } YYSTYPE; -#line 52 "plural.y" +#line 55 "plural.y" /* Prototypes for local functions. */ static struct expression *new_exp PARAMS ((int nargs, enum operator op, @@ -228,8 +231,8 @@ static const short yyrhs[] = { 17, #if YYDEBUG != 0 static const short yyrline[] = { 0, - 171, 179, 183, 187, 191, 195, 199, 203, 207, 211, - 215, 220 + 174, 182, 186, 190, 194, 198, 202, 206, 210, 214, + 218, 223 }; #endif @@ -296,7 +299,7 @@ static const short yycheck[] = { 1, #define YYPURE 1 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison.simple" +#line 3 "/usr/lib/bison.simple" /* This file comes from bison-1.28. */ /* Skeleton output parser for bison, @@ -327,11 +330,6 @@ static const short yycheck[] = { 1, It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ -#ifndef YYPARSE_RETURN_TYPE -#define YYPARSE_RETURN_TYPE int -#endif - - #ifndef YYSTACK_USE_ALLOCA #ifdef alloca #define YYSTACK_USE_ALLOCA @@ -515,7 +513,7 @@ __yy_memcpy (char *to, char *from, unsigned int count) #endif #endif -#line 222 "/usr/share/bison.simple" +#line 217 "/usr/lib/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -539,15 +537,13 @@ __yy_memcpy (char *to, char *from, unsigned int count) /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ #ifdef YYPARSE_PARAM -YYPARSE_RETURN_TYPE -yyparse (void *); +int yyparse (void *); #else -YYPARSE_RETURN_TYPE -yyparse (void); +int yyparse (void); #endif #endif -YYPARSE_RETURN_TYPE +int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { @@ -575,9 +571,7 @@ yyparse(YYPARSE_PARAM_ARG) #endif int yystacksize = YYINITDEPTH; -#ifndef YYSTACK_USE_ALLOCA int yyfree_stacks = 0; -#endif #ifdef YYPURE int yychar; @@ -662,7 +656,6 @@ yynewstate: if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); -#ifndef YYSTACK_USE_ALLOCA if (yyfree_stacks) { free (yyss); @@ -671,7 +664,6 @@ yynewstate: free (yyls); #endif } -#endif return 2; } yystacksize *= 2; @@ -850,7 +842,7 @@ yyreduce: switch (yyn) { case 1: -#line 172 "plural.y" +#line 175 "plural.y" { if (yyvsp[0].exp == NULL) YYABORT; @@ -858,75 +850,75 @@ case 1: ; break;} case 2: -#line 180 "plural.y" +#line 183 "plural.y" { yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 3: -#line 184 "plural.y" +#line 187 "plural.y" { yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 4: -#line 188 "plural.y" +#line 191 "plural.y" { yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 5: -#line 192 "plural.y" +#line 195 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 6: -#line 196 "plural.y" +#line 199 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 7: -#line 200 "plural.y" +#line 203 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 8: -#line 204 "plural.y" +#line 207 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 9: -#line 208 "plural.y" +#line 211 "plural.y" { yyval.exp = new_exp_1 (lnot, yyvsp[0].exp); ; break;} case 10: -#line 212 "plural.y" +#line 215 "plural.y" { yyval.exp = new_exp_0 (var); ; break;} case 11: -#line 216 "plural.y" +#line 219 "plural.y" { if ((yyval.exp = new_exp_0 (num)) != NULL) yyval.exp->val.num = yyvsp[0].num; ; break;} case 12: -#line 221 "plural.y" +#line 224 "plural.y" { yyval.exp = yyvsp[-1].exp; ; break;} } /* the action file gets copied in in place of this dollarsign */ -#line 554 "/usr/share/bison.simple" +#line 543 "/usr/lib/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -1124,7 +1116,6 @@ yyerrhandle: yyacceptlab: /* YYACCEPT comes here. */ -#ifndef YYSTACK_USE_ALLOCA if (yyfree_stacks) { free (yyss); @@ -1133,12 +1124,10 @@ yyerrhandle: free (yyls); #endif } -#endif return 0; yyabortlab: /* YYABORT comes here. */ -#ifndef YYSTACK_USE_ALLOCA if (yyfree_stacks) { free (yyss); @@ -1147,10 +1136,9 @@ yyerrhandle: free (yyls); #endif } -#endif return 1; } -#line 226 "plural.y" +#line 229 "plural.y" void |