Index: doc/flex.texi
--- doc/flex.texi.orig	2003-03-27 19:02:59 +0100
+++ doc/flex.texi	2004-12-01 22:01:52 +0100
@@ -3804,6 +3804,7 @@
 @example
 @verbatim
         // An example of using the flex C++ scanner class.
+    %option noyywrap
 
     %{
     int mylineno = 0;
@@ -3832,7 +3833,7 @@
                 if(c == '\n')
                     ++mylineno;
 
-                else if(c == @samp{*})
+                else if(c == '*')
                     {
                     if((c = yyinput()) == '/')
                         break;
@@ -3842,19 +3843,19 @@
                 }
             }
 
-    {number}  cout  "number "  YYText()  '\n';
+    {number}  std::cout <<  "number " <<  YYText() <<  '\n';
 
     \n        mylineno++;
 
-    {name}    cout  "name "  YYText()  '\n';
+    {name}    std::cout <<  "name " <<  YYText()  << '\n';
 
-    {string}  cout  "string "  YYText()  '\n';
+    {string}  std::cout <<  "string " <<   YYText() <<  '\n';
 
     %%
 
     int main( int /* argc */, char** /* argv */ )
         {
-        @code{flex}Lexer* lexer = new yyFlexLexer;
+        FlexLexer* lexer = new yyFlexLexer;
         while(lexer->yylex() != 0)
             ;
         return 0;
@@ -3866,7 +3867,7 @@
 If you want to create multiple (different) lexer classes, you use the
 @samp{-P} flag (or the @code{prefix=} option) to rename each
 @code{yyFlexLexer} to some other @samp{xxFlexLexer}.  You then can
-include @file{FlexLexer.h>} in your other sources once per lexer class,
+include @file{FlexLexer>} in your other sources once per lexer class,
 first renaming @code{yyFlexLexer} as follows:
 
 @cindex include files, with C++
@@ -3876,11 +3877,11 @@
 @verbatim
     #undef yyFlexLexer
     #define yyFlexLexer xxFlexLexer
-    #include <FflexLexer.h>
+    #include <FflexLexer>
 
     #undef yyFlexLexer
     #define yyFlexLexer zzFlexLexer
-    #include FlexLexer.h>
+    #include FlexLexer>
 @end verbatim
 @end example
 
Index: filter.c
--- filter.c.orig	2003-03-25 17:39:08 +0100
+++ filter.c	2004-12-01 22:01:52 +0100
@@ -158,10 +158,21 @@
 			int     r;
 
 			/* setup streams again */
+#if 0
 			if ((stdin = fdopen (0, "r")) == NULL)
 				flexfatal (_("fdopen(0) failed"));
 			if ((stdout = fdopen (1, "w")) == NULL)
 				flexfatal (_("fdopen(1) failed"));
+#else
+			/* the above is theoretically correct, but on some
+			   platforms (FreeBSD, Solaris, etc) not possible because
+			   stdin/stdout/stderr are read-only. Unfortunately there is no
+			   standardized alternative except the cheating solution: in most
+			   Unix stdio(3) implementations a FILE is nothing more than a C
+			   structure referencing a Unix filedescriptor. Hence one can just
+			   do nothing as long as the underlying filedescriptor was already
+			   changed. */
+#endif
 
 			if ((r = chain->filter_func (chain)) == -1)
 				flexfatal (_("filter_func failed"));
@@ -181,8 +192,12 @@
 	if (dup2 (pipes[1], 1) == -1)
 		flexfatal (_("dup2(pipes[1],1)"));
 	close (pipes[1]);
+#if 0
 	if ((stdout = fdopen (1, "w")) == NULL)
 		flexfatal (_("fdopen(1) failed"));
+#else
+	/* do just nothing (reason: see above) */
+#endif
 
 	return true;
 }
Index: flex.skl
--- flex.skl.orig	2003-04-01 03:51:38 +0200
+++ flex.skl	2004-12-01 22:06:21 +0100
@@ -345,19 +345,19 @@
 %#        yyscan_t yyscanner;
 %#
 %# Generate traditional function defs
-    m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG)
+    m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG) [[\]]
         M4_YY_DECL_LAST_ARG]])
-    m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG)
-        $1 $2;
+    m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG) [[\]]
+        $1 $2; [[\]]
         M4_YY_DECL_LAST_ARG]])
-    m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG)
-        $1 $2;
-        $3 $4;
+    m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG) [[\]]
+        $1 $2; [[\]]
+        $3 $4; [[\]]
         M4_YY_DECL_LAST_ARG]])
-    m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG)
-        $1 $2;
-        $3 $4;
-        $5 $6;
+    m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG) [[\]]
+        $1 $2; [[\]]
+        $3 $4; [[\]]
+        $5 $6; [[\]]
         M4_YY_DECL_LAST_ARG]])
 ]],
 [[
@@ -724,6 +724,7 @@
 
 m4_ifdef( [[M4_YY_NO_UNISTD_H]],,
 [[
+#ifndef YY_NO_UNISTD_H
 /* Special case for "unistd.h", since it is non-ANSI. We include it way
  * down here because we want the user's section 1 to have been scanned first.
  * The user has a chance to override it with an option.
@@ -734,6 +735,7 @@
 %if-c++-only
 #include <unistd.h>
 %endif
+#endif
 ]])
 
 #ifndef YY_EXTRA_TYPE
@@ -900,6 +902,18 @@
 void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );
 ]])
 
+m4_ifdef( [[M4_YY_REENTRANT]],
+[[
+m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,
+[[
+int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,
+[[
+void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );
+]])
+]])
+
 %if-bison-bridge
 m4_ifdef( [[M4_YY_NO_GET_LVAL]],,
 [[
@@ -1124,9 +1138,9 @@
     m4_dnl  The bison pure parser is used. Redefine yylex to
     m4_dnl  accept the lval parameter.
 
-    m4_define( [[M4_YY_LEX_PROTO]],
+    m4_define( [[M4_YY_LEX_PROTO]], [[\]]
                [[M4_YY_PARAMS(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])
-    m4_define( [[M4_YY_LEX_DECLARATION]],
+    m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
                [[YYFARGS1(YYSTYPE *,yylval_param)]])
 ]])
 
@@ -1134,9 +1148,9 @@
 [[
     m4_dnl  Locations are used. yylex should also accept the ylloc parameter.
 
-    m4_define( [[M4_YY_LEX_PROTO]],
+    m4_define( [[M4_YY_LEX_PROTO]], [[\]]
                [[M4_YY_PARAMS(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])
-    m4_define( [[M4_YY_LEX_DECLARATION]],
+    m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
                [[YYFARGS2(YYSTYPE *,yylval_param, YYLTYPE *,yylloc_param)]])
 ]])
 
@@ -2251,11 +2265,11 @@
  * @note If you want to scan bytes that may contain NUL values, then use
  *       yy_scan_bytes() instead.
  */
-YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *,str)
+YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *,yy_str)
 {
     m4_dnl M4_YY_DECL_GUTS_VAR();
 
-	return yy_scan_bytes( str, strlen(str) M4_YY_CALL_LAST_ARG);
+	return yy_scan_bytes( yy_str, strlen(yy_str) M4_YY_CALL_LAST_ARG);
 }
 %endif
 ]])
@@ -2777,8 +2791,10 @@
 m4_ifdef( [[M4_YY_DESTROY_START_STACK]],
 [[
     /* Destroy the start condition stack. */
+    if (YY_G(yy_start_stack) != NULL) {
         yyfree( YY_G(yy_start_stack) M4_YY_CALL_LAST_ARG );
         YY_G(yy_start_stack) = NULL;
+    }
 ]])
 
 m4_ifdef( [[M4_YY_USES_REJECT]],
@@ -3280,7 +3296,6 @@
 #undef yy_set_bol
 #undef yy_new_buffer
 #undef yy_set_interactive
-#undef yytext_ptr
 #undef YY_DO_BEFORE_ACTION
 
 #ifdef YY_DECL_IS_OURS
Index: gen.c
--- gen.c.orig	2003-03-30 21:58:44 +0200
+++ gen.c	2004-12-01 22:01:52 +0100
@@ -1812,7 +1812,6 @@
 			if (yytext_is_array) {
 				if (!reentrant){
     				indent_puts ("static int yy_more_offset = 0;");
-                }else{
                     indent_puts ("static int yy_prev_more_offset = 0;");
                 }
 			}
Index: main.c
--- main.c.orig	2003-04-01 03:51:38 +0200
+++ main.c	2004-12-01 22:01:52 +0100
@@ -199,6 +199,7 @@
 {
 #if ENABLE_NLS
 	setlocale (LC_MESSAGES, "");
+	setlocale (LC_CTYPE, "");
 	textdomain (PACKAGE);
 	bindtextdomain (PACKAGE, LOCALEDIR);
 #endif
@@ -1142,7 +1143,6 @@
 			break;
 
 		case OPT_NO_UNISTD_H:
-			//buf_strdefine (&userdef_buf, "YY_NO_UNISTD_H", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_UNISTD_H",0);
 			break;
 
@@ -1257,7 +1257,6 @@
 			break;
 
 		case OPT_STACK:
-			//buf_strdefine (&userdef_buf, "YY_STACK_USED", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_STACK_USED",0);
 			break;
 
@@ -1314,87 +1313,66 @@
             break;
 
 		case OPT_NO_YY_PUSH_STATE:
-			//buf_strdefine (&userdef_buf, "YY_NO_PUSH_STATE", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_PUSH_STATE",0);
 			break;
 		case OPT_NO_YY_POP_STATE:
-			//buf_strdefine (&userdef_buf, "YY_NO_POP_STATE", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_POP_STATE",0);
 			break;
 		case OPT_NO_YY_TOP_STATE:
-			//buf_strdefine (&userdef_buf, "YY_NO_TOP_STATE", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_TOP_STATE",0);
 			break;
 		case OPT_NO_UNPUT:
-			//buf_strdefine (&userdef_buf, "YY_NO_UNPUT", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_UNPUT",0);
 			break;
 		case OPT_NO_YY_SCAN_BUFFER:
-			//buf_strdefine (&userdef_buf, "YY_NO_SCAN_BUFFER", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SCAN_BUFFER",0);
 			break;
 		case OPT_NO_YY_SCAN_BYTES:
-			//buf_strdefine (&userdef_buf, "YY_NO_SCAN_BYTES", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SCAN_BYTES",0);
 			break;
 		case OPT_NO_YY_SCAN_STRING:
-			//buf_strdefine (&userdef_buf, "YY_NO_SCAN_STRING", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SCAN_STRING",0);
 			break;
 		case OPT_NO_YYGET_EXTRA:
-			//buf_strdefine (&userdef_buf, "YY_NO_GET_EXTRA", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_EXTRA",0);
 			break;
 		case OPT_NO_YYSET_EXTRA:
-			//buf_strdefine (&userdef_buf, "YY_NO_SET_EXTRA", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_EXTRA",0);
 			break;
 		case OPT_NO_YYGET_LENG:
-			//buf_strdefine (&userdef_buf, "YY_NO_GET_LENG", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_LENG",0);
 			break;
 		case OPT_NO_YYGET_TEXT:
-			//buf_strdefine (&userdef_buf, "YY_NO_GET_TEXT", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_TEXT",0);
 			break;
 		case OPT_NO_YYGET_LINENO:
-			//buf_strdefine (&userdef_buf, "YY_NO_GET_LINENO", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_LINENO",0);
 			break;
 		case OPT_NO_YYSET_LINENO:
-			//buf_strdefine (&userdef_buf, "YY_NO_SET_LINENO", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LINENO",0);
 			break;
 		case OPT_NO_YYGET_IN:
-			//buf_strdefine (&userdef_buf, "YY_NO_GET_IN", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_IN",0);
 			break;
 		case OPT_NO_YYSET_IN:
-			//buf_strdefine (&userdef_buf, "YY_NO_SET_IN", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_IN",0);
 			break;
 		case OPT_NO_YYGET_OUT:
-			//buf_strdefine (&userdef_buf, "YY_NO_GET_OUT", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_OUT",0);
 			break;
 		case OPT_NO_YYSET_OUT:
-			//buf_strdefine (&userdef_buf, "YY_NO_SET_OUT", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_OUT",0);
 			break;
 		case OPT_NO_YYGET_LVAL:
-			//buf_strdefine (&userdef_buf, "YY_NO_GET_LVAL", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_LVAL",0);
 			break;
 		case OPT_NO_YYSET_LVAL:
-			//buf_strdefine (&userdef_buf, "YY_NO_SET_LVAL", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LVAL",0);
 			break;
 		case OPT_NO_YYGET_LLOC:
-			//buf_strdefine (&userdef_buf, "YY_NO_GET_LLOC", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_LLOC",0);
 			break;
 		case OPT_NO_YYSET_LLOC:
-			//buf_strdefine (&userdef_buf, "YY_NO_SET_LLOC", "1");
             buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LLOC",0);
 			break;
 
@@ -1547,11 +1525,10 @@
 
 	if (reject){
         out_m4_define( "M4_YY_USES_REJECT", NULL);
-		//outn ("\n#define YY_USES_REJECT");
     }
 
 	if (!do_yywrap) {
-		outn ("\n#define yywrap(n) 1");
+		outn ("\n#define yywrap(M4_YY_CALL_ONLY_ARG) 1");
 		outn ("#define YY_SKIP_YYWRAP");
 	}
 
@@ -1595,7 +1572,6 @@
 			outn ("#else");
 			outn (yy_stdinit);
 			outn ("#endif");
-			outn ("#endif");
 		}
 
 		else {
Index: scan.c
--- scan.c.orig	2003-04-01 18:33:17 +0200
+++ scan.c	2004-12-01 22:01:53 +0100
@@ -1,5 +1,6 @@
+#line 2 "scan.c"
 
-#line 3 "scan.c"
+#line 4 "scan.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -1596,7 +1597,7 @@
 
 
 
-#line 1600 "scan.c"
+#line 1601 "scan.c"
 
 #define INITIAL 0
 #define SECT2 1
@@ -1623,7 +1624,9 @@
  * down here because we want the user's section 1 to have been scanned first.
  * The user has a chance to override it with an option.
  */
+#ifndef YY_NO_UNISTD_H
 #include <unistd.h>
+#endif
 
 #ifndef YY_EXTRA_TYPE
 #define YY_EXTRA_TYPE void *
@@ -1786,7 +1789,7 @@
 	Char nmdef[MAXLINE];
 
 
-#line 1790 "scan.c"
+#line 1793 "scan.c"
 
 	if ( (yy_init) )
 		{
@@ -2388,7 +2391,7 @@
 case 77:
 YY_RULE_SETUP
 #line 353 "scan.l"
-ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense);
+ACTION_M4_IFDEF("M4""_YY_NO_UNISTD_H", ! option_sense);
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
@@ -3339,7 +3342,7 @@
 #line 821 "scan.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 3343 "scan.c"
+#line 3346 "scan.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(SECT2):
 case YY_STATE_EOF(CODEBLOCK):
@@ -4351,7 +4354,6 @@
 #undef yy_set_bol
 #undef yy_new_buffer
 #undef yy_set_interactive
-#undef yytext_ptr
 #undef YY_DO_BEFORE_ACTION
 
 #ifdef YY_DECL_IS_OURS
Index: scan.l
--- scan.l.orig	2003-04-01 03:51:38 +0200
+++ scan.l	2004-12-01 22:01:52 +0100
@@ -350,7 +350,7 @@
 	stack		ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense );
 	stdinit		do_stdinit = option_sense;
 	stdout		use_stdout = option_sense;
-    unistd      ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense);
+    unistd      ACTION_M4_IFDEF("M4""_YY_NO_UNISTD_H", ! option_sense);
 	unput		ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense);
 	verbose		printstats = option_sense;
 	warn		nowarn = ! option_sense;
Index: skel.c
--- skel.c.orig	2003-04-01 18:33:08 +0200
+++ skel.c	2004-12-01 22:01:52 +0100
@@ -404,19 +404,19 @@
   "%#        yyscan_t yyscanner;",
   "%#",
   "%# Generate traditional function defs",
-  "    m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG)",
+  "    m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG) [[\\]]",
   "        M4_YY_DECL_LAST_ARG]])",
-  "    m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG)",
-  "        $1 $2;",
+  "    m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG) [[\\]]",
+  "        $1 $2; [[\\]]",
   "        M4_YY_DECL_LAST_ARG]])",
-  "    m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG)",
-  "        $1 $2;",
-  "        $3 $4;",
+  "    m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG) [[\\]]",
+  "        $1 $2; [[\\]]",
+  "        $3 $4; [[\\]]",
   "        M4_YY_DECL_LAST_ARG]])",
-  "    m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG)",
-  "        $1 $2;",
-  "        $3 $4;",
-  "        $5 $6;",
+  "    m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG) [[\\]]",
+  "        $1 $2; [[\\]]",
+  "        $3 $4; [[\\]]",
+  "        $5 $6; [[\\]]",
   "        M4_YY_DECL_LAST_ARG]])",
   "]],",
   "[[",
@@ -783,6 +783,7 @@
   "",
   "m4_ifdef( [[M4_YY_NO_UNISTD_H]],,",
   "[[",
+  "#ifndef YY_NO_UNISTD_H",
   "/* Special case for \"unistd.h\", since it is non-ANSI. We include it way",
   " * down here because we want the user's section 1 to have been scanned first.",
   " * The user has a chance to override it with an option.",
@@ -793,6 +794,7 @@
   "%if-c++-only",
   "#include <unistd.h>",
   "%endif",
+  "#endif",
   "]])",
   "",
   "#ifndef YY_EXTRA_TYPE",
@@ -959,6 +961,18 @@
   "void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );",
   "]])",
   "",
+  "m4_ifdef( [[M4_YY_REENTRANT]],",
+  "[[",
+  "m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,",
+  "[[",
+  "int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );",
+  "]])",
+  "m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,",
+  "[[",
+  "void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );",
+  "]])",
+  "]])",
+  "",
   "%if-bison-bridge",
   "m4_ifdef( [[M4_YY_NO_GET_LVAL]],,",
   "[[",
@@ -1327,9 +1341,9 @@
   "    m4_dnl  The bison pure parser is used. Redefine yylex to",
   "    m4_dnl  accept the lval parameter.",
   "",
-  "    m4_define( [[M4_YY_LEX_PROTO]],",
+  "    m4_define( [[M4_YY_LEX_PROTO]], [[\\]]",
   "               [[M4_YY_PARAMS(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])",
-  "    m4_define( [[M4_YY_LEX_DECLARATION]],",
+  "    m4_define( [[M4_YY_LEX_DECLARATION]], [[\\]]",
   "               [[YYFARGS1(YYSTYPE *,yylval_param)]])",
   "]])",
   "",
@@ -1337,9 +1351,9 @@
   "[[",
   "    m4_dnl  Locations are used. yylex should also accept the ylloc parameter.",
   "",
-  "    m4_define( [[M4_YY_LEX_PROTO]],",
+  "    m4_define( [[M4_YY_LEX_PROTO]], [[\\]]",
   "               [[M4_YY_PARAMS(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])",
-  "    m4_define( [[M4_YY_LEX_DECLARATION]],",
+  "    m4_define( [[M4_YY_LEX_DECLARATION]], [[\\]]",
   "               [[YYFARGS2(YYSTYPE *,yylval_param, YYLTYPE *,yylloc_param)]])",
   "]])",
   "",
@@ -2454,11 +2468,11 @@
   " * @note If you want to scan bytes that may contain NUL values, then use",
   " *       yy_scan_bytes() instead.",
   " */",
-  "YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *,str)",
+  "YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *,yy_str)",
   "{",
   "    m4_dnl M4_YY_DECL_GUTS_VAR();",
   "",
-  "	return yy_scan_bytes( str, strlen(str) M4_YY_CALL_LAST_ARG);",
+  "	return yy_scan_bytes( yy_str, strlen(yy_str) M4_YY_CALL_LAST_ARG);",
   "}",
   "%endif",
   "]])",
Index: tables.c
--- tables.c.orig	2002-11-27 15:43:24 +0100
+++ tables.c	2004-12-01 22:01:52 +0100
@@ -86,7 +86,7 @@
 	th->th_magic = YYTBL_MAGIC;
 	th->th_hsize = 14 + strlen (version_str) + 1 + strlen (name) + 1;
 	th->th_hsize += yypad64 (th->th_hsize);
-	th->th_ssize = 0;	// Not known at this point.
+	th->th_ssize = 0;
 	th->th_flags = 0;
 	th->th_version = copy_string (version_str);
 	th->th_name = copy_string (name);
