Submitted By: Bruce Dubbs Date: 2017-04-28 Initial Package Version: 2.6.3 Upstream Status: Applied Origin: Upstream Description: Fixes a bug introduced in this release and a test failure. diff -Naur flex-2.6.3.orig/src/flex.skl flex-2.6.3/src/flex.skl --- flex-2.6.3.orig/src/flex.skl 2016-12-29 14:11:05.000000000 -0600 +++ flex-2.6.3/src/flex.skl 2017-05-05 12:06:26.878828879 -0500 @@ -61,11 +61,17 @@ m4_ifelse(M4_YY_PREFIX,yy,, #define yy_create_buffer M4_YY_PREFIX[[_create_buffer]] #define yy_delete_buffer M4_YY_PREFIX[[_delete_buffer]] -#define yy_flex_debug M4_YY_PREFIX[[_flex_debug]] +#define yy_scan_buffer M4_YY_PREFIX[[_scan_buffer]] +#define yy_scan_string M4_YY_PREFIX[[_scan_string]] +#define yy_scan_bytes M4_YY_PREFIX[[_scan_bytes]] #define yy_init_buffer M4_YY_PREFIX[[_init_buffer]] #define yy_flush_buffer M4_YY_PREFIX[[_flush_buffer]] #define yy_load_buffer_state M4_YY_PREFIX[[_load_buffer_state]] #define yy_switch_to_buffer M4_YY_PREFIX[[_switch_to_buffer]] +#define yypush_buffer_state M4_YY_PREFIX[[push_buffer_state]] +#define yypop_buffer_state M4_YY_PREFIX[[pop_buffer_state]] +#define yyensure_buffer_stack M4_YY_PREFIX[[ensure_buffer_stack]] +#define yy_flex_debug M4_YY_PREFIX[[_flex_debug]] #define yyin M4_YY_PREFIX[[in]] #define yyleng M4_YY_PREFIX[[leng]] #define yylex M4_YY_PREFIX[[lex]] @@ -107,7 +113,7 @@ m4preproc_define(`M4_GEN_PREFIX', ``[[#define yy$1 ]]M4_YY_PREFIX[[$1]] -m4_define([[yy$1]], [[M4_YY_PREFIX[[$1]]m4_ifelse($'`#,0,,[[($'`@)]])]])'') +%# m4_define([[yy$1]], [[M4_YY_PREFIX[[$1]]m4_ifelse($'`#,0,,[[($'`@)]])]])'') %if-c++-only /* The c++ scanner is a mess. The FlexLexer.h header file relies on the @@ -120,6 +126,7 @@ %endif %if-c-only +m4_ifelse(M4_YY_PREFIX,yy,, M4_GEN_PREFIX(`_create_buffer') M4_GEN_PREFIX(`_delete_buffer') M4_GEN_PREFIX(`_scan_buffer') @@ -155,6 +162,7 @@ M4_GEN_PREFIX(`set_column') ]]) M4_GEN_PREFIX(`wrap') +) %endif m4_ifdef( [[M4_YY_BISON_LVAL]], @@ -170,11 +178,14 @@ ]]) +m4_ifelse(M4_YY_PREFIX,yy,, M4_GEN_PREFIX(`alloc') M4_GEN_PREFIX(`realloc') M4_GEN_PREFIX(`free') +) %if-c-only +m4_ifelse(M4_YY_PREFIX,yy,, m4_ifdef( [[M4_YY_NOT_REENTRANT]], [[ M4_GEN_PREFIX(`text') @@ -184,6 +195,7 @@ M4_GEN_PREFIX(`_flex_debug') M4_GEN_PREFIX(`lineno') ]]) +) %endif @@ -1896,6 +1908,9 @@ */ void yyFlexLexer::yyrestart( std::istream* input_file ) { + if( ! input_file ) { + input_file = &yyin; + } yyrestart( *input_file ); } %endif @@ -2057,7 +2072,7 @@ b->yy_input_file = file; %endif %if-c++-only - b->yy_input_file = (&file == 0) ? NULL : file.rdbuf(); + b->yy_input_file = file.rdbuf(); %endif b->yy_fill_buffer = 1; diff -Naur flex-2.6.3.orig/src/main.c flex-2.6.3/src/main.c --- flex-2.6.3.orig/src/main.c 2016-12-29 14:03:14.000000000 -0600 +++ flex-2.6.3/src/main.c 2017-05-05 12:03:39.962338930 -0500 @@ -1586,9 +1586,9 @@ if (!do_yywrap) { if (!C_plus_plus) { if (reentrant) - outn ("\n#define yywrap(yyscanner) (/*CONSTCOND*/1)"); + out_str ("\n#define %swrap(yyscanner) (/*CONSTCOND*/1)\n", prefix); else - outn ("\n#define yywrap() (/*CONSTCOND*/1)"); + out_str ("\n#define %swrap() (/*CONSTCOND*/1)\n", prefix); } outn ("#define YY_SKIP_YYWRAP"); }