Clarification and cleanup of the XS SWASHGET code
[p5sagit/p5-mst-13.2.git] / embed.fnc
index de28479..e92201d 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -119,7 +119,7 @@ pR  |int    |block_start    |int full
 p      |void   |boot_core_UNIVERSAL
 p      |void   |boot_core_PerlIO
 Ap     |void   |call_list      |I32 oldscope|NN AV* av_list
-pR     |bool   |cando          |Mode_t mode|Uid_t effective|NN const Stat_t* statbufp
+pR     |bool   |cando          |Mode_t mode|bool effective|NN const Stat_t* statbufp
 ApR    |U32    |cast_ulong     |NV f
 ApR    |I32    |cast_i32       |NV f
 ApR    |IV     |cast_iv        |NV f
@@ -183,7 +183,13 @@ Ap |int    |do_binmode     |NN PerlIO *fp|int iotype|int mode
 p      |void   |do_chop        |NN SV* asv|NN SV* sv
 Ap     |bool   |do_close       |NN GV* gv|bool not_implicit
 p      |bool   |do_eof         |NN GV* gv
+
+#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
 pmb    |bool   |do_exec        |NN const char* cmd
+#else
+p      |bool   |do_exec        |NN const char* cmd
+#endif
+
 #if defined(WIN32) || defined(__SYMBIAN32__)
 Ap     |int    |do_aspawn      |NN SV* really|NN SV** mark|NN SV** sp
 Ap     |int    |do_spawn       |NN char* cmd
@@ -301,14 +307,14 @@ ApP       |I32    |ibcmp          |NN const char* a|NN const char* b|I32 len
 ApP    |I32    |ibcmp_locale   |NN const char* a|NN const char* b|I32 len
 Apd    |I32    |ibcmp_utf8     |NN const char* a|NULLOK char **pe1|UV l1|bool u1 \
                                |NN const char* b|NULLOK char **pe2|UV l2|bool u2
-pR     |bool   |ingroup        |Gid_t testgid|Uid_t effective
+pR     |bool   |ingroup        |Gid_t testgid|bool effective
 p      |void   |init_argv_symbols|int argc|NN char **argv
 p      |void   |init_debugger
 Ap     |void   |init_stacks
 Ap     |void   |init_tm        |NN struct tm *ptm
 pd     |U32    |intro_my
 ApPR   |char*  |instr          |NN const char* big|NN const char* little
-pR     |bool   |io_close       |NN IO* io|bool not_implicit
+p      |bool   |io_close       |NN IO* io|bool not_implicit
 pR     |OP*    |invert         |NULLOK OP* cmd
 dpR    |bool   |is_gv_magical  |NN const char *name|STRLEN len|U32 flags
 ApR    |I32    |is_lvalue_sub
@@ -513,7 +519,7 @@ Apa |OP*    |newRANGE       |I32 flags|NN OP* left|NN OP* right
 Apa    |OP*    |newSLICEOP     |I32 flags|NULLOK OP* subscript|NULLOK OP* listop
 Apa    |OP*    |newSTATEOP     |I32 flags|NULLOK char* label|NULLOK OP* o
 Ap     |CV*    |newSUB         |I32 floor|NULLOK OP* o|NULLOK OP* proto|NULLOK OP* block
-Apd    |CV*    |newXS          |NN const char* name|NN XSUBADDR_t f|NN const char* filename
+Apd    |CV*    |newXS          |NULLOK const char* name|NN XSUBADDR_t f|NN const char* filename
 Apda   |AV*    |newAV
 Apa    |OP*    |newAVREF       |NN OP* o
 Apa    |OP*    |newBINOP       |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
@@ -857,9 +863,21 @@ ApMd       |U8*    |bytes_from_utf8|NN const U8 *s|NN STRLEN *len|NULLOK bool *is_utf8
 ApMd   |U8*    |bytes_to_utf8  |NN const U8 *s|NN STRLEN *len
 Apd    |UV     |utf8_to_uvchr  |NN const U8 *s|NULLOK STRLEN *retlen
 Apd    |UV     |utf8_to_uvuni  |NN const U8 *s|NULLOK STRLEN *retlen
+
+#ifdef EBCDIC
 Adp    |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+#else
+Adpbm  |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+#endif
+
 Adp    |UV     |utf8n_to_uvuni |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+
+#ifdef EBCDIC
 Apd    |U8*    |uvchr_to_utf8  |NN U8 *d|UV uv
+#else
+Apdbm  |U8*    |uvchr_to_utf8  |NN U8 *d|UV uv
+#endif
+
 Apbm   |U8*    |uvuni_to_utf8  |NN U8 *d|UV uv
 Ap     |U8*    |uvchr_to_utf8_flags    |NN U8 *d|UV uv|UV flags
 Apd    |U8*    |uvuni_to_utf8_flags    |NN U8 *d|UV uv|UV flags
@@ -869,7 +887,7 @@ p   |void   |vivify_defelem |NN SV* sv
 p      |void   |vivify_ref     |NN SV* sv|U32 to_what
 p      |I32    |wait4pid       |Pid_t pid|NN int* statusp|int flags
 p      |U32    |parse_unicode_opts|NN const char **popt
-p      |U32    |seed
+Ap     |U32    |seed
 pR     |UV     |get_hash_seed
 p      |void   |report_evil_fh |NULLOK const GV *gv|NULLOK const IO *io|I32 op
 pd     |void   |report_uninit  |NULLOK SV* uninit_sv
@@ -1168,6 +1186,18 @@ sR       |CV*    |get_db_sub     |NN SV **svp|NN CV *cv
 sR     |SV*    |method_common  |NN SV* meth|NULLOK U32* hashp
 #endif
 
+#if defined(PERL_IN_PP_SORT_C) || defined(PERL_DECL_PROT)
+s      |I32    |sv_ncmp        |NN SV *a|NN SV *b
+s      |I32    |sv_i_ncmp      |NN SV *a|NN SV *b
+s      |I32    |amagic_ncmp    |NN SV *a|NN SV *b
+s      |I32    |amagic_i_ncmp  |NN SV *a|NN SV *b
+s      |I32    |amagic_cmp     |NN SV *a|NN SV *b
+s      |I32    |amagic_cmp_locale|NN SV *a|NN SV *b
+s      |I32    |sortcv         |NN SV *a|NN SV *b
+s      |I32    |sortcv_xsub    |NN SV *a|NN SV *b
+s      |I32    |sortcv_stacked |NN SV *a|NN SV *b
+#endif
+
 #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
 s      |OP*    |doform         |NN CV *cv|NN GV *gv|NN OP *retop
 s      |int    |emulate_eaccess|NN const char* path|Mode_t mode
@@ -1355,6 +1385,8 @@ sn        |NV|mulexp10    |NV value|I32 exponent
 
 #if defined(PERL_IN_UTF8_C) || defined(PERL_DECL_PROT)
 s      |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
+sR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname
+sR     |SV*    |swash_get      |NN SV* swash|UV start|UV span
 #endif
 
 START_EXTERN_C
@@ -1418,7 +1450,7 @@ pd        |void   |pad_tidy       |padtidy_type type
 pd     |void   |do_dump_pad    |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
 pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
 
-pd     |void   |pad_push       |NN PADLIST *padlist|int depth
+pdX    |void   |pad_push       |NN PADLIST *padlist|int depth
 pR     |HV*    |pad_compname_type|const PADOFFSET po
 
 #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
@@ -1551,6 +1583,8 @@ p |void   |offer_nice_chunk       |NN void *chunk|U32 chunk_size
 Apnod  |int    |my_sprintf     |NN char *buffer|NN const char *pat|...
 #endif
 
+px     |void   |my_clearenv
+
 END_EXTERN_C
 /*
  * ex: set ts=8 sts=4 sw=4 noet: