15759b3d2Safresh1################################################################################ 25759b3d2Safresh1## 35759b3d2Safresh1## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz. 45759b3d2Safresh1## Version 2.x, Copyright (C) 2001, Paul Marquess. 55759b3d2Safresh1## Version 1.x, Copyright (C) 1999, Kenneth Albanowski. 65759b3d2Safresh1## 75759b3d2Safresh1## This program is free software; you can redistribute it and/or 85759b3d2Safresh1## modify it under the same terms as Perl itself. 95759b3d2Safresh1## 105759b3d2Safresh1################################################################################ 115759b3d2Safresh1 125759b3d2Safresh1=provides 135759b3d2Safresh1 145759b3d2Safresh1__UNDEFINED__ 155759b3d2Safresh1aTHXR 165759b3d2Safresh1aTHXR_ 175759b3d2Safresh1dTHXR 185759b3d2Safresh1 195759b3d2Safresh1=implementation 205759b3d2Safresh1 215759b3d2Safresh1__UNDEFINED__ dTHR dNOOP 225759b3d2Safresh1 235759b3d2Safresh1__UNDEFINED__ dTHX dNOOP 24*de8cc8edSafresh1/* Hint: dTHX 25*de8cc8edSafresh1 26*de8cc8edSafresh1 For pre-5.6.0 thread compatibility, instead use dTHXR, available only through 27*de8cc8edSafresh1 ppport.h */ 28*de8cc8edSafresh1 295759b3d2Safresh1__UNDEFINED__ dTHXa(x) dNOOP 305759b3d2Safresh1 315759b3d2Safresh1__UNDEFINED__ pTHX void 325759b3d2Safresh1__UNDEFINED__ pTHX_ 335759b3d2Safresh1__UNDEFINED__ aTHX 34*de8cc8edSafresh1/* Hint: aTHX 35*de8cc8edSafresh1 36*de8cc8edSafresh1 For pre-5.6.0 thread compatibility, instead use aTHXR, available only through 37*de8cc8edSafresh1 ppport.h */ 38*de8cc8edSafresh1 395759b3d2Safresh1__UNDEFINED__ aTHX_ 40*de8cc8edSafresh1/* Hint: aTHX_ 41*de8cc8edSafresh1 42*de8cc8edSafresh1 For pre-5.6.0 thread compatibility, instead use aTHXR_, available only 43*de8cc8edSafresh1 through ppport.h */ 445759b3d2Safresh1 455759b3d2Safresh1#if { VERSION < 5.6.0 } 465759b3d2Safresh1# ifdef USE_THREADS 475759b3d2Safresh1# define aTHXR thr 485759b3d2Safresh1# define aTHXR_ thr, 495759b3d2Safresh1# else 505759b3d2Safresh1# define aTHXR 515759b3d2Safresh1# define aTHXR_ 525759b3d2Safresh1# endif 535759b3d2Safresh1# define dTHXR dTHR 545759b3d2Safresh1#else 555759b3d2Safresh1# define aTHXR aTHX 565759b3d2Safresh1# define aTHXR_ aTHX_ 575759b3d2Safresh1# define dTHXR dTHX 585759b3d2Safresh1#endif 595759b3d2Safresh1 605759b3d2Safresh1__UNDEFINED__ dTHXoa(x) dTHXa(x) 615759b3d2Safresh1 625759b3d2Safresh1=xsubs 635759b3d2Safresh1 645759b3d2Safresh1IV 655759b3d2Safresh1no_THX_arg(sv) 665759b3d2Safresh1 SV *sv 675759b3d2Safresh1 CODE: 685759b3d2Safresh1 RETVAL = 1 + sv_2iv(sv); 695759b3d2Safresh1 OUTPUT: 705759b3d2Safresh1 RETVAL 715759b3d2Safresh1 725759b3d2Safresh1void 735759b3d2Safresh1with_THX_arg(error) 745759b3d2Safresh1 SV *error 755759b3d2Safresh1 PPCODE: 765759b3d2Safresh1 croak_sv(error); 775759b3d2Safresh1 785759b3d2Safresh1=tests plan => 2 795759b3d2Safresh1 80*de8cc8edSafresh1is(&Devel::PPPort::no_THX_arg("42"), 43); 815759b3d2Safresh1eval { &Devel::PPPort::with_THX_arg("yes\n"); }; 825759b3d2Safresh1ok($@ =~ /^yes/); 83