(perl #132876) define API macros on if the NEED_ macro is defined
authorTony Cook <tony@develop-help.com>
Wed, 21 Feb 2018 03:50:13 +0000 (14:50 +1100)
committerTony Cook <tony@develop-help.com>
Mon, 2 Apr 2018 05:20:36 +0000 (15:20 +1000)
commit28e487a0fbfad9b8a3c1e0e4189a256d055f3386
treea40de8185573f21369deee2c6caf92fe9159acf1
parent368e5f5eb1d12d4391b0c5dfc8ebd00ee6a457a3
(perl #132876) define API macros on if the NEED_ macro is defined

Rather then always defining an API macro such as "croak_xs_usage",
only define it if the NEED_ macro is defined.

This means that code that checks if the API macro is defined won't
get a false positive and try to use an API that's neither available nor
emulated.

If the including code attempts to define its own fallback, as EU::PXS
code does, it also prevents a macro redefinition, most likely with a
different token sequence which the C standard forbids.

This change has the (I think unlikely) risk that a user of ppport.h
might include ppport.h for the macro definition and then define their
own DPPP_some_api() function.  I attempted to check via grep.cpan.me,
but it wasn't working at the time.
dist/Devel-PPPort/PPPort_pm.PL