}
else {
my ($flags,$retval,$func,@args) = @_;
+ $ret .= '/* ' if $flags =~ /m/;
if ($flags =~ /s/) {
$retval = "STATIC $retval";
$func = "S_$func";
$prefix, $args - 1, $prefix, $args;
$ret .= "\n#endif\n";
}
- $ret .= ";\n";
+ $ret .= ";";
+ $ret .= ' */' if $flags =~ /m/;
+ $ret .= "\n";
}
$ret;
}
my $ret = "";
if (@_ > 1) {
my ($flags,$retval,$func,@args) = @_;
- if ($flags =~ /A/ && $flags !~ /x/) { # public API, so export
+ if ($flags =~ /A/ && $flags !~ /[xm]/) { # public API, so export
$func = "Perl_$func" if $flags =~ /p/;
$ret = "$func\n";
}
}
else {
my ($flags,$retval,$func,@args) = @_;
- unless ($flags =~ /o/) {
+ unless ($flags =~ /[om]/) {
if ($flags =~ /s/) {
$ret .= hide($func,"S_$func");
}
}
else {
my ($flags,$retval,$func,@args) = @_;
- unless ($flags =~ /o/) {
+ unless ($flags =~ /[om]/) {
my $args = scalar @args;
if ($args and $args[$args-1] =~ /\.\.\./) {
# we're out of luck for varargs functions under CPP
:
: flags are single letters with following meanings:
: A member of public API
+: m Implemented as a macro - no export, no proto, no #define
: d function has documentation with its source
: s static function, should have an S_ prefix in source
: file
Ap |bool |is_uni_print |U32 c
Ap |bool |is_uni_punct |U32 c
Ap |bool |is_uni_xdigit |U32 c
-Ap |U32 |to_uni_upper |U32 c
-Ap |U32 |to_uni_title |U32 c
-Ap |U32 |to_uni_lower |U32 c
+Ap |U32 |to_uni_upper |U32 c|U8 *p|STRLEN *lenp
+Ap |U32 |to_uni_title |U32 c|U8 *p|STRLEN *lenp
+Ap |U32 |to_uni_lower |U32 c|U8 *p|STRLEN *lenp
Ap |bool |is_uni_alnum_lc|U32 c
Ap |bool |is_uni_alnumc_lc|U32 c
Ap |bool |is_uni_idfirst_lc|U32 c
Ap |bool |is_uni_print_lc|U32 c
Ap |bool |is_uni_punct_lc|U32 c
Ap |bool |is_uni_xdigit_lc|U32 c
-Ap |U32 |to_uni_upper_lc|U32 c
-Ap |U32 |to_uni_title_lc|U32 c
-Ap |U32 |to_uni_lower_lc|U32 c
Apd |STRLEN |is_utf8_char |U8 *p
Apd |bool |is_utf8_string |U8 *s|STRLEN len
Ap |bool |is_utf8_alnum |U8 *p
Afp |SV* |mess |const char* pat|...
Ap |SV* |vmess |const char* pat|va_list* args
p |void |qerror |SV* err
+Apd |void |sortsv |SV ** array|size_t num_elts|SVCOMPARE_t f
Apd |int |mg_clear |SV* sv
Apd |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen
Apd |MAGIC* |mg_find |SV* sv|int type
Apd |IV |sv_2iv |SV* sv
Apd |SV* |sv_2mortal |SV* sv
Apd |NV |sv_2nv |SV* sv
-Aop |char* |sv_2pv |SV* sv|STRLEN* lp
+Am |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
Apd |UV |sv_2uv |SV* sv
Apd |IV |sv_iv |SV* sv
Apd |UV |sv_uv |SV* sv
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
-Aopd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
-Aopd |void |sv_catsv |SV* dsv|SV* ssv
+Amd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
+Amd |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
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
-Aopd |char* |sv_pvn_force |SV* sv|STRLEN* lp
+Amd |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
|STRLEN n
Apd |void |sv_setpv |SV* sv|const char* ptr
Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
-Aopd |void |sv_setsv |SV* dsv|SV* ssv
+Amd |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
Ap |UV |swash_fetch |SV *sv|U8 *ptr|bool do_utf8
Ap |void |taint_env
Ap |void |taint_proper |const char* f|const char* s
-Ap |UV |to_utf8_lower |U8 *p
-Ap |UV |to_utf8_upper |U8 *p
-Ap |UV |to_utf8_title |U8 *p
+Ap |UV |to_utf8_case |U8 *p|U8* ustrp|STRLEN *lenp \
+ |SV **swash|char *normal|char *special
+Ap |UV |to_utf8_lower |U8 *p|U8* ustrp|STRLEN *lenp
+Ap |UV |to_utf8_upper |U8 *p|U8* ustrp|STRLEN *lenp
+Ap |UV |to_utf8_title |U8 *p|U8* ustrp|STRLEN *lenp
#if defined(UNLINK_ALL_VERSIONS)
Ap |I32 |unlnk |char* f
#endif
Apd |void |sv_setsv_mg |SV *dstr|SV *sstr
Apd |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len
Ap |MGVTBL*|get_vtbl |int vtbl_id
-p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \
+p |char* |pv_display |SV *dsv|char *pv|STRLEN cur|STRLEN len \
|STRLEN pvlim
+p |char* |pv_uni_display |SV *dsv|U8 *spv|STRLEN len \
+ |STRLEN pvlim|UV flags
+p |char* |sv_uni_display |SV *dsv|SV *ssv|STRLEN pvlim|UV flags
Afp |void |dump_indent |I32 level|PerlIO *file|const char* pat|...
Ap |void |dump_vindent |I32 level|PerlIO *file|const char* pat \
|va_list *args
Apd |char* |sv_pv |SV *sv
Apd |char* |sv_pvutf8 |SV *sv
Apd |char* |sv_pvbyte |SV *sv
-Aopd |STRLEN |sv_utf8_upgrade|SV *sv
+Amd |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
p |OP * |my_attrs |OP *o|OP *attrs
p |void |boot_core_xsutils
#if defined(USE_ITHREADS)
-Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|clone_params* param
-Ap |PERL_SI*|si_dup |PERL_SI* si|clone_params* param
-Ap |ANY* |ss_dup |PerlInterpreter* proto_perl|clone_params* param
+Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|CLONE_PARAMS* param
+Ap |PERL_SI*|si_dup |PERL_SI* si|CLONE_PARAMS* param
+Ap |ANY* |ss_dup |PerlInterpreter* proto_perl|CLONE_PARAMS* param
Ap |void* |any_dup |void* v|PerlInterpreter* proto_perl
-Ap |HE* |he_dup |HE* e|bool shared|clone_params* param
-Ap |REGEXP*|re_dup |REGEXP* r|clone_params* param
-Ap |PerlIO*|fp_dup |PerlIO* fp|char type
+Ap |HE* |he_dup |HE* e|bool shared|CLONE_PARAMS* param
+Ap |REGEXP*|re_dup |REGEXP* r|CLONE_PARAMS* param
+Ap |PerlIO*|fp_dup |PerlIO* fp|char type|CLONE_PARAMS* param
Ap |DIR* |dirp_dup |DIR* dp
-Ap |GP* |gp_dup |GP* gp|clone_params* param
-Ap |MAGIC* |mg_dup |MAGIC* mg|clone_params* param
-Ap |SV* |sv_dup |SV* sstr|clone_params* param
+Ap |GP* |gp_dup |GP* gp|CLONE_PARAMS* param
+Ap |MAGIC* |mg_dup |MAGIC* mg|CLONE_PARAMS* param
+Ap |SV* |sv_dup |SV* sstr|CLONE_PARAMS* param
#if defined(HAVE_INTERP_INTERN)
Ap |void |sys_intern_dup |struct interp_intern* src \
|struct interp_intern* dst
Ap |void |sys_intern_clear
Ap |void |sys_intern_init
#endif
-#if defined(PERL_CUSTOM_OPS)
+
Ap |char * |custom_op_name|OP* op
Ap |char * |custom_op_desc|OP* op
-#endif
+
END_EXTERN_C
s |void |save_lines |AV *array|SV *sv
s |OP* |doeval |int gimme|OP** startop
s |PerlIO *|doopen_pmc |const char *name|const char *mode
-s |void |qsortsv |SV ** array|size_t num_elts|SVCOMPARE_t f
#endif
#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
s |SV* |save_scalar_at |SV **sptr
#endif
-#if defined(USE_ITHREADS) && (defined(PERL_IN_SHAREDSV_C) || defined(PERL_DECL_PROT))
+#if defined(USE_ITHREADS)
Adp |void |sharedsv_init
-Adp |shared_sv* |sharedsv_new
-Adp |shared_sv* |sharedsv_find |SV* sv
-Adp |void |sharedsv_lock |shared_sv* ssv
-Adp |void |sharedsv_unlock |shared_sv* ssv
-p |void |sharedsv_unlock_scope |shared_sv* ssv
+Adp |shared_sv* |sharedsv_new
+Adp |shared_sv* |sharedsv_find |SV* sv
+Adp |void |sharedsv_lock |shared_sv* ssv
+Adp |void |sharedsv_unlock |shared_sv* ssv
+p |void |sharedsv_unlock_scope |shared_sv* ssv
Adp |void |sharedsv_thrcnt_inc |shared_sv* ssv
Adp |void |sharedsv_thrcnt_dec |shared_sv* ssv
#endif
#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
s |void |check_uni
s |void |force_next |I32 type
-s |char* |force_version |char *start
+s |char* |force_version |char *start|int guessing
s |char* |force_word |char *start|int token|int check_keyword \
|int allow_pack|int allow_tick
s |SV* |tokeq |SV *sv