flex.patch 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. Index: flex.skl
  2. --- flex.skl.orig 2003-04-01 03:51:38.000000000 +0200
  3. +++ flex.skl 2004-02-07 13:21:59.000000000 +0100
  4. @@ -345,19 +345,19 @@
  5. %# yyscan_t yyscanner;
  6. %#
  7. %# Generate traditional function defs
  8. - m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG)
  9. + m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG) [[\]]
  10. M4_YY_DECL_LAST_ARG]])
  11. - m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG)
  12. - $1 $2;
  13. + m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG) [[\]]
  14. + $1 $2; [[\]]
  15. M4_YY_DECL_LAST_ARG]])
  16. - m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG)
  17. - $1 $2;
  18. - $3 $4;
  19. + m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG) [[\]]
  20. + $1 $2; [[\]]
  21. + $3 $4; [[\]]
  22. M4_YY_DECL_LAST_ARG]])
  23. - m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG)
  24. - $1 $2;
  25. - $3 $4;
  26. - $5 $6;
  27. + m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG) [[\]]
  28. + $1 $2; [[\]]
  29. + $3 $4; [[\]]
  30. + $5 $6; [[\]]
  31. M4_YY_DECL_LAST_ARG]])
  32. ]],
  33. [[
  34. @@ -724,6 +724,7 @@
  35. m4_ifdef( [[M4_YY_NO_UNISTD_H]],,
  36. [[
  37. +#ifndef YY_NO_UNISTD_H
  38. /* Special case for "unistd.h", since it is non-ANSI. We include it way
  39. * down here because we want the user's section 1 to have been scanned first.
  40. * The user has a chance to override it with an option.
  41. @@ -734,6 +735,7 @@
  42. %if-c++-only
  43. #include <unistd.h>
  44. %endif
  45. +#endif
  46. ]])
  47. #ifndef YY_EXTRA_TYPE
  48. @@ -1124,9 +1126,9 @@
  49. m4_dnl The bison pure parser is used. Redefine yylex to
  50. m4_dnl accept the lval parameter.
  51. - m4_define( [[M4_YY_LEX_PROTO]],
  52. + m4_define( [[M4_YY_LEX_PROTO]], [[\]]
  53. [[M4_YY_PARAMS(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])
  54. - m4_define( [[M4_YY_LEX_DECLARATION]],
  55. + m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
  56. [[YYFARGS1(YYSTYPE *,yylval_param)]])
  57. ]])
  58. @@ -1134,9 +1136,9 @@
  59. [[
  60. m4_dnl Locations are used. yylex should also accept the ylloc parameter.
  61. - m4_define( [[M4_YY_LEX_PROTO]],
  62. + m4_define( [[M4_YY_LEX_PROTO]], [[\]]
  63. [[M4_YY_PARAMS(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])
  64. - m4_define( [[M4_YY_LEX_DECLARATION]],
  65. + m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
  66. [[YYFARGS2(YYSTYPE *,yylval_param, YYLTYPE *,yylloc_param)]])
  67. ]])
  68. Index: gen.c
  69. --- gen.c.orig 2003-03-30 21:58:44.000000000 +0200
  70. +++ gen.c 2004-02-07 13:21:59.000000000 +0100
  71. @@ -1812,7 +1812,6 @@
  72. if (yytext_is_array) {
  73. if (!reentrant){
  74. indent_puts ("static int yy_more_offset = 0;");
  75. - }else{
  76. indent_puts ("static int yy_prev_more_offset = 0;");
  77. }
  78. }
  79. Index: main.c
  80. --- main.c.orig 2003-04-01 03:51:38.000000000 +0200
  81. +++ main.c 2004-02-07 13:21:59.000000000 +0100
  82. @@ -1142,7 +1142,6 @@
  83. break;
  84. case OPT_NO_UNISTD_H:
  85. - //buf_strdefine (&userdef_buf, "YY_NO_UNISTD_H", "1");
  86. buf_m4_define( &m4defs_buf, "M4_YY_NO_UNISTD_H",0);
  87. break;
  88. @@ -1257,7 +1256,6 @@
  89. break;
  90. case OPT_STACK:
  91. - //buf_strdefine (&userdef_buf, "YY_STACK_USED", "1");
  92. buf_m4_define( &m4defs_buf, "M4_YY_STACK_USED",0);
  93. break;
  94. @@ -1314,87 +1312,66 @@
  95. break;
  96. case OPT_NO_YY_PUSH_STATE:
  97. - //buf_strdefine (&userdef_buf, "YY_NO_PUSH_STATE", "1");
  98. buf_m4_define( &m4defs_buf, "M4_YY_NO_PUSH_STATE",0);
  99. break;
  100. case OPT_NO_YY_POP_STATE:
  101. - //buf_strdefine (&userdef_buf, "YY_NO_POP_STATE", "1");
  102. buf_m4_define( &m4defs_buf, "M4_YY_NO_POP_STATE",0);
  103. break;
  104. case OPT_NO_YY_TOP_STATE:
  105. - //buf_strdefine (&userdef_buf, "YY_NO_TOP_STATE", "1");
  106. buf_m4_define( &m4defs_buf, "M4_YY_NO_TOP_STATE",0);
  107. break;
  108. case OPT_NO_UNPUT:
  109. - //buf_strdefine (&userdef_buf, "YY_NO_UNPUT", "1");
  110. buf_m4_define( &m4defs_buf, "M4_YY_NO_UNPUT",0);
  111. break;
  112. case OPT_NO_YY_SCAN_BUFFER:
  113. - //buf_strdefine (&userdef_buf, "YY_NO_SCAN_BUFFER", "1");
  114. buf_m4_define( &m4defs_buf, "M4_YY_NO_SCAN_BUFFER",0);
  115. break;
  116. case OPT_NO_YY_SCAN_BYTES:
  117. - //buf_strdefine (&userdef_buf, "YY_NO_SCAN_BYTES", "1");
  118. buf_m4_define( &m4defs_buf, "M4_YY_NO_SCAN_BYTES",0);
  119. break;
  120. case OPT_NO_YY_SCAN_STRING:
  121. - //buf_strdefine (&userdef_buf, "YY_NO_SCAN_STRING", "1");
  122. buf_m4_define( &m4defs_buf, "M4_YY_NO_SCAN_STRING",0);
  123. break;
  124. case OPT_NO_YYGET_EXTRA:
  125. - //buf_strdefine (&userdef_buf, "YY_NO_GET_EXTRA", "1");
  126. buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_EXTRA",0);
  127. break;
  128. case OPT_NO_YYSET_EXTRA:
  129. - //buf_strdefine (&userdef_buf, "YY_NO_SET_EXTRA", "1");
  130. buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_EXTRA",0);
  131. break;
  132. case OPT_NO_YYGET_LENG:
  133. - //buf_strdefine (&userdef_buf, "YY_NO_GET_LENG", "1");
  134. buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_LENG",0);
  135. break;
  136. case OPT_NO_YYGET_TEXT:
  137. - //buf_strdefine (&userdef_buf, "YY_NO_GET_TEXT", "1");
  138. buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_TEXT",0);
  139. break;
  140. case OPT_NO_YYGET_LINENO:
  141. - //buf_strdefine (&userdef_buf, "YY_NO_GET_LINENO", "1");
  142. buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_LINENO",0);
  143. break;
  144. case OPT_NO_YYSET_LINENO:
  145. - //buf_strdefine (&userdef_buf, "YY_NO_SET_LINENO", "1");
  146. buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LINENO",0);
  147. break;
  148. case OPT_NO_YYGET_IN:
  149. - //buf_strdefine (&userdef_buf, "YY_NO_GET_IN", "1");
  150. buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_IN",0);
  151. break;
  152. case OPT_NO_YYSET_IN:
  153. - //buf_strdefine (&userdef_buf, "YY_NO_SET_IN", "1");
  154. buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_IN",0);
  155. break;
  156. case OPT_NO_YYGET_OUT:
  157. - //buf_strdefine (&userdef_buf, "YY_NO_GET_OUT", "1");
  158. buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_OUT",0);
  159. break;
  160. case OPT_NO_YYSET_OUT:
  161. - //buf_strdefine (&userdef_buf, "YY_NO_SET_OUT", "1");
  162. buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_OUT",0);
  163. break;
  164. case OPT_NO_YYGET_LVAL:
  165. - //buf_strdefine (&userdef_buf, "YY_NO_GET_LVAL", "1");
  166. buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_LVAL",0);
  167. break;
  168. case OPT_NO_YYSET_LVAL:
  169. - //buf_strdefine (&userdef_buf, "YY_NO_SET_LVAL", "1");
  170. buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LVAL",0);
  171. break;
  172. case OPT_NO_YYGET_LLOC:
  173. - //buf_strdefine (&userdef_buf, "YY_NO_GET_LLOC", "1");
  174. buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_LLOC",0);
  175. break;
  176. case OPT_NO_YYSET_LLOC:
  177. - //buf_strdefine (&userdef_buf, "YY_NO_SET_LLOC", "1");
  178. buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LLOC",0);
  179. break;
  180. @@ -1547,7 +1524,6 @@
  181. if (reject){
  182. out_m4_define( "M4_YY_USES_REJECT", NULL);
  183. - //outn ("\n#define YY_USES_REJECT");
  184. }
  185. if (!do_yywrap) {
  186. @@ -1595,7 +1571,6 @@
  187. outn ("#else");
  188. outn (yy_stdinit);
  189. outn ("#endif");
  190. - outn ("#endif");
  191. }
  192. else {
  193. Index: scan.l
  194. --- scan.l.orig 2003-04-01 03:51:38.000000000 +0200
  195. +++ scan.l 2004-02-07 13:21:59.000000000 +0100
  196. @@ -350,7 +350,7 @@
  197. stack ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense );
  198. stdinit do_stdinit = option_sense;
  199. stdout use_stdout = option_sense;
  200. - unistd ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense);
  201. + unistd ACTION_M4_IFDEF("M4""_YY_NO_UNISTD_H", ! option_sense);
  202. unput ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense);
  203. verbose printstats = option_sense;
  204. warn nowarn = ! option_sense;
  205. Index: skel.c
  206. --- skel.c.orig 2003-04-01 18:33:08.000000000 +0200
  207. +++ skel.c 2004-02-07 13:23:16.000000000 +0100
  208. @@ -404,16 +404,16 @@
  209. "%# yyscan_t yyscanner;",
  210. "%#",
  211. "%# Generate traditional function defs",
  212. - " m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG)",
  213. + " m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG) [[\\]]",
  214. " M4_YY_DECL_LAST_ARG]])",
  215. - " m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG)",
  216. + " m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG) [[\\]]",
  217. " $1 $2;",
  218. " M4_YY_DECL_LAST_ARG]])",
  219. - " m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG)",
  220. + " m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG) [[\\]]",
  221. " $1 $2;",
  222. " $3 $4;",
  223. " M4_YY_DECL_LAST_ARG]])",
  224. - " m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG)",
  225. + " m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG) [[\\]]",
  226. " $1 $2;",
  227. " $3 $4;",
  228. " $5 $6;",
  229. @@ -787,12 +787,14 @@
  230. " * down here because we want the user's section 1 to have been scanned first.",
  231. " * The user has a chance to override it with an option.",
  232. " */",
  233. + "#ifndef YY_NO_UNISTD_H",
  234. "%if-c-only",
  235. "#include <unistd.h>",
  236. "%endif",
  237. "%if-c++-only",
  238. "#include <unistd.h>",
  239. "%endif",
  240. + "#endif",
  241. "]])",
  242. "",
  243. "#ifndef YY_EXTRA_TYPE",
  244. Index: tables.c
  245. --- tables.c.orig 2002-11-27 15:43:24.000000000 +0100
  246. +++ tables.c 2004-02-07 13:21:59.000000000 +0100
  247. @@ -86,7 +86,7 @@
  248. th->th_magic = YYTBL_MAGIC;
  249. th->th_hsize = 14 + strlen (version_str) + 1 + strlen (name) + 1;
  250. th->th_hsize += yypad64 (th->th_hsize);
  251. - th->th_ssize = 0; // Not known at this point.
  252. + th->th_ssize = 0;
  253. th->th_flags = 0;
  254. th->th_version = copy_string (version_str);
  255. th->th_name = copy_string (name);
  256. Index: scan.c
  257. --- scan.c.orig 2003-04-01 18:33:17.000000000 +0200
  258. +++ scan.c 2004-02-08 19:25:53.000000000 +0100
  259. @@ -1,5 +1,6 @@
  260. +#line 2 "scan.c"
  261. -#line 3 "scan.c"
  262. +#line 4 "scan.c"
  263. #define YY_INT_ALIGNED short int
  264. @@ -1596,7 +1597,7 @@
  265. -#line 1600 "scan.c"
  266. +#line 1601 "scan.c"
  267. #define INITIAL 0
  268. #define SECT2 1
  269. @@ -1623,7 +1624,9 @@
  270. * down here because we want the user's section 1 to have been scanned first.
  271. * The user has a chance to override it with an option.
  272. */
  273. +#ifndef YY_NO_UNISTD_H
  274. #include <unistd.h>
  275. +#endif
  276. #ifndef YY_EXTRA_TYPE
  277. #define YY_EXTRA_TYPE void *
  278. @@ -1786,7 +1789,7 @@
  279. Char nmdef[MAXLINE];
  280. -#line 1790 "scan.c"
  281. +#line 1793 "scan.c"
  282. if ( (yy_init) )
  283. {
  284. @@ -2388,7 +2391,7 @@
  285. case 77:
  286. YY_RULE_SETUP
  287. #line 353 "scan.l"
  288. -ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense);
  289. +ACTION_M4_IFDEF("M4""_YY_NO_UNISTD_H", ! option_sense);
  290. YY_BREAK
  291. case 78:
  292. YY_RULE_SETUP
  293. @@ -3339,7 +3342,7 @@
  294. #line 821 "scan.l"
  295. YY_FATAL_ERROR( "flex scanner jammed" );
  296. YY_BREAK
  297. -#line 3343 "scan.c"
  298. +#line 3346 "scan.c"
  299. case YY_STATE_EOF(INITIAL):
  300. case YY_STATE_EOF(SECT2):
  301. case YY_STATE_EOF(CODEBLOCK):
  302. Index: filter.c
  303. --- filter.c.orig 2003-03-25 17:39:08.000000000 +0100
  304. +++ filter.c 2004-03-31 16:55:21.000000000 +0200
  305. @@ -158,10 +158,21 @@
  306. int r;
  307. /* setup streams again */
  308. +#if 0
  309. if ((stdin = fdopen (0, "r")) == NULL)
  310. flexfatal (_("fdopen(0) failed"));
  311. if ((stdout = fdopen (1, "w")) == NULL)
  312. flexfatal (_("fdopen(1) failed"));
  313. +#else
  314. + /* the above is theoretically correct, but on some
  315. + platforms (FreeBSD, Solaris, etc) not possible because
  316. + stdin/stdout/stderr are read-only. Unfortunately there is no
  317. + standardized alternative except the cheating solution: in most
  318. + Unix stdio(3) implementations a FILE is nothing more than a C
  319. + structure referencing a Unix filedescriptor. Hence one can just
  320. + do nothing as long as the underlying filedescriptor was already
  321. + changed. */
  322. +#endif
  323. if ((r = chain->filter_func (chain)) == -1)
  324. flexfatal (_("filter_func failed"));
  325. @@ -181,8 +192,12 @@
  326. if (dup2 (pipes[1], 1) == -1)
  327. flexfatal (_("dup2(pipes[1],1)"));
  328. close (pipes[1]);
  329. +#if 0
  330. if ((stdout = fdopen (1, "w")) == NULL)
  331. flexfatal (_("fdopen(1) failed"));
  332. +#else
  333. + /* do just nothing (reason: see above) */
  334. +#endif
  335. return true;
  336. }