- if (yyformat != NULL)
- {
- char yysmallbuf[1024];
- char const *yymsg = yysmallbuf;
- char *yybigbuf = NULL;
- int yymsglen;
- va_list yyap;
-
- va_start (yyap, yyformat);
- yymsglen = vsnprintf (yysmallbuf, sizeof yysmallbuf, yyformat, yyap);
- va_end (yyap);
-
- if (yymsglen < 0)
- yymsg = "message is too long to be printed";
- else if (sizeof yysmallbuf <= yymsglen && yymsglen < YYSIZEMAX)
- {
- size_t yybigsize = yymsglen;
- yybigsize++;
- yymsg = yybigbuf = YYMALLOC (yybigsize);
-
- va_start (yyap, yyformat);
- vsnprintf (yybigbuf, yybigsize, yyformat, yyap);
- va_end (yyap);
- }
-
- yyerror (]b4_yyerror_args[yymsg);
- YYFREE (yybigbuf);
- }