From a1634aa8d3d41a257ad659788dac222739df89f5 Mon Sep 17 00:00:00 2001 From: Demi Obenour Date: Tue, 2 May 2017 20:05:14 -0400 Subject: Honor user definitions of yy_* macros The user may have defined the yy_* macros themselves. In that case, don't clobber them. --- src/flex.skl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 -- cgit v1.2.1