From: Nicholas Clark Date: Fri, 28 Sep 2001 23:39:33 +0000 (+0100) Subject: Re: macro redefinitions on Win32 (was Re: Question about PERLIO) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a0e22bad6f47247731c8fdba536bf313db3ccf4e;p=p5sagit%2Fp5-mst-13.2.git Re: macro redefinitions on Win32 (was Re: Question about PERLIO) Message-ID: <20010928233933.C23673@plum.flirble.org> p4raw-id: //depot/perl@12259 --- diff --git a/embed.h b/embed.h index ff4bfae..c19e445 100644 --- a/embed.h +++ b/embed.h @@ -639,10 +639,14 @@ #define sv_2iv Perl_sv_2iv #define sv_2mortal Perl_sv_2mortal #define sv_2nv Perl_sv_2nv +#ifdef CRIPPLED_CC #define sv_2pv Perl_sv_2pv +#endif #define sv_2pvutf8 Perl_sv_2pvutf8 #define sv_2pvbyte Perl_sv_2pvbyte +#ifdef CRIPPLED_CC #define sv_pvn_nomg Perl_sv_pvn_nomg +#endif #define sv_2uv Perl_sv_2uv #define sv_iv Perl_sv_iv #define sv_uv Perl_sv_uv @@ -657,8 +661,12 @@ #define sv_catpvf Perl_sv_catpvf #define sv_vcatpvf Perl_sv_vcatpvf #define sv_catpv Perl_sv_catpv +#ifdef CRIPPLED_CC #define sv_catpvn Perl_sv_catpvn +#endif +#ifdef CRIPPLED_CC #define sv_catsv Perl_sv_catsv +#endif #define sv_chop Perl_sv_chop #define sv_clean_all Perl_sv_clean_all #define sv_clean_objs Perl_sv_clean_objs @@ -691,7 +699,9 @@ #define sv_peek Perl_sv_peek #define sv_pos_u2b Perl_sv_pos_u2b #define sv_pos_b2u Perl_sv_pos_b2u +#ifdef CRIPPLED_CC #define sv_pvn_force Perl_sv_pvn_force +#endif #define sv_pvutf8n_force Perl_sv_pvutf8n_force #define sv_pvbyten_force Perl_sv_pvbyten_force #define sv_reftype Perl_sv_reftype @@ -711,7 +721,9 @@ #define sv_setref_pvn Perl_sv_setref_pvn #define sv_setpv Perl_sv_setpv #define sv_setpvn Perl_sv_setpvn +#ifdef CRIPPLED_CC #define sv_setsv Perl_sv_setsv +#endif #define sv_taint Perl_sv_taint #define sv_tainted Perl_sv_tainted #define sv_unmagic Perl_sv_unmagic @@ -832,7 +844,9 @@ #define sv_pv Perl_sv_pv #define sv_pvutf8 Perl_sv_pvutf8 #define sv_pvbyte Perl_sv_pvbyte +#ifdef CRIPPLED_CC #define sv_utf8_upgrade Perl_sv_utf8_upgrade +#endif #define sv_utf8_downgrade Perl_sv_utf8_downgrade #define sv_utf8_encode Perl_sv_utf8_encode #define sv_utf8_decode Perl_sv_utf8_decode diff --git a/embed.pl b/embed.pl index 81a6587..e4dae1b 100755 --- a/embed.pl +++ b/embed.pl @@ -344,12 +344,14 @@ walk_table { else { my ($flags,$retval,$func,@args) = @_; unless ($flags =~ /o/) { + $ret .= "#ifdef CRIPPLED_CC\n" if $flags =~ /C/; if ($flags =~ /s/) { $ret .= hide($func,"S_$func"); } elsif ($flags =~ /p/) { $ret .= hide($func,"Perl_$func"); } + $ret .= "#endif\n" if $flags =~ /C/; } } $ret; @@ -1052,6 +1054,7 @@ __END__ : : flags are single letters with following meanings: : A member of public API +: C wrap compatibility macro in #ifdef DCRIPPLED_CC : d function has documentation with its source : s static function, should have an S_ prefix in source : file @@ -1720,10 +1723,10 @@ Apd |IO* |sv_2io |SV* sv Apd |IV |sv_2iv |SV* sv Apd |SV* |sv_2mortal |SV* sv Apd |NV |sv_2nv |SV* sv -Ap |char* |sv_2pv |SV* sv|STRLEN* lp +ACp |char* |sv_2pv |SV* sv|STRLEN* lp Apd |char* |sv_2pvutf8 |SV* sv|STRLEN* lp Apd |char* |sv_2pvbyte |SV* sv|STRLEN* lp -Ap |char* |sv_pvn_nomg |SV* sv|STRLEN* lp +ACp |char* |sv_pvn_nomg |SV* sv|STRLEN* lp Apd |UV |sv_2uv |SV* sv Apd |IV |sv_iv |SV* sv Apd |UV |sv_uv |SV* sv @@ -1738,8 +1741,8 @@ Apd |SV* |sv_bless |SV* sv|HV* stash Afpd |void |sv_catpvf |SV* sv|const char* pat|... Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args Apd |void |sv_catpv |SV* sv|const char* ptr -Apd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len -Apd |void |sv_catsv |SV* dsv|SV* ssv +ACpd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len +ACpd |void |sv_catsv |SV* dsv|SV* ssv Apd |void |sv_chop |SV* sv|char* ptr pd |I32 |sv_clean_all pd |void |sv_clean_objs @@ -1774,7 +1777,7 @@ Apd |SV* |sv_newref |SV* sv Ap |char* |sv_peek |SV* sv Apd |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp Apd |void |sv_pos_b2u |SV* sv|I32* offsetp -Apd |char* |sv_pvn_force |SV* sv|STRLEN* lp +ACpd |char* |sv_pvn_force |SV* sv|STRLEN* lp Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp Apd |char* |sv_reftype |SV* sv|int ob @@ -1795,7 +1798,7 @@ Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \ |STRLEN n Apd |void |sv_setpv |SV* sv|const char* ptr Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len -Apd |void |sv_setsv |SV* dsv|SV* ssv +ACpd |void |sv_setsv |SV* dsv|SV* ssv Apd |void |sv_taint |SV* sv Apd |bool |sv_tainted |SV* sv Apd |int |sv_unmagic |SV* sv|int type @@ -1927,7 +1930,7 @@ Apd |char* |sv_2pvbyte_nolen|SV* sv Apd |char* |sv_pv |SV *sv Apd |char* |sv_pvutf8 |SV *sv Apd |char* |sv_pvbyte |SV *sv -Apd |STRLEN |sv_utf8_upgrade|SV *sv +ACpd |STRLEN |sv_utf8_upgrade|SV *sv ApdM |bool |sv_utf8_downgrade|SV *sv|bool fail_ok Apd |void |sv_utf8_encode |SV *sv ApdM |bool |sv_utf8_decode |SV *sv diff --git a/sv.h b/sv.h index 0b3aba2..7ca49a7 100644 --- a/sv.h +++ b/sv.h @@ -983,17 +983,11 @@ otherwise. #define sv_utf8_upgrade_macro(sv) sv_utf8_upgrade_flags(sv, SV_GMAGIC) /* function style also available for sourcecompat */ -#undef sv_setsv #define sv_setsv(dsv, ssv) sv_setsv_macro(dsv, ssv) -#undef sv_catsv #define sv_catsv(dsv, ssv) sv_catsv_macro(dsv, ssv) -#undef sv_catpvn #define sv_catpvn(dsv, sstr, slen) sv_catpvn_macro(dsv, sstr, slen) -#undef sv_2pv #define sv_2pv(sv, lp) sv_2pv_macro(sv, lp) -#undef sv_pvn_force #define sv_pvn_force(sv, lp) sv_pvn_force_macro(sv, lp) -#undef sv_utf8_upgrade #define sv_utf8_upgrade(sv) sv_utf8_upgrade_macro(sv) #undef SvPV