Index: flex.skl --- flex.skl.orig 2003-04-01 03:51:38.000000000 +0200 +++ flex.skl 2004-02-07 13:21:59.000000000 +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 %endif +#endif ]]) #ifndef YY_EXTRA_TYPE @@ -1124,9 +1126,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 +1136,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)]]) ]]) Index: gen.c --- gen.c.orig 2003-03-30 21:58:44.000000000 +0200 +++ gen.c 2004-02-07 13:21:59.000000000 +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.000000000 +0200 +++ main.c 2004-02-07 13:21:59.000000000 +0100 @@ -1142,7 +1142,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 +1256,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 +1312,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,7 +1524,6 @@ if (reject){ out_m4_define( "M4_YY_USES_REJECT", NULL); - //outn ("\n#define YY_USES_REJECT"); } if (!do_yywrap) { @@ -1595,7 +1571,6 @@ outn ("#else"); outn (yy_stdinit); outn ("#endif"); - outn ("#endif"); } else { Index: scan.l --- scan.l.orig 2003-04-01 03:51:38.000000000 +0200 +++ scan.l 2004-02-07 13:21:59.000000000 +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.000000000 +0200 +++ skel.c 2004-02-07 13:23:16.000000000 +0100 @@ -404,16 +404,16 @@ "%# 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)", + " 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)", + " 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)", + " m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG) [[\\]]", " $1 $2;", " $3 $4;", " $5 $6;", @@ -787,12 +787,14 @@ " * 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", "%if-c-only", "#include ", "%endif", "%if-c++-only", "#include ", "%endif", + "#endif", "]])", "", "#ifndef YY_EXTRA_TYPE", Index: tables.c --- tables.c.orig 2002-11-27 15:43:24.000000000 +0100 +++ tables.c 2004-02-07 13:21:59.000000000 +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); Index: scan.c --- scan.c.orig 2003-04-01 18:33:17.000000000 +0200 +++ scan.c 2004-02-08 19:25:53.000000000 +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 +#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): Index: filter.c --- filter.c.orig 2003-03-25 17:39:08.000000000 +0100 +++ filter.c 2004-03-31 16:55:21.000000000 +0200 @@ -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; }