From: Andrew Dunstan Date: Mon, 25 Apr 2011 13:10:59 +0000 (-0400) Subject: Adjust yywrap macro for non-reentrant scanners for MSVC. X-Git-Tag: REL9_1_BETA1~31 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=08a0c2dabc3b9d59d72d7a79ed867b8e37d275a7;p=postgresql.git Adjust yywrap macro for non-reentrant scanners for MSVC. The MSVC compiler complains if a macro is called with less arguments than its definition provides for. flex generates a macro with one argument for yywrap, but only supplies the argument for reentrant scanners, so we remove the useless argument in the non-reentrant case to silence the warning. --- diff --git a/src/tools/msvc/pgflex.bat b/src/tools/msvc/pgflex.bat index da7c33d7af2..58870f05121 100755 --- a/src/tools/msvc/pgflex.bat +++ b/src/tools/msvc/pgflex.bat @@ -25,9 +25,19 @@ if "%1" == "contrib\seg\segscan.l" call :generate %1 contrib\seg\segscan.c echo Unknown flex input: %1 exit 1 +REM For non-reentrant scanners we need to fix up the yywrap macro definition +REM to keep the MS compiler happy. +REM For reentrant scanners (like the core scanner) we do not +REM need to (and must not) change the yywrap definition. :generate flex %3 -o%2 %1 -exit %errorlevel% +if errorlevel 1 exit %errorlevel% +perl -n -e "exit 1 if /^\%%option\s+reentrant/;" %1 +if errorlevel 1 exit 0 +perl -pi.bak -e "s/yywrap\(n\)/yywrap()/;" %2 +if errorlevel 1 exit %errorlevel% +del %2.bak +exit 0 :noflex echo WARNING! flex install not found, attempting to build without