From: Demi Obenour Date: Wed, 3 May 2017 00:05:14 +0000 (-0400) Subject: Honor user definitions of yy_* macros X-Git-Tag: v2.6.4~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a1634aa8d3d41a257ad659788dac222739df89f5;p=flex Honor user definitions of yy_* macros The user may have defined the yy_* macros themselves. In that case, don't clobber them. --- diff --git a/src/flex.skl b/src/flex.skl index e125e3a..d9854f4 100644 --- a/src/flex.skl +++ b/src/flex.skl @@ -112,9 +112,15 @@ m4_ifdef( [[M4_YY_REENTRANT]], [[m4_define([[M4_YY_HAS_START_STACK_VARS]])]]) m4_ifdef( [[M4_YY_PREFIX]],, [[m4_define([[M4_YY_PREFIX]], [[yy]])]]) m4preproc_define(`M4_GEN_PREFIX',`` -[[#define yy$1 ]]M4_YY_PREFIX[[$1]] +[[#ifdef yy$1 +#define ]]M4_YY_PREFIX[[$1_ALREADY_DEFINED +#else +#define yy$1 ]]M4_YY_PREFIX[[$1 +#endif]] 'm4preproc_divert(1)` -[[#undef yy$1]]'m4preproc_divert(0)') +[[#ifndef ]]M4_YY_PREFIX[[$1_ALREADY_DEFINED +#undef yy$1 +#endif]]'m4preproc_divert(0)') %if-c++-only /* The c++ scanner is a mess. The FlexLexer.h header file relies on the