mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
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.
This commit is contained in:
parent
5948a6eeaa
commit
08a0c2dabc
@ -25,9 +25,19 @@ if "%1" == "contrib\seg\segscan.l" call :generate %1 contrib\seg\segscan.c
|
|||||||
echo Unknown flex input: %1
|
echo Unknown flex input: %1
|
||||||
exit 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
|
:generate
|
||||||
flex %3 -o%2 %1
|
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
|
:noflex
|
||||||
echo WARNING! flex install not found, attempting to build without
|
echo WARNING! flex install not found, attempting to build without
|
||||||
|
Loading…
Reference in New Issue
Block a user