diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2002-10-27 22:15:11 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2002-10-27 22:15:11 +0000 |
commit | a46685421d59e1cc6b69c65dca0dc74032488989 (patch) | |
tree | f41fc38f3ddd84019e6f622d78b4dfcd2a15e121 /gnu | |
parent | 1471789f8ef043699698d481c476036544ec944b (diff) |
stock perl 5.8.0 from CPAN
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/usr.bin/perl/NetWare/Makefile | 108 | ||||
-rw-r--r-- | gnu/usr.bin/perl/NetWare/config_H.wc | 205 | ||||
-rw-r--r-- | gnu/usr.bin/perl/embed.fnc | 3812 | ||||
-rw-r--r-- | gnu/usr.bin/perl/lib/h2ph.t | 51 | ||||
-rw-r--r-- | gnu/usr.bin/perl/locale.c | 1289 | ||||
-rw-r--r-- | gnu/usr.bin/perl/pod/perlpodspec.pod | 219 | ||||
-rw-r--r-- | gnu/usr.bin/perl/t/lib/warnings/toke | 794 |
7 files changed, 1783 insertions, 4695 deletions
diff --git a/gnu/usr.bin/perl/NetWare/Makefile b/gnu/usr.bin/perl/NetWare/Makefile index 71ba0da1ed0..94b399f21c7 100644 --- a/gnu/usr.bin/perl/NetWare/Makefile +++ b/gnu/usr.bin/perl/NetWare/Makefile @@ -86,7 +86,7 @@ NLM_VERSION = 3,20,0 # Here comes the CW tools - TO BE FILLED TO BUILD WITH CW - -MODULE_DESC = "Perl 5.20.2 for NetWare" +MODULE_DESC = "Perl 5.8.0 for NetWare" CCTYPE = CodeWarrior C_COMPILER = mwccnlm -c CPP_COMPILER = mwccnlm @@ -285,7 +285,9 @@ NW_CFG_VARS = \ "static_ext=$(STATIC_EXT)" \ "dynamic_ext=$(DYNAMIC_EXT)" \ "nonxs_ext=$(NONXS_EXT)" \ + "use5005threads=$(USE_5005THREADS)" \ "useithreads=$(USE_ITHREADS)" \ + "usethreads=$(USE_5005THREADS)" \ "usemultiplicity=$(USE_MULTI)" \ "ld=$(LINK)" \ "base_import=$(BASE_IMPORT_FILES)" \ @@ -312,12 +314,14 @@ IO_NLM = $(AUTODIR)\IO\IO.NLM OPCODE_NLM = $(AUTODIR)\Opcode\Opcode.NLM SDBM_FILE_NLM = $(AUTODIR)\SDBM_File\SDBM_File.NLM POSIX_NLM = $(AUTODIR)\POSIX\POSIX.NLM -ATTRIBUTES_NLM = $(AUTODIR)\attributes\attributes.NLM +ATTRS_NLM = $(AUTODIR)\attrs\attrs.NLM +THREAD_NLM = $(AUTODIR)\Thread\Thread.NLM B_NLM = $(AUTODIR)\B\B.NLM DUMPER_NLM = $(AUTODIR)\Data\Dumper\Dumper.NLM PEEK_NLM = $(AUTODIR)\Devel\Peek\Peek.NLM RE_NLM = $(AUTODIR)\re\re.NLM BYTELOADER_NLM = $(AUTODIR)\ByteLoader\ByteLoader.NLM +DPROF_NLM = $(AUTODIR)\Devel\DProf\DProf.NLM GLOB_NLM = $(AUTODIR)\File\Glob\Glob.NLM HOSTNAME_NLM = $(AUTODIR)\Sys\Hostname\Hostname.NLM CWD_NLM = $(EXTDIR)\Cwd\Cwd.NLM @@ -327,7 +331,6 @@ MIMEBASE64_NLM = $(EXTDIR)\MIME\Base64\Base64.NLM XSAPITEST_NLM = $(EXTDIR)\XS\APItest\APItest.NLM XSTYPEMAP_NLM = $(EXTDIR)\XS\Typemap\Typemap.NLM UNICODENORMALIZE_NLM = $(EXTDIR)\Unicode\Normalize\Normalize.NLM -UNICODECOLLATE_NLM = $(EXTDIR)\Unicode\Collate\Collate.NLM EXTENSION_NLM = \ $(FCNTL_NLM) \ @@ -336,13 +339,15 @@ EXTENSION_NLM = \ $(SOCKET_NLM) \ $(OPCODE_NLM) \ $(B_NLM) \ - $(ATTRIBUTES_NLM) \ + $(ATTRS_NLM) \ $(SDBM_FILE_NLM) \ $(POSIX_NLM) \ + $(THREAD_NLM) \ $(DUMPER_NLM) \ $(GLOB_NLM) \ $(PEEK_NLM) \ $(RE_NLM) \ + $(DPROF_NLM) \ $(HOSTNAME_NLM) \ $(CWD_NLM) \ $(STORABLE_NLM) \ @@ -462,7 +467,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -INST_VER = \5.20.2 +INST_VER = \5.8.0 # # Comment this out if you DON'T want your perl installation to have @@ -500,6 +505,15 @@ USE_IMP_SYS = define # else USE_STDIO will be defined. #USE_PERLIO = define #USE_STDIO = define +# +# WARNING! This option is deprecated and will eventually go away (enable +# USE_ITHREADS instead). +# +# uncomment to enable threads-capabilities. This is incompatible with +# USE_ITHREADS, and is only here for people who may have come to rely +# on the experimental Thread support that was in 5.005. +# +#USE_5005THREADS= define # For now let this be here # @@ -541,6 +555,14 @@ CRYPT_FLAG = -DHAVE_DES_FCRYPT PERL_MALLOC = undef !ENDIF +!IF "$(USE_5005THREADS)" == "" +USE_5005THREADS = undef +!ENDIF + +!IF "$(USE_5005THREADS)" == "define" +USE_ITHREADS = undef +!ENDIF + !IF "$(USE_IMP_SYS)" == "define" PERL_MALLOC = undef !ENDIF @@ -561,15 +583,16 @@ USE_IMP_SYS = undef USE_PERLCRT = undef !ENDIF -!IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef" +!IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)" == "defineundefundef" USE_MULTI = define !ENDIF !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef" USE_MULTI = define +USE_5005THREADS = undef !ENDIF -!IF "$(USE_MULTI)" != "undef" +!IF "$(USE_MULTI)$(USE_5005THREADS)" != "undefundef" BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT !ENDIF @@ -581,13 +604,17 @@ BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS PROCESSOR_ARCHITECTURE = x86 !ENDIF +!IF "$(USE_5005THREADS)" == "define" +ARCHNAME = NetWare-$(PROCESSOR_ARCHITECTURE)-thread +!ELSE !IF "$(USE_MULTI)" == "define" ARCHNAME = NetWare-$(PROCESSOR_ARCHITECTURE)-multi !ELSE ARCHNAME = NetWare-$(PROCESSOR_ARCHITECTURE) !ENDIF +!ENDIF -!IF "$(USE_MULTI)" != "undef" +!IF "$(USE_MULTI)$(USE_5005THREADS)" != "undefundef" ADD_BUILDOPT = $(ADD_BUILDOPT) -DPERL_IMPLICIT_CONTEXT !ENDIF @@ -660,12 +687,16 @@ PL2BAT = ..\win32\bin\pl2bat.pl UTILS = \ ..\utils\h2ph \ ..\utils\splain \ + ..\utils\dprofpp \ ..\utils\perlbug \ ..\utils\pl2pm \ ..\utils\c2ph \ ..\utils\h2xs \ ..\utils\perldoc \ + ..\utils\perlcc \ + ..\pod\checkpods \ ..\pod\pod2html \ + ..\pod\pod2latex \ ..\pod\pod2man \ ..\pod\pod2text \ ..\pod\pod2usage \ @@ -695,11 +726,8 @@ MICROCORE_SRC = \ ..\dump.c \ ..\globals.c \ ..\gv.c \ - ..\mro.c \ ..\hv.c \ - ..\keywords.c \ ..\locale.c \ - ..\mathoms.c \ ..\mg.c \ ..\numeric.c \ ..\op.c \ @@ -722,7 +750,8 @@ MICROCORE_SRC = \ ..\toke.c \ ..\universal.c \ ..\utf8.c \ - ..\util.c + ..\util.c \ + ..\xsutils.c #EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c @@ -755,7 +784,6 @@ CORE_NOCFG_H = \ ..\gv.h \ ..\handy.h \ ..\hv.h \ - ..\hv_func.h \ ..\iperlsys.h \ ..\mg.h \ ..\nostdio.h \ @@ -764,6 +792,7 @@ CORE_NOCFG_H = \ ..\perl.h \ ..\perlapi.h \ ..\perlsdio.h \ + ..\perlsfio.h \ ..\perly.h \ ..\pp.h \ ..\proto.h \ @@ -778,17 +807,18 @@ CORE_NOCFG_H = \ ..\XSUB.h \ ..\EXTERN.h \ ..\perlvars.h \ - ..\intrpvar.h + ..\intrpvar.h \ + ..\thrdvar.h CORE_H = $(CORE_NOCFG_H) .\config.h DLL_OBJ = $(DLL_SRC:.c=.obj) X2P_OBJ = $(X2P_SRC:.c=.obj) -DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \ - Data/Dumper Devel/Peek ByteLoader File/Glob \ +DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \ + Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \ Storable/Storable List/Util MIME/Base64/Base64 XS/APItest/APItest \ - XS/Typemap/Typemap Unicode/Collate/Collate Unicode/Normalize/Normalize Sys/Hostname + XS/Typemap/Typemap Unicode/Normalize/Normalize Sys/Hostname STATIC_EXT = DynaLoader NONXS_EXT = Errno @@ -800,13 +830,15 @@ OPCODE = $(EXTDIR)\Opcode\Opcode SDBM_FILE = $(EXTDIR)\SDBM_File\SDBM_File IO = $(EXTDIR)\IO\IO POSIX = $(EXTDIR)\POSIX\POSIX -ATTRIBUTES = $(EXTDIR)\attributes\attributes +ATTRS = $(EXTDIR)\attrs\attrs +THREAD = $(EXTDIR)\Thread\Thread B = $(EXTDIR)\B\B RE = $(EXTDIR)\re\re DUMPER = $(EXTDIR)\Data\Dumper\Dumper ERRNO = $(EXTDIR)\Errno\Errno PEEK = $(EXTDIR)\Devel\Peek\Peek BYTELOADER = $(EXTDIR)\ByteLoader\ByteLoader +DPROF = $(EXTDIR)\Devel\DProf\DProf GLOB = $(EXTDIR)\File\Glob\Glob HOSTNAME = $(EXTDIR)\Sys\Hostname\Hostname CWD = $(EXTDIR)\Cwd\Cwd @@ -816,7 +848,6 @@ MIMEBASE64 = $(EXTDIR)\MIME\Base64\Base64 XSAPITEST = $(EXTDIR)\XS\APItest\APItest XSTYPEMAP = $(EXTDIR)\XS\Typemap\Typemap UNICODENORMALIZE = $(EXTDIR)\Unicode\Normalize\Normalize -UNICODECOLLATE = $(EXTDIR)\Unicode\Collate\Collate ERRNO_PM_NW = $(LIBDIR)\Errno.pm @@ -827,12 +858,14 @@ EXTENSION_C = \ $(SDBM_FILE).c \ $(IO).c \ $(POSIX).c \ - $(ATTRIBUTES).c \ + $(ATTRS).c \ + $(THREAD).c \ $(RE).c \ $(DUMPER).c \ $(PEEK).c \ $(B).c \ $(BYTELOADER).c \ + $(DPROF).c \ $(GLOB).c \ $(HOSTNAME).c \ $(CWD).c \ @@ -848,6 +881,7 @@ EXTENSION_NPM = \ POD2HTML = $(PODDIR)\pod2html POD2MAN = $(PODDIR)\pod2man +POD2LATEX = $(PODDIR)\pod2latex POD2TEXT = $(PODDIR)\pod2text # @@ -862,7 +896,8 @@ all : .cleanoldfiles .\nwconfig.h $(CONFIGPM) $(NLM_NAME) $(EXTENSION_NLM) $(EXT $(MINIPERL) -I..\lib config_sh.PL $(NW_CFG_VARS) config.nw5 > ..\config.sh # this target is for when changes to the main config.sh happen -# edit config.wc and make this target +# edit config.{b,v,g,w}c and make this target once for each supported +# compiler (e.g. `dmake CCTYPE=BORLAND regen_config_h`) regen_config_h: perl config_sh.PL $(NW_CFG_VARS) $(NW_CFGSH_TMPL) > ..\config.sh cd .. @@ -1058,12 +1093,12 @@ $(PERLIMPLIB): perllib.imp # $(XCOPY) $(PERLIMPLIB) $(COREDIR) # @echo $(PERLIMPLIB) Done -perllib.imp : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl +perllib.imp : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl # $(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=def $(ADD_BUILDOPT) \ -# CCTYPE=$(CCTYPE) TARG_DIR=..\ > perllib.def +# CCTYPE=$(CCTYPE) > perllib.def @echo (Perl) > perl.imp $(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=imp $(BS_CFLAGS) $(DEFINES) $(ADD_BUILDOPT) \ - CCTYPE=$(CCTYPE) TARG_DIR=..\ >> perl.imp + CCTYPE=$(CCTYPE) >> perl.imp copy perl.imp $(COREDIR) $(DLL_OBJ) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c @@ -1202,6 +1237,12 @@ $(BYTELOADER_NLM): $(MAKE) cd ..\..\netware +$(DPROF_NLM): + cd $(EXTDIR)\Devel\$(*B) + ..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl + $(MAKE) + cd ..\..\..\netware + $(GLOB_NLM): cd $(EXTDIR)\File\$(*B) ..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl @@ -1214,7 +1255,13 @@ $(POSIX_NLM): $(MAKE) cd ..\..\netware -$(ATTRIBUTES_NLM): +$(THREAD_NLM): + cd $(EXTDIR)\$(*B) + ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl + $(MAKE) + cd ..\..\netware + +$(ATTRS_NLM): cd $(EXTDIR)\$(*B) ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl $(MAKE) @@ -1365,12 +1412,15 @@ utils: $(BLDDIR)\$(NLM_NAME8).$(NLM_EXT) $(X2P) copy ..\README.cygwin .\perlcygwin.pod copy ..\README.dos .\perldos.pod copy ..\README.hpux .\perlhpux.pod +# copy ..\README.machten .\perlmachten.pod copy ..\README.os2 .\perlos2.pod copy ..\vms\perlvms.pod .\perlvms.pod copy ..\README.win32 .\perlwin32.pod copy ..\README.netware .\perlnw5.pod $(MAKE) -f ..\win32\pod.mak converters + cd ..\lib + $(MINIPERL) lib_pm.PL cd ..\netware $(MINIPERL) $(PL2BAT) $(UTILS) @@ -1382,24 +1432,24 @@ distclean: clean nwclean -del /f /q $(EXTDIR)\DynaLoader\dl_win32.xs -del /f /q $(EXTDIR)\DynaLoader\DynaLoader.pm -del /f /q $(EXTDIR)\DynaLoader\XSLoader.pm - -del /f /q $(LIBDIR)\.exists $(LIBDIR)\attributes.pm $(LIBDIR)\DynaLoader.pm + -del /f /q $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm -del /f /q $(LIBDIR)\XSLoader.pm -del /f /q $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm -del /f /q $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm -del /f /q $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm -del /f /q $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm -del /f /q $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm - -del /f /q $(LIBDIR)\Devel\Peek.pm + -del /f /q $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm -del /f /q $(LIBDIR)\File\Glob.pm -del /f /q $(LIBDIR)\Unicode\Normalize.pm - -del /f /q $(LIBDIR)\Unicode\Collate.pm -rmdir /s /q $(LIBDIR)\IO + -rmdir /s /q $(LIBDIR)\Thread -rmdir /s /q $(LIBDIR)\B -rmdir /s /q $(LIBDIR)\Data -del /f /q $(PODDIR)\*.html -del /f /q $(PODDIR)\*.bat cd ..\utils - -del /f /q h2ph splain perlbug pl2pm c2ph h2xs perldoc + -del /f /q h2ph splain perlbug pl2pm c2ph h2xs perldoc dprofpp -del /f /q *.bat cd ..\netware cd ..\x2p diff --git a/gnu/usr.bin/perl/NetWare/config_H.wc b/gnu/usr.bin/perl/NetWare/config_H.wc index 8541736b4b5..be5a841d271 100644 --- a/gnu/usr.bin/perl/NetWare/config_H.wc +++ b/gnu/usr.bin/perl/NetWare/config_H.wc @@ -26,12 +26,6 @@ */ #define LOC_SED "" /**/ -/* HAS_AINTL: - * This symbol, if defined, indicates that the aintl routine is - * available. If copysignl is also present we can emulate modfl. - */ -/*#define HAS_AINTL / **/ - /* HAS_ALARM: * This symbol, if defined, indicates that the alarm routine is * available. @@ -44,9 +38,6 @@ */ /*#define HASATTRIBUTE /**/ #ifndef HASATTRIBUTE -#ifdef __attribute__ -#undef __attribute__ -#endif #define __attribute__(_arg_) #endif @@ -136,12 +127,6 @@ */ #define HAS_DUP2 /**/ -/* HAS_FAST_STDIO: - * This symbol, if defined, indicates that the "fast stdio" - * is available to manipulate the stdio buffers directly. - */ -/*#define HAS_FAST_STDIO /**/ - /* HAS_FCHDIR: * This symbol, if defined, indicates that the fchdir routine is * available to change directory using a file descriptor. @@ -686,12 +671,6 @@ */ #define I_ARPA_INET /**/ -/* I_ASSERT: - * This symbol, if defined, indicates to the C program that it could - * include <assert.h> to get the assert() macro. - */ -#define I_ASSERT /**/ - /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. @@ -784,6 +763,12 @@ */ #define I_NETINET_IN /**/ +/* I_SFIO: + * This symbol, if defined, indicates to the C program that it should + * include <sfio.h>. + */ +/*#define I_SFIO /**/ + /* I_STDDEF: * This symbol, if defined, indicates that <stddef.h> exists and should * be included. @@ -967,7 +952,7 @@ /* HAS_QUAD: * This symbol, if defined, tells that there's a 64-bit integer type, - * Quad_t, and its unsigned counterpart, Uquad_t. QUADKIND will be one + * Quad_t, and its unsigned counterpar, Uquad_t. QUADKIND will be one * of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T. */ /*#define HAS_QUAD /**/ @@ -1023,7 +1008,7 @@ * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES 8 @@ -1042,7 +1027,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.20.2\\lib\\NetWare-x86-multi-thread" /**/ +#define ARCHLIB "c:\\perl\\5.8.0\\lib\\NetWare-x86-multi-thread" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -1073,8 +1058,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.20.2\\bin\\NetWare-x86-multi-thread" /**/ -#define BIN_EXP "c:\\perl\\5.20.2\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN "c:\\perl\\5.8.0\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN_EXP "c:\\perl\\5.8.0\\bin\\NetWare-x86-multi-thread" /**/ /* BYTEORDER: * This symbol holds the hexadecimal constant defined in byteorder, @@ -1092,7 +1077,7 @@ * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234 @@ -1140,7 +1125,7 @@ #define STRINGIFY(a) PeRl_StGiFy(a) #endif #if 42 != 1 && 42 != 42 -# include "Bletch: How does this C preprocessor concatenate tokens?" +# include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: @@ -1369,7 +1354,7 @@ /* HAS_GETESPWNAM: * This symbol, if defined, indicates that the getespwnam system call is - * available to retrieve enhanced (shadow) password entries by name. + * available to retrieve enchanced (shadow) password entries by name. */ /*#define HAS_GETESPWNAM /**/ @@ -1611,12 +1596,6 @@ #define HAS_NTOHL /**/ #define HAS_NTOHS /**/ -/* HAS_ILOGBL: - * This symbol, if defined, indicates that the ilogbl routine is - * available. If scalbnl is also present we can emulate frexpl. - */ -/*#define HAS_ILOGBL /**/ - /* HAS_INT64_T: * This symbol will defined if the C compiler supports int64_t. * Usually the <inttypes.h> needs to be included, but sometimes @@ -1719,7 +1698,7 @@ /* HAS_MKSTEMPS: * This symbol, if defined, indicates that the mkstemps routine is - * available to exclusively create and open a uniquely named + * available to excluslvely create and open a uniquely named * (with a suffix) temporary file. */ /*#define HAS_MKSTEMPS /**/ @@ -1809,13 +1788,6 @@ #define SCHED_YIELD /**/ /*#define HAS_SCHED_YIELD /**/ -/* HAS_PTHREAD_ATTR_SETSCOPE: - * This symbol, if defined, indicates that the pthread_attr_setscope - * system call is available to set the contention scope attribute of - * a thread attribute object. - */ -/*#define HAS_PTHREAD_ATTR_SETSCOPE / **/ - /* HAS_READV: * This symbol, if defined, indicates that the readv routine is * available to do gather reads. You will also need <sys/uio.h> @@ -1867,12 +1839,6 @@ */ /*#define HAS_SEM /**/ -/* HAS_SCALBNL: - * This symbol, if defined, indicates that the scalbnl routine is - * available. If ilogbl is also present we can emulate frexpl. - */ -/*#define HAS_SCALBNL /**/ - /* HAS_SENDMSG: * This symbol, if defined, indicates that the sendmsg routine is * available to send structured socket messages. @@ -1953,6 +1919,12 @@ */ #define HAS_SETVBUF /**/ +/* USE_SFIO: + * This symbol, if defined, indicates that sfio should + * be used. + */ +/*#define USE_SFIO /**/ + /* HAS_SHM: * This symbol, if defined, indicates that the entire shm*(2) library is * supported. @@ -1996,27 +1968,6 @@ #define Siglongjmp(buf,retval) longjmp((buf),(retval)) #endif -/* HAS_STATIC_INLINE: - * This symbol, if defined, indicates that the C compiler supports - * C99-style static inline. That is, the function can't be called - * from another translation unit. - */ -/* PERL_STATIC_INLINE: - * This symbol gives the best-guess incantation to use for static - * inline functions. If HAS_STATIC_INLINE is defined, this will - * give C99-style inline. If HAS_STATIC_INLINE is not defined, - * this will give a plain 'static'. It will always be defined - * to something that gives static linkage. - * Possibilities include - * static inline (c99) - * static __inline__ (gcc -ansi) - * static __inline (MSVC) - * static _inline (older MSVC) - * static (c89 compilers) - */ -/*#define HAS_STATIC_INLINE / **/ -#define PERL_STATIC_INLINE static /**/ - /* HAS_SOCKET: * This symbol, if defined, indicates that the BSD socket interface is * supported. @@ -2855,10 +2806,6 @@ * This symbol contains the number of bits a variable of type NVTYPE * can preserve of a variable of type UVTYPE. */ -/* NV_ZERO_IS_ALLBITS_ZERO: - * This symbol, if defined, indicates that a variable of type NVTYPE - * stores 0.0 in memory as all bits zero. - */ #define IVTYPE long /**/ #define UVTYPE unsigned long /**/ #define I8TYPE char /**/ @@ -2887,7 +2834,6 @@ #define NVSIZE 8 /**/ #define NV_PRESERVES_UV #define NV_PRESERVES_UV_BITS undef -#undef NV_ZERO_IS_ALLBITS_ZERO /* IVdf: * This symbol defines the format string used for printing a Perl IV @@ -3029,8 +2975,8 @@ * the sig_name list. */ /* SIG_SIZE: - * This variable contains the number of elements of the SIG_NAME - * and SIG_NUM arrays, excluding the final NULL entry. + * This variable contains the number of elements of the sig_name + * and sig_num arrays, excluding the final NULL entry. */ #define SIG_NAME "ZERO", "NUM01", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0 /**/ #define SIG_NUM 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0 /**/ @@ -3051,7 +2997,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.20.2\\lib\\NetWare-x86-multi-thread" /**/ +#define SITEARCH "c:\\perl\\site\\5.8.0\\lib\\NetWare-x86-multi-thread" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -3074,8 +3020,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "c:\\perl\\site\\5.20.2\\lib" /**/ -/*#define SITELIB_EXP "" /**/ +#define SITELIB "c:\\perl\\site\\5.8.0\\lib" /**/ +#define SITELIB_EXP (nw_get_sitelib("5.8.0")) /**/ #define SITELIB_STEM "" /**/ /* Size_t_size: @@ -3089,7 +3035,7 @@ * unsigned long, int, etc. It may be necessary to include * <sys/types.h> to get any typedef'ed information. */ -#define Size_t size_t /* length parameter for string functions */ +#define Size_t size_t /* length paramater for string functions */ /* Sock_size_t: * This symbol holds the type used for the size argument of @@ -3180,15 +3126,6 @@ /*#define USE_64_BIT_ALL /**/ #endif -/* USE_FAST_STDIO: - * This symbol, if defined, indicates that Perl should - * be built to use 'fast stdio'. - * Defaults to define in Perls 5.8 and earlier, to undef later. - */ -#ifndef USE_FAST_STDIO -/*#define USE_FAST_STDIO / **/ -#endif - /* USE_LARGE_FILES: * This symbol, if defined, indicates that large file support * should be used when available. @@ -3242,6 +3179,10 @@ * This symbol, if defined, indicates that Perl should be built to * use the interpreter-based threading implementation. */ +/* USE_5005THREADS: + * This symbol, if defined, indicates that Perl should be built to + * use the 5.005-based threading implementation. + */ /* OLD_PTHREADS_API: * This symbol, if defined, indicates that Perl should * be built to use the old draft POSIX threads API. @@ -3251,7 +3192,11 @@ * try to use the various _r versions of library functions. * This is extremely experimental. */ +/*#define USE_5005THREADS /**/ #define USE_ITHREADS /**/ +#if defined(USE_5005THREADS) && !defined(USE_ITHREADS) +#define USE_5005THREADS /* until src is revised*/ +#endif /*#define OLD_PTHREADS_API /**/ /*#define USE_REENTRANT_API /**/ @@ -3285,6 +3230,66 @@ /*#define PERL_VENDORLIB_EXP "" /**/ /*#define PERL_VENDORLIB_STEM "" /**/ +/* VOIDFLAGS: + * This symbol indicates how much support of the void type is given by this + * compiler. What various bits mean: + * + * 1 = supports declaration of void + * 2 = supports arrays of pointers to functions returning void + * 4 = supports comparisons between pointers to void functions and + * addresses of void functions + * 8 = suports declaration of generic void pointers + * + * The package designer should define VOIDUSED to indicate the requirements + * of the package. This can be done either by #defining VOIDUSED before + * including config.h, or by defining defvoidused in Myinit.U. If the + * latter approach is taken, only those flags will be tested. If the + * level of void support necessary is not present, defines void to int. + */ +#ifndef VOIDUSED +#define VOIDUSED 15 +#endif +#define VOIDFLAGS 15 +#if (VOIDFLAGS & VOIDUSED) != VOIDUSED +#define void int /* is void to be avoided? */ +#define M_VOID /* Xenix strikes again */ +#endif + +/* PERL_XS_APIVERSION: + * This variable contains the version of the oldest perl binary + * compatible with the present perl. perl.c:incpush() and + * lib/lib.pm will automatically search in c:\\perl\\site\\5.8.0\\lib\\NetWare-x86-multi-thread for older + * directories across major versions back to xs_apiversion. + * This is only useful if you have a perl library directory tree + * structured like the default one. + * See INSTALL for how this works. + * The versioned site_perl directory was introduced in 5.005, + * so that is the lowest possible value. + * Since this can depend on compile time options + * it is set by Configure. Other non-default sources + * of potential incompatibility, such as multiplicity, threads, + * debugging, 64bits, sfio, etc., are not checked for currently, + * though in principle we could go snooping around in old + * Config.pm files. + */ +/* PERL_PM_APIVERSION: + * This variable contains the version of the oldest perl + * compatible with the present perl. (That is, pure perl modules + * written for pm_apiversion will still work for the current + * version). perl.c:incpush() and lib/lib.pm will automatically + * search in c:\\perl\\site\\5.8.0\\lib for older directories across major versions + * back to pm_apiversion. This is only useful if you have a perl + * library directory tree structured like the default one. The + * versioned site_perl library was introduced in 5.005, so that's + * the default setting for this variable. It's hard to imagine + * it changing before Perl6. It is included here for symmetry + * with xs_apiveprsion -- the searching algorithms will + * (presumably) be similar. + * See the INSTALL file for how this works. + */ +#define PERL_XS_APIVERSION "5.8.0" +#define PERL_PM_APIVERSION "5.005" + /* SETUID_SCRIPTS_ARE_SECURE_NOW: * This symbol, if defined, indicates that the bug that prevents * setuid scripts from being secure is not present in this kernel. @@ -3328,12 +3333,6 @@ #define PERL_TARGETARCH "undef" /**/ #endif -/* HAS_COPYSIGNL: - * This symbol, if defined, indicates that the copysignl routine is - * available. If aintl is also present we can emulate modfl. - */ -/*#define HAS_COPYSIGNL /**/ - /* HAS_DBMINIT_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the dbminit() function. Otherwise, it is up @@ -3399,18 +3398,6 @@ */ #define HAS_STRFTIME /**/ -/* HAS_STRLCAT - * This symbol, if defined, indicates that the strlcat routine is - * available to do string concatenation. - */ -/*#define HAS_STRLCAT /**/ - -/* HAS_STRLCPY: - * This symbol, if defined, indicates that the strlcpy routine is - * available to do string copying. - */ -/*#define HAS_STRLCPY /**/ - /* HAS_SYSCALL_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the syscall() function. Otherwise, it is up @@ -3436,7 +3423,7 @@ /* HAS_PTHREAD_ATFORK: * This symbol, if defined, indicates that the pthread_atfork routine - * is available to setup fork handlers. + * is available setup fork handlers. */ /*#define HAS_PTHREAD_ATFORK /**/ diff --git a/gnu/usr.bin/perl/embed.fnc b/gnu/usr.bin/perl/embed.fnc index 88f03c21200..a2c83b56ac1 100644 --- a/gnu/usr.bin/perl/embed.fnc +++ b/gnu/usr.bin/perl/embed.fnc @@ -1,7 +1,3 @@ -: BEGIN{die "You meant to run regen/embed.pl"} # Stop early if fed to perl. -: -: This file is processed by regen/embed.pl and autodoc.pl -: : Lines are of the form: : flags|return_type|function_name|arg1|arg2|...|argN : @@ -9,890 +5,461 @@ : Leading and trailing whitespace will be ignored in each component. : : flags are single letters with following meanings: -: -: A Available fully everywhere (usually part of the public API): -: -: add entry to the list of exported symbols (unless x or m); -: any doc entry goes in perlapi.pod rather than perlintern.pod. If no -: documentation is furnished for this function, and M is also -: specified, the function is not listed as part of the public API. -: If M isn't specified, and no documentation is furnished, the -: function is listed in perlapi as existing and being undocumented -: makes '#define foo Perl_foo' scope not just for PERL_CORE/PERL_EXT -: -: If the function is only exported for use in a public -: macro, see X. -: -: a Allocates memory a la malloc/calloc. Also implies "R": -: -: proto.h: add __attribute__malloc__ -: -: b Binary backward compatibility; function is a macro -: but has also Perl_ implementation (which is exported); often -: implemented in mathoms.c (whose compilation can be suppressed; see -: INSTALL): -: -: add entry to the list of exported symbols; -: don't define PERL_ARGS_ASSERT_FOO -: -: D Function is deprecated: -: -: proto.h: add __attribute__deprecated__ -: -: d Function has documentation (somewhere) in the source: -: -: enables 'no docs for foo" warning in autodoc.pl -: -: E Visible to extensions included in the Perl core: -: -: in embed.h, change "#ifdef PERL_CORE" -: into "#if defined(PERL_CORE) || defined(PERL_EXT)" -: -: To be usable from dynamically loaded extensions, either: -: 1) must be static to its containing file ("i" or "s" flag); or -: 2) be combined with the "X" flag. -: -: f Function takes a format string. If the function name /strftime/ -: then its assumed to take a strftime-style format string as 1st arg; -: otherwise it's assumed to be a printf style format string, varargs -: (hence any entry that would otherwise go in embed.h is suppressed): -: -: proto.h: add __attribute__format__ (or ...null_ok__) -: -: i Static inline: function in source code has a S_ prefix: -: -: proto.h: function is declared as S_foo rather than foo, -: PERL_STATIC_INLINE is added to declaration; -: embed.h: "#define foo S_foo" entries added -: -: M May change: -: -: any doc entry is marked that function may change -: -: m Implemented as a macro: -: -: suppress proto.h entry -: suppress entry in the list of exported symbols -: suppress embed.h entry -: -: n Has no implicit interpreter/thread context argument: -: -: suppress the pTHX part of "foo(pTHX...)" in proto.h; -: In the PERL_IMPLICIT_SYS branch of embed.h, generates -: "#define foo Perl_foo", rather than -: "#define foo(a,b,c) Perl_foo(aTHX_ a,b,c) -: -: O Has a perl_ compatibility macro. -: -: The really OLD name for API funcs -: -: o Has no Perl_foo or S_foo compatibility macro: -: -: embed.h: suppress "#define foo Perl_foo" -: -: P Pure function: no effects except the return value; -: return value depends only on params and/or globals: -: -: proto.h: add __attribute__pure__ -: -: p Function in source code has a Perl_ prefix: -: -: proto.h: function is declared as Perl_foo rather than foo -: embed.h: "#define foo Perl_foo" entries added -: -: R Return value must not be ignored (also implied by 'a' flag): -: -: proto.h: add __attribute__warn_unused_result__ -: -: r Function never returns: -: -: proto.h: add __attribute__noreturn__ -: -: s Static function: function in source code has a S_ prefix: -: -: proto.h: function is declared as S_foo rather than foo, -: STATIC is added to declaration; -: embed.h: "#define foo S_foo" entries added -: -: U Suppress usage example in autogenerated documentation -: -: (currently no effect) -: -: X Explicitly exported: -: -: add entry to the list of exported symbols, unless x or m -: -: This is often used for private functions that are used by public -: macros. In those cases the macros must use the long form of the -: name (Perl_blah(aTHX_ ...)). -: -: x Not exported -: -: suppress entry in the list of exported symbols -: -: (see also L<perlguts/Internal Functions> for those flags.) -: -: Pointer parameters that must not be passed NULLs should be prefixed with NN. -: -: Pointer parameters that may be NULL should be prefixed with NULLOK. This has -: no effect on output yet. It's a notation for the maintainers to know "I have -: defined whether NULL is OK or not" rather than having neither NULL or NULLOK, -: which is ambiguous. +: 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 +: n has no implicit interpreter/thread context argument +: p function has a Perl_ prefix +: f function takes printf style format string, varargs +: r function never returns +: o has no compatibility macro (#define foo Perl_foo) +: x not exported +: M may change : : Individual flags may be separated by whitespace. +: +: New global functions should be added at the end for binary compatibility +: in some configurations. + +START_EXTERN_C #if defined(PERL_IMPLICIT_SYS) -Ano |PerlInterpreter*|perl_alloc_using \ - |NN struct IPerlMem *ipM \ - |NN struct IPerlMem *ipMS \ - |NN struct IPerlMem *ipMP \ - |NN struct IPerlEnv *ipE \ - |NN struct IPerlStdIO *ipStd \ - |NN struct IPerlLIO *ipLIO \ - |NN struct IPerlDir *ipD \ - |NN struct IPerlSock *ipS \ - |NN struct IPerlProc *ipP +Ano |PerlInterpreter* |perl_alloc_using \ + |struct IPerlMem* m|struct IPerlMem* ms \ + |struct IPerlMem* mp|struct IPerlEnv* e \ + |struct IPerlStdIO* io|struct IPerlLIO* lio \ + |struct IPerlDir* d|struct IPerlSock* s \ + |struct IPerlProc* p #endif Anod |PerlInterpreter* |perl_alloc -Anod |void |perl_construct |NN PerlInterpreter *my_perl -Anod |int |perl_destruct |NN PerlInterpreter *my_perl -Anod |void |perl_free |NN PerlInterpreter *my_perl -Anod |int |perl_run |NN PerlInterpreter *my_perl -Anod |int |perl_parse |NN PerlInterpreter *my_perl|XSINIT_t xsinit \ - |int argc|NULLOK char** argv|NULLOK char** env -AnpR |bool |doing_taint |int argc|NULLOK char** argv|NULLOK char** env +Anod |void |perl_construct |PerlInterpreter* interp +Anod |int |perl_destruct |PerlInterpreter* interp +Anod |void |perl_free |PerlInterpreter* interp +Anod |int |perl_run |PerlInterpreter* interp +Anod |int |perl_parse |PerlInterpreter* interp|XSINIT_t xsinit \ + |int argc|char** argv|char** env #if defined(USE_ITHREADS) -Anod |PerlInterpreter*|perl_clone|NN PerlInterpreter *proto_perl|UV flags +Anod |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags # if defined(PERL_IMPLICIT_SYS) -Ano |PerlInterpreter*|perl_clone_using \ - |NN PerlInterpreter *proto_perl \ - |UV flags \ - |NN struct IPerlMem* ipM \ - |NN struct IPerlMem* ipMS \ - |NN struct IPerlMem* ipMP \ - |NN struct IPerlEnv* ipE \ - |NN struct IPerlStdIO* ipStd \ - |NN struct IPerlLIO* ipLIO \ - |NN struct IPerlDir* ipD \ - |NN struct IPerlSock* ipS \ - |NN struct IPerlProc* ipP +Ano |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \ + |struct IPerlMem* m|struct IPerlMem* ms \ + |struct IPerlMem* mp|struct IPerlEnv* e \ + |struct IPerlStdIO* io|struct IPerlLIO* lio \ + |struct IPerlDir* d|struct IPerlSock* s \ + |struct IPerlProc* p # endif #endif -Aanop |Malloc_t|malloc |MEM_SIZE nbytes -Aanop |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size -Aanop |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes +Anop |Malloc_t|malloc |MEM_SIZE nbytes +Anop |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size +Anop |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes Anop |Free_t |mfree |Malloc_t where #if defined(MYMALLOC) -npR |MEM_SIZE|malloced_size |NN void *p -npR |MEM_SIZE|malloc_good_size |size_t nbytes -#endif -#if defined(PERL_IN_MALLOC_C) -sn |int |adjust_size_and_find_bucket |NN size_t *nbytes_p -#endif - -AnpR |void* |get_context -Anp |void |set_context |NN void *t - -XEop |bool |try_amagic_bin |int method|int flags -XEop |bool |try_amagic_un |int method|int flags -Ap |SV* |amagic_call |NN SV* left|NN SV* right|int method|int dir -Ap |SV * |amagic_deref_call|NN SV *ref|int method -p |bool |amagic_is_enabled|int method -Ap |int |Gv_AMupdate |NN HV* stash|bool destructing -ApR |CV* |gv_handler |NULLOK HV* stash|I32 id -Apd |OP* |op_append_elem |I32 optype|NULLOK OP* first|NULLOK OP* last -Apd |OP* |op_append_list |I32 optype|NULLOK OP* first|NULLOK OP* last -Apd |OP* |op_linklist |NN OP *o -Apd |OP* |op_prepend_elem|I32 optype|NULLOK OP* first|NULLOK OP* last -: FIXME - this is only called by pp_chown. They should be merged. -p |I32 |apply |I32 type|NN SV** mark|NN SV** sp -ApM |void |apply_attrs_string|NN const char *stashpv|NN CV *cv|NN const char *attrstr|STRLEN len -Apd |void |av_clear |NN AV *av -Apd |SV* |av_delete |NN AV *av|SSize_t key|I32 flags -ApdR |bool |av_exists |NN AV *av|SSize_t key -Apd |void |av_extend |NN AV *av|SSize_t key -p |void |av_extend_guts |NULLOK AV *av|SSize_t key \ - |NN SSize_t *maxp \ - |NN SV ***allocp|NN SV ***arrayp -ApdR |SV** |av_fetch |NN AV *av|SSize_t key|I32 lval -Apd |void |av_fill |NN AV *av|SSize_t fill -ApdR |SSize_t|av_len |NN AV *av -ApdR |AV* |av_make |SSize_t size|NN SV **strp -Apd |SV* |av_pop |NN AV *av -ApdoxM |void |av_create_and_push|NN AV **const avp|NN SV *const val -Apd |void |av_push |NN AV *av|NN SV *val -: Used in scope.c, and by Data::Alias -EXp |void |av_reify |NN AV *av -ApdR |SV* |av_shift |NN AV *av -Apd |SV** |av_store |NN AV *av|SSize_t key|NULLOK SV *val -AidR |SSize_t|av_top_index |NN AV *av -AmpdR |SSize_t|av_tindex |NN AV *av -Apd |void |av_undef |NN AV *av -ApdoxM |SV** |av_create_and_unshift_one|NN AV **const avp|NN SV *const val -Apd |void |av_unshift |NN AV *av|SSize_t num -Apo |SV** |av_arylen_p |NN AV *av -Apo |IV* |av_iter_p |NN AV *av -#if defined(PERL_IN_AV_C) -s |MAGIC* |get_aux_mg |NN AV *av -#endif -: Used in perly.y -pR |OP* |bind_match |I32 type|NN OP *left|NN OP *right -: Used in perly.y -pR |OP* |block_end |I32 floor|NULLOK OP* seq -ApR |I32 |block_gimme -: Used in perly.y -pR |int |block_start |int full -Aodp |void |blockhook_register |NN BHK *hk -: Used in perl.c +np |MEM_SIZE|malloced_size |void *p +#endif + +Anp |void* |get_context +Anp |void |set_context |void *thx + +END_EXTERN_C + +/* functions with flag 'n' should come before here */ +START_EXTERN_C +# include "pp_proto.h" +Ap |SV* |amagic_call |SV* left|SV* right|int method|int dir +Ap |bool |Gv_AMupdate |HV* stash +Ap |CV* |gv_handler |HV* stash|I32 id +p |OP* |append_elem |I32 optype|OP* head|OP* tail +p |OP* |append_list |I32 optype|LISTOP* first|LISTOP* last +p |I32 |apply |I32 type|SV** mark|SV** sp +ApM |void |apply_attrs_string|char *stashpv|CV *cv|char *attrstr|STRLEN len +Ap |SV* |avhv_delete_ent|AV *ar|SV* keysv|I32 flags|U32 hash +Ap |bool |avhv_exists_ent|AV *ar|SV* keysv|U32 hash +Ap |SV** |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash +Ap |SV** |avhv_store_ent |AV *ar|SV* keysv|SV* val|U32 hash +Ap |HE* |avhv_iternext |AV *ar +Ap |SV* |avhv_iterval |AV *ar|HE* entry +Ap |HV* |avhv_keys |AV *ar +Apd |void |av_clear |AV* ar +Apd |SV* |av_delete |AV* ar|I32 key|I32 flags +Apd |bool |av_exists |AV* ar|I32 key +Apd |void |av_extend |AV* ar|I32 key +p |AV* |av_fake |I32 size|SV** svp +Apd |SV** |av_fetch |AV* ar|I32 key|I32 lval +Apd |void |av_fill |AV* ar|I32 fill +Apd |I32 |av_len |AV* ar +Apd |AV* |av_make |I32 size|SV** svp +Apd |SV* |av_pop |AV* ar +Apd |void |av_push |AV* ar|SV* val +p |void |av_reify |AV* ar +Apd |SV* |av_shift |AV* ar +Apd |SV** |av_store |AV* ar|I32 key|SV* val +Apd |void |av_undef |AV* ar +Apd |void |av_unshift |AV* ar|I32 num +p |OP* |bind_match |I32 type|OP* left|OP* pat +p |OP* |block_end |I32 floor|OP* seq +Ap |I32 |block_gimme +p |int |block_start |int full p |void |boot_core_UNIVERSAL -: Used in perl.c p |void |boot_core_PerlIO -Ap |void |call_list |I32 oldscope|NN AV *paramList -Apd |const PERL_CONTEXT * |caller_cx|I32 level \ - |NULLOK const PERL_CONTEXT **dbcxp -: Used in several source files -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 -ApR |UV |cast_uv |NV f +Ap |void |call_list |I32 oldscope|AV* av_list +p |bool |cando |Mode_t mode|Uid_t effective|Stat_t* statbufp +Ap |U32 |cast_ulong |NV f +Ap |I32 |cast_i32 |NV f +Ap |IV |cast_iv |NV f +Ap |UV |cast_uv |NV f #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) -ApR |I32 |my_chsize |int fd|Off_t length +Ap |I32 |my_chsize |int fd|Off_t length #endif -p |const COP*|closest_cop |NN const COP *cop|NULLOK const OP *o \ - |NULLOK const OP *curop|bool opnext -: Used in perly.y -pR |OP* |convert |I32 optype|I32 flags|NULLOK OP* o -: Used in op.c and perl.c -pM |PERL_CONTEXT* |create_eval_scope|U32 flags -Aprd |void |croak_sv |NN SV *baseex -: croak()'s first parm can be NULL. Otherwise, mod_perl breaks. -Afprd |void |croak |NULLOK const char* pat|... -Aprd |void |vcroak |NULLOK const char* pat|NULLOK va_list* args -Anprd |void |croak_no_modify -Anprd |void |croak_xs_usage |NN const CV *const cv \ - |NN const char *const params -npr |void |croak_no_mem -nprX |void |croak_popstack -#if defined(WIN32) -norx |void |win32_croak_not_implemented|NN const char * fname +#if defined(USE_5005THREADS) +Ap |MAGIC* |condpair_magic |SV *sv #endif +p |OP* |convert |I32 optype|I32 flags|OP* o +Afprd |void |croak |const char* pat|... +Apr |void |vcroak |const char* pat|va_list* args #if defined(PERL_IMPLICIT_CONTEXT) -Afnrp |void |croak_nocontext|NULLOK const char* pat|... -Afnp |OP* |die_nocontext |NULLOK const char* pat|... -Afnp |void |deb_nocontext |NN const char* pat|... -Afnp |char* |form_nocontext |NN const char* pat|... -Anp |void |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|... -Afnp |SV* |mess_nocontext |NN const char* pat|... -Afnp |void |warn_nocontext |NN const char* pat|... -Afnp |void |warner_nocontext|U32 err|NN const char* pat|... -Afnp |SV* |newSVpvf_nocontext|NN const char *const pat|... -Afnp |void |sv_catpvf_nocontext|NN SV *const sv|NN const char *const pat|... -Afnp |void |sv_setpvf_nocontext|NN SV *const sv|NN const char *const pat|... -Afnp |void |sv_catpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|... -Afnp |void |sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|... -Afnp |int |fprintf_nocontext|NN PerlIO *stream|NN const char *format|... -Afnp |int |printf_nocontext|NN const char *format|... -#endif -: Used in pp.c -p |SV * |core_prototype |NULLOK SV *sv|NN const char *name \ - |const int code|NULLOK int * const opnum -: Used in gv.c -p |OP * |coresub_op |NN SV *const coreargssv|const int code \ - |const int opnum -: Used in sv.c -EMXp |void |cv_ckproto_len_flags |NN const CV* cv|NULLOK const GV* gv\ - |NULLOK const char* p|const STRLEN len \ - |const U32 flags -: Used in pp.c and pp_sys.c -ApdR |SV* |gv_const_sv |NN GV* gv -ApdR |SV* |cv_const_sv |NULLOK const CV *const cv -pR |SV* |cv_const_sv_or_av|NULLOK const CV *const cv -: Used in pad.c -pR |SV* |op_const_sv |NULLOK const OP* o|NULLOK CV* cv -Apd |void |cv_undef |NN CV* cv -p |void |cv_forget_slab |NN CV *cv -Ap |void |cx_dump |NN PERL_CONTEXT* cx -Ap |SV* |filter_add |NULLOK filter_t funcp|NULLOK SV* datasv -Ap |void |filter_del |NN filter_t funcp -ApR |I32 |filter_read |int idx|NN SV *buf_sv|int maxlen -ApPR |char** |get_op_descs -ApPR |char** |get_op_names -: FIXME discussion on p5p -pPR |const char* |get_no_modify -: FIXME discussion on p5p -pPR |U32* |get_opargs -ApPR |PPADDR_t*|get_ppaddr -: Used by CXINC, which appears to be in widespread use -ApR |I32 |cxinc -Afp |void |deb |NN const char* pat|... -Ap |void |vdeb |NN const char* pat|NULLOK va_list* args +Afnrp |void |croak_nocontext|const char* pat|... +Afnp |OP* |die_nocontext |const char* pat|... +Afnp |void |deb_nocontext |const char* pat|... +Afnp |char* |form_nocontext |const char* pat|... +Anp |void |load_module_nocontext|U32 flags|SV* name|SV* ver|... +Afnp |SV* |mess_nocontext |const char* pat|... +Afnp |void |warn_nocontext |const char* pat|... +Afnp |void |warner_nocontext|U32 err|const char* pat|... +Afnp |SV* |newSVpvf_nocontext|const char* pat|... +Afnp |void |sv_catpvf_nocontext|SV* sv|const char* pat|... +Afnp |void |sv_setpvf_nocontext|SV* sv|const char* pat|... +Afnp |void |sv_catpvf_mg_nocontext|SV* sv|const char* pat|... +Afnp |void |sv_setpvf_mg_nocontext|SV* sv|const char* pat|... +Afnp |int |fprintf_nocontext|PerlIO* stream|const char* fmt|... +Afnp |int |printf_nocontext|const char* fmt|... +#endif +p |void |cv_ckproto |CV* cv|GV* gv|char* p +p |CV* |cv_clone |CV* proto +Apd |SV* |cv_const_sv |CV* cv +p |SV* |op_const_sv |OP* o|CV* cv +Ap |void |cv_undef |CV* cv +Ap |void |cx_dump |PERL_CONTEXT* cs +Ap |SV* |filter_add |filter_t funcp|SV* datasv +Ap |void |filter_del |filter_t funcp +Ap |I32 |filter_read |int idx|SV* buffer|int maxlen +Ap |char** |get_op_descs +Ap |char** |get_op_names +p |char* |get_no_modify +p |U32* |get_opargs +Ap |PPADDR_t*|get_ppaddr +p |I32 |cxinc +Afp |void |deb |const char* pat|... +Ap |void |vdeb |const char* pat|va_list* args Ap |void |debprofdump -Ap |I32 |debop |NN const OP* o +Ap |I32 |debop |OP* o Ap |I32 |debstack Ap |I32 |debstackptrs -pR |SV * |defelem_target |NN SV *sv|NULLOK MAGIC *mg -Anp |char* |delimcpy |NN char* to|NN const char* toend|NN const char* from \ - |NN const char* fromend|int delim|NN I32* retlen -: Used in op.c, perl.c -pM |void |delete_eval_scope -Apd |OP* |die_sv |NN SV *baseex -Afpd |OP* |die |NULLOK const char* pat|... -: Used in util.c -pr |void |die_unwind |NN SV* msv +Ap |char* |delimcpy |char* to|char* toend|char* from \ + |char* fromend|int delim|I32* retlen +p |void |deprecate |char* s +p |void |deprecate_old |char* s +Afp |OP* |die |const char* pat|... +p |OP* |vdie |const char* pat|va_list* args +p |OP* |die_where |char* message|STRLEN msglen Ap |void |dounwind |I32 cxix -: FIXME -pmb |bool |do_aexec |NULLOK SV* really|NN SV** mark|NN SV** sp -: Used in pp_sys.c -p |bool |do_aexec5 |NULLOK SV* really|NN SV** mark|NN SV** sp|int fd|int do_report -Ap |int |do_binmode |NN PerlIO *fp|int iotype|int mode -: Used in pp.c -Ap |bool |do_close |NULLOK GV* gv|bool not_implicit -: Defined in doio.c, used only in pp_sys.c -p |bool |do_eof |NN GV* gv - -#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION -pm |bool |do_exec |NN const char* cmd -#else -p |bool |do_exec |NN const char* cmd -#endif - -#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS) -Ap |int |do_aspawn |NULLOK SV* really|NN SV** mark|NN SV** sp -Ap |int |do_spawn |NN char* cmd -Ap |int |do_spawn_nowait|NN char* cmd +p |bool |do_aexec |SV* really|SV** mark|SV** sp +p |bool |do_aexec5 |SV* really|SV** mark|SV** sp|int fd|int flag +Ap |int |do_binmode |PerlIO *fp|int iotype|int mode +p |void |do_chop |SV* asv|SV* sv +Ap |bool |do_close |GV* gv|bool not_implicit +p |bool |do_eof |GV* gv +p |bool |do_exec |char* cmd +#if defined(WIN32) +Ap |int |do_aspawn |SV* really|SV** mark|SV** sp +Ap |int |do_spawn |char* cmd +Ap |int |do_spawn_nowait|char* cmd #endif #if !defined(WIN32) -p |bool |do_exec3 |NN const char *incmd|int fd|int do_report +p |bool |do_exec3 |char* cmd|int fd|int flag #endif p |void |do_execfree -#if defined(PERL_IN_DOIO_C) -s |void |exec_failed |NN const char *cmd|int fd|int do_report -#endif #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) -: Defined in doio.c, used only in pp_sys.c -p |I32 |do_ipcctl |I32 optype|NN SV** mark|NN SV** sp -: Defined in doio.c, used only in pp_sys.c -p |I32 |do_ipcget |I32 optype|NN SV** mark|NN SV** sp -: Defined in doio.c, used only in pp_sys.c -p |I32 |do_msgrcv |NN SV** mark|NN SV** sp -: Defined in doio.c, used only in pp_sys.c -p |I32 |do_msgsnd |NN SV** mark|NN SV** sp -: Defined in doio.c, used only in pp_sys.c -p |I32 |do_semop |NN SV** mark|NN SV** sp -: Defined in doio.c, used only in pp_sys.c -p |I32 |do_shmio |I32 optype|NN SV** mark|NN SV** sp -#endif -Ap |void |do_join |NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp -: Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl -: p |OP* |do_kv -: used in pp.c, pp_hot.c -pR |I32 |do_ncmp |NN SV *const left|NN SV *const right -Apmb |bool |do_open |NN GV* gv|NN const char* name|I32 len|int as_raw \ - |int rawmode|int rawperm|NULLOK PerlIO* supplied_fp -Ap |bool |do_open9 |NN GV *gv|NN const char *name|I32 len|int as_raw \ - |int rawmode|int rawperm|NULLOK PerlIO *supplied_fp \ - |NN SV *svs|I32 num -#if defined(PERL_IN_DOIO_C) -s |IO * |openn_setup |NN GV *gv|NN char *mode|NN PerlIO **saveifp \ - |NN PerlIO **saveofp|NN int *savefd \ - |NN char *savetype -s |bool |openn_cleanup |NN GV *gv|NN IO *io|NULLOK PerlIO *fp \ - |NN char *mode|NN const char *oname \ - |NULLOK PerlIO *saveifp|NULLOK PerlIO *saveofp \ - |int savefd|char savetype|int writing \ - |bool was_fdopen|NULLOK const char *type -#endif -Ap |bool |do_openn |NN GV *gv|NN const char *oname|I32 len \ - |int as_raw|int rawmode|int rawperm \ - |NULLOK PerlIO *supplied_fp|NULLOK SV **svp \ - |I32 num -Mp |bool |do_open_raw |NN GV *gv|NN const char *oname|STRLEN len \ - |int rawmode|int rawperm -Mp |bool |do_open6 |NN GV *gv|NN const char *oname|STRLEN len \ - |NULLOK PerlIO *supplied_fp|NULLOK SV **svp \ - |U32 num -: Used in pp_hot.c and pp_sys.c -p |bool |do_print |NULLOK SV* sv|NN PerlIO* fp -: Used in pp_sys.c -pR |OP* |do_readline -: Defined in doio.c, used only in pp_sys.c -p |bool |do_seek |NULLOK GV* gv|Off_t pos|int whence -Ap |void |do_sprintf |NN SV* sv|I32 len|NN SV** sarg -: Defined in doio.c, used only in pp_sys.c -p |Off_t |do_sysseek |NN GV* gv|Off_t pos|int whence -: Defined in doio.c, used only in pp_sys.c -pR |Off_t |do_tell |NN GV* gv -: Defined in doop.c, used only in pp.c -p |I32 |do_trans |NN SV* sv -: Used in my.c and pp.c -p |UV |do_vecget |NN SV* sv|SSize_t offset|int size -: Defined in doop.c, used only in mg.c (with /* XXX slurp this routine */) -p |void |do_vecset |NN SV* sv -: Defined in doop.c, used only in pp.c -p |void |do_vop |I32 optype|NN SV* sv|NN SV* left|NN SV* right -: Used in perly.y -p |OP* |dofile |NN OP* term|I32 force_builtin -ApR |I32 |dowantarray +p |I32 |do_ipcctl |I32 optype|SV** mark|SV** sp +p |I32 |do_ipcget |I32 optype|SV** mark|SV** sp +p |I32 |do_msgrcv |SV** mark|SV** sp +p |I32 |do_msgsnd |SV** mark|SV** sp +p |I32 |do_semop |SV** mark|SV** sp +p |I32 |do_shmio |I32 optype|SV** mark|SV** sp +#endif +Ap |void |do_join |SV* sv|SV* del|SV** mark|SV** sp +p |OP* |do_kv +Ap |bool |do_open |GV* gv|char* name|I32 len|int as_raw \ + |int rawmode|int rawperm|PerlIO* supplied_fp +Ap |bool |do_open9 |GV *gv|char *name|I32 len|int as_raw \ + |int rawmode|int rawperm|PerlIO *supplied_fp \ + |SV *svs|I32 num +Ap |bool |do_openn |GV *gv|char *name|I32 len|int as_raw \ + |int rawmode|int rawperm|PerlIO *supplied_fp \ + |SV **svp|I32 num +p |void |do_pipe |SV* sv|GV* rgv|GV* wgv +p |bool |do_print |SV* sv|PerlIO* fp +p |OP* |do_readline +p |I32 |do_chomp |SV* sv +p |bool |do_seek |GV* gv|Off_t pos|int whence +Ap |void |do_sprintf |SV* sv|I32 len|SV** sarg +p |Off_t |do_sysseek |GV* gv|Off_t pos|int whence +p |Off_t |do_tell |GV* gv +p |I32 |do_trans |SV* sv +p |UV |do_vecget |SV* sv|I32 offset|I32 size +p |void |do_vecset |SV* sv +p |void |do_vop |I32 optype|SV* sv|SV* left|SV* right +p |OP* |dofile |OP* term +Ap |I32 |dowantarray Ap |void |dump_all -p |void |dump_all_perl |bool justperl Ap |void |dump_eval -Ap |void |dump_form |NN const GV* gv -Ap |void |gv_dump |NN GV* gv -Ap |void |op_dump |NN const OP *o -Ap |void |pmop_dump |NULLOK PMOP* pm -Ap |void |dump_packsubs |NN const HV* stash -p |void |dump_packsubs_perl |NN const HV* stash|bool justperl -Ap |void |dump_sub |NN const GV* gv -p |void |dump_sub_perl |NN const GV* gv|bool justperl -Apd |void |fbm_compile |NN SV* sv|U32 flags -ApdR |char* |fbm_instr |NN unsigned char* big|NN unsigned char* bigend \ - |NN SV* littlestr|U32 flags -p |CV * |find_lexical_cv|PADOFFSET off -pR |OP * |parse_subsignature -: Defined in util.c, used only in perl.c -p |char* |find_script |NN const char *scriptname|bool dosearch \ - |NULLOK const char *const *const search_ext|I32 flags -#if defined(PERL_IN_OP_C) -s |OP* |force_list |NULLOK OP* arg -i |OP* |op_integerize |NN OP *o -i |OP* |op_std_init |NN OP *o -: FIXME -s |OP* |fold_constants |NN OP *o -#endif -Afpd |char* |form |NN const char* pat|... -Ap |char* |vform |NN const char* pat|NULLOK va_list* args +#if defined(DUMP_FDS) +Ap |void |dump_fds |char* s +#endif +Ap |void |dump_form |GV* gv +Ap |void |gv_dump |GV* gv +Ap |void |op_dump |OP* arg +Ap |void |pmop_dump |PMOP* pm +Ap |void |dump_packsubs |HV* stash +Ap |void |dump_sub |GV* gv +Apd |void |fbm_compile |SV* sv|U32 flags +Apd |char* |fbm_instr |unsigned char* big|unsigned char* bigend \ + |SV* littlesv|U32 flags +p |char* |find_script |char *scriptname|bool dosearch \ + |char **search_ext|I32 flags +#if defined(USE_5005THREADS) +p |PADOFFSET|find_threadsv|const char *name +#endif +p |OP* |force_list |OP* arg +p |OP* |fold_constants |OP* arg +Afpd |char* |form |const char* pat|... +Ap |char* |vform |const char* pat|va_list* args Ap |void |free_tmps -#if defined(PERL_IN_OP_C) -s |OP* |gen_constant_list|NULLOK OP* o -#endif +p |OP* |gen_constant_list|OP* o #if !defined(HAS_GETENV_LEN) -: Used in hv.c -p |char* |getenv_len |NN const char *env_elem|NN unsigned long *len -#endif -: Used in pp_ctl.c and pp_hot.c -pox |void |get_db_sub |NULLOK SV **svp|NN CV *cv -Ap |void |gp_free |NULLOK GV* gv -Ap |GP* |gp_ref |NULLOK GP* gp -Ap |GV* |gv_add_by_type |NULLOK GV *gv|svtype type -Apmb |GV* |gv_AVadd |NULLOK GV *gv -Apmb |GV* |gv_HVadd |NULLOK GV *gv -Apmb |GV* |gv_IOadd |NULLOK GV* gv -AmR |GV* |gv_autoload4 |NULLOK HV* stash|NN const char* name \ - |STRLEN len|I32 method -ApR |GV* |gv_autoload_sv |NULLOK HV* stash|NN SV* namesv|U32 flags -ApR |GV* |gv_autoload_pv |NULLOK HV* stash|NN const char* namepv \ - |U32 flags -ApR |GV* |gv_autoload_pvn |NULLOK HV* stash|NN const char* name \ - |STRLEN len|U32 flags -Ap |void |gv_check |NN HV* stash -Ap |void |gv_efullname |NN SV* sv|NN const GV* gv -Apmb |void |gv_efullname3 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix -Ap |void |gv_efullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain -Ap |GV* |gv_fetchfile |NN const char* name -Ap |GV* |gv_fetchfile_flags|NN const char *const name|const STRLEN len\ - |const U32 flags -Amd |GV* |gv_fetchmeth |NULLOK HV* stash|NN const char* name \ - |STRLEN len|I32 level -Apd |GV* |gv_fetchmeth_sv |NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags -Apd |GV* |gv_fetchmeth_pv |NULLOK HV* stash|NN const char* name \ - |I32 level|U32 flags -Apd |GV* |gv_fetchmeth_pvn |NULLOK HV* stash|NN const char* name \ - |STRLEN len|I32 level|U32 flags -Amd |GV* |gv_fetchmeth_autoload |NULLOK HV* stash \ - |NN const char* name|STRLEN len \ - |I32 level -Apd |GV* |gv_fetchmeth_sv_autoload |NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags -Apd |GV* |gv_fetchmeth_pv_autoload |NULLOK HV* stash|NN const char* name \ - |I32 level|U32 flags -Apd |GV* |gv_fetchmeth_pvn_autoload |NULLOK HV* stash|NN const char* name \ - |STRLEN len|I32 level|U32 flags -Apdmb |GV* |gv_fetchmethod |NN HV* stash|NN const char* name -Apd |GV* |gv_fetchmethod_autoload|NN HV* stash|NN const char* name \ +p |char* |getenv_len |const char* key|unsigned long *len +#endif +Ap |void |gp_free |GV* gv +Ap |GP* |gp_ref |GP* gp +Ap |GV* |gv_AVadd |GV* gv +Ap |GV* |gv_HVadd |GV* gv +Ap |GV* |gv_IOadd |GV* gv +Ap |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \ + |I32 method +Ap |void |gv_check |HV* stash +Ap |void |gv_efullname |SV* sv|GV* gv +Ap |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix +Ap |void |gv_efullname4 |SV* sv|GV* gv|const char* prefix|bool keepmain +Ap |GV* |gv_fetchfile |const char* name +Apd |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \ + |I32 level +Apd |GV* |gv_fetchmeth_autoload |HV* stash|const char* name|STRLEN len \ + |I32 level +Apd |GV* |gv_fetchmethod |HV* stash|const char* name +Apd |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \ |I32 autoload -ApM |GV* |gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags -ApM |GV* |gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \ - |U32 flags -ApM |GV* |gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \ - |const STRLEN len|U32 flags -Ap |GV* |gv_fetchpv |NN const char *nambeg|I32 add|const svtype sv_type -Ap |void |gv_fullname |NN SV* sv|NN const GV* gv -Apmb |void |gv_fullname3 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix -Ap |void |gv_fullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain -: Used in scope.c -pMox |GP * |newGP |NN GV *const gv -pX |void |cvgv_set |NN CV* cv|NULLOK GV* gv -pX |void |cvstash_set |NN CV* cv|NULLOK HV* stash -Amd |void |gv_init |NN GV* gv|NULLOK HV* stash \ - |NN const char* name|STRLEN len|int multi -Ap |void |gv_init_sv |NN GV* gv|NULLOK HV* stash|NN SV* namesv|U32 flags -Ap |void |gv_init_pv |NN GV* gv|NULLOK HV* stash|NN const char* name \ - |U32 flags -Ap |void |gv_init_pvn |NN GV* gv|NULLOK HV* stash|NN const char* name \ - |STRLEN len|U32 flags -Ap |void |gv_name_set |NN GV* gv|NN const char *name|U32 len|U32 flags -px |GV * |gv_override |NN const char * const name \ - |const STRLEN len -XMpd |void |gv_try_downgrade|NN GV* gv -Apd |HV* |gv_stashpv |NN const char* name|I32 flags -Apd |HV* |gv_stashpvn |NN const char* name|U32 namelen|I32 flags -Apd |HV* |gv_stashsv |NN SV* sv|I32 flags -Apd |void |hv_clear |NULLOK HV *hv -: used in SAVEHINTS() and op.c -ApdR |HV * |hv_copy_hints_hv|NULLOK HV *const ohv -Ap |void |hv_delayfree_ent|NN HV *hv|NULLOK HE *entry -Abmd |SV* |hv_delete |NULLOK HV *hv|NN const char *key|I32 klen \ - |I32 flags -Abmd |SV* |hv_delete_ent |NULLOK HV *hv|NN SV *keysv|I32 flags|U32 hash -AbmdR |bool |hv_exists |NULLOK HV *hv|NN const char *key|I32 klen -AbmdR |bool |hv_exists_ent |NULLOK HV *hv|NN SV *keysv|U32 hash -Abmd |SV** |hv_fetch |NULLOK HV *hv|NN const char *key|I32 klen \ - |I32 lval -Abmd |HE* |hv_fetch_ent |NULLOK HV *hv|NN SV *keysv|I32 lval|U32 hash -Ap |void* |hv_common |NULLOK HV *hv|NULLOK SV *keysv \ - |NULLOK const char* key|STRLEN klen|int flags \ - |int action|NULLOK SV *val|U32 hash -Ap |void* |hv_common_key_len|NULLOK HV *hv|NN const char *key \ - |I32 klen_i32|const int action|NULLOK SV *val \ - |const U32 hash -Apod |STRLEN |hv_fill |NN HV *const hv -Ap |void |hv_free_ent |NN HV *hv|NULLOK HE *entry -Apd |I32 |hv_iterinit |NN HV *hv -ApdR |char* |hv_iterkey |NN HE* entry|NN I32* retlen -ApdR |SV* |hv_iterkeysv |NN HE* entry -ApdRbm |HE* |hv_iternext |NN HV *hv -ApdR |SV* |hv_iternextsv |NN HV *hv|NN char **key|NN I32 *retlen -ApMdR |HE* |hv_iternext_flags|NN HV *hv|I32 flags -ApdR |SV* |hv_iterval |NN HV *hv|NN HE *entry -Ap |void |hv_ksplit |NN HV *hv|IV newmax -Apdbm |void |hv_magic |NN HV *hv|NULLOK GV *gv|int how -#if defined(PERL_IN_HV_C) -s |SV * |refcounted_he_value |NN const struct refcounted_he *he -#endif -Xpd |HV * |refcounted_he_chain_2hv|NULLOK const struct refcounted_he *c|U32 flags -Xpd |SV * |refcounted_he_fetch_pvn|NULLOK const struct refcounted_he *chain \ - |NN const char *keypv|STRLEN keylen|U32 hash|U32 flags -Xpd |SV * |refcounted_he_fetch_pv|NULLOK const struct refcounted_he *chain \ - |NN const char *key|U32 hash|U32 flags -Xpd |SV * |refcounted_he_fetch_sv|NULLOK const struct refcounted_he *chain \ - |NN SV *key|U32 hash|U32 flags -Xpd |struct refcounted_he *|refcounted_he_new_pvn \ - |NULLOK struct refcounted_he *parent \ - |NN const char *keypv|STRLEN keylen \ - |U32 hash|NULLOK SV *value|U32 flags -Xpd |struct refcounted_he *|refcounted_he_new_pv \ - |NULLOK struct refcounted_he *parent \ - |NN const char *key \ - |U32 hash|NULLOK SV *value|U32 flags -Xpd |struct refcounted_he *|refcounted_he_new_sv \ - |NULLOK struct refcounted_he *parent \ - |NN SV *key \ - |U32 hash|NULLOK SV *value|U32 flags -Xpd |void |refcounted_he_free|NULLOK struct refcounted_he *he -Xpd |struct refcounted_he *|refcounted_he_inc|NULLOK struct refcounted_he *he -Abmd |SV** |hv_store |NULLOK HV *hv|NULLOK const char *key \ - |I32 klen|NULLOK SV *val|U32 hash -Abmd |HE* |hv_store_ent |NULLOK HV *hv|NULLOK SV *key|NULLOK SV *val\ +Ap |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type +Ap |void |gv_fullname |SV* sv|GV* gv +Ap |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix +Ap |void |gv_fullname4 |SV* sv|GV* gv|const char* prefix|bool keepmain +Ap |void |gv_init |GV* gv|HV* stash|const char* name \ + |STRLEN len|int multi +Apd |HV* |gv_stashpv |const char* name|I32 create +Ap |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create +Apd |HV* |gv_stashsv |SV* sv|I32 create +Apd |void |hv_clear |HV* tb +Ap |void |hv_delayfree_ent|HV* hv|HE* entry +Apd |SV* |hv_delete |HV* tb|const char* key|I32 klen|I32 flags +Apd |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash +Apd |bool |hv_exists |HV* tb|const char* key|I32 klen +Apd |bool |hv_exists_ent |HV* tb|SV* key|U32 hash +Apd |SV** |hv_fetch |HV* tb|const char* key|I32 klen|I32 lval +Apd |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash +Ap |void |hv_free_ent |HV* hv|HE* entry +Apd |I32 |hv_iterinit |HV* tb +Apd |char* |hv_iterkey |HE* entry|I32* retlen +Apd |SV* |hv_iterkeysv |HE* entry +Apd |HE* |hv_iternext |HV* tb +Apd |SV* |hv_iternextsv |HV* hv|char** key|I32* retlen +ApMd |HE* |hv_iternext_flags|HV* tb|I32 flags +Apd |SV* |hv_iterval |HV* tb|HE* entry +Ap |void |hv_ksplit |HV* hv|IV newmax +Apd |void |hv_magic |HV* hv|GV* gv|int how +Apd |SV** |hv_store |HV* tb|const char* key|I32 klen|SV* val \ |U32 hash -AbmM |SV** |hv_store_flags |NULLOK HV *hv|NULLOK const char *key \ - |I32 klen|NULLOK SV *val|U32 hash|int flags -Amd |void |hv_undef |NULLOK HV *hv -poX |void |hv_undef_flags |NULLOK HV *hv|U32 flags -Am |I32 |ibcmp |NN const char* a|NN const char* b|I32 len -AnpP |I32 |foldEQ |NN const char* a|NN const char* b|I32 len -Am |I32 |ibcmp_locale |NN const char* a|NN const char* b|I32 len -AnpP |I32 |foldEQ_locale |NN const char* a|NN const char* b|I32 len -Am |I32 |ibcmp_utf8 |NN const char *s1|NULLOK char **pe1|UV l1 \ - |bool u1|NN const char *s2|NULLOK char **pe2 \ - |UV l2|bool u2 -Amd |I32 |foldEQ_utf8 |NN const char *s1|NULLOK char **pe1|UV l1 \ - |bool u1|NN const char *s2|NULLOK char **pe2 \ - |UV l2|bool u2 -AMp |I32 |foldEQ_utf8_flags |NN const char *s1|NULLOK char **pe1|UV l1 \ - |bool u1|NN const char *s2|NULLOK char **pe2 \ - |UV l2|bool u2|U32 flags -AnpP |I32 |foldEQ_latin1 |NN const char* a|NN const char* b|I32 len -#if defined(PERL_IN_DOIO_C) -sR |bool |ingroup |Gid_t testgid|bool effective -#endif -: Used in toke.c -p |void |init_argv_symbols|int argc|NN char **argv -: Used in pp_ctl.c -po |void |init_dbargs -: Used in mg.c +Apd |HE* |hv_store_ent |HV* tb|SV* key|SV* val|U32 hash +ApM |SV** |hv_store_flags |HV* tb|const char* key|I32 klen|SV* val \ + |U32 hash|int flags +Apd |void |hv_undef |HV* tb +Ap |I32 |ibcmp |const char* a|const char* b|I32 len +Ap |I32 |ibcmp_locale |const char* a|const char* b|I32 len +Apd |I32 |ibcmp_utf8 |const char* a|char **pe1|UV l1|bool u1|const char* b|char **pe2|UV l2|bool u2 +p |bool |ingroup |Gid_t testgid|Uid_t effective +p |void |init_argv_symbols|int|char ** p |void |init_debugger Ap |void |init_stacks -Ap |void |init_tm |NN struct tm *ptm -: Used in perly.y -AnpPR |char* |instr |NN const char* big|NN const char* little -: Used in sv.c -p |bool |io_close |NN IO* io|bool not_implicit -: Used in perly.y -pR |OP* |invert |NULLOK OP* cmd -ApR |I32 |is_lvalue_sub -: Used in cop.h -XopR |I32 |was_lvalue_sub -ADMpPR |U32 |to_uni_upper_lc|U32 c -ADMpPR |U32 |to_uni_title_lc|U32 c -ADMpPR |U32 |to_uni_lower_lc|U32 c -ADMpPR |bool |is_uni_alnum |UV c -ADMpPR |bool |is_uni_alnumc |UV c -ADMpPR |bool |is_uni_idfirst |UV c -ADMpPR |bool |is_uni_alpha |UV c -ADMpPR |bool |is_uni_ascii |UV c -ADMpPR |bool |is_uni_blank |UV c -ADMpPR |bool |is_uni_space |UV c -ADMpPR |bool |is_uni_cntrl |UV c -ADMpPR |bool |is_uni_graph |UV c -ADMpPR |bool |is_uni_digit |UV c -ADMpPR |bool |is_uni_upper |UV c -ADMpPR |bool |is_uni_lower |UV c -ADMpPR |bool |is_uni_print |UV c -ADMpPR |bool |is_uni_punct |UV c -ADMpPR |bool |is_uni_xdigit |UV c -AMp |UV |to_uni_upper |UV c|NN U8 *p|NN STRLEN *lenp -AMp |UV |to_uni_title |UV c|NN U8 *p|NN STRLEN *lenp -iDMPR |bool |isIDFIRST_lazy |NN const char* p -iDMPR |bool |isALNUM_lazy |NN const char* p -#ifdef PERL_IN_UTF8_C -sR |U8 |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp -#endif -#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) -EXp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags -#endif -#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C) -p |UV |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s -#endif -AMp |UV |to_uni_lower |UV c|NN U8 *p|NN STRLEN *lenp -AMmp |UV |to_uni_fold |UV c|NN U8 *p|NN STRLEN *lenp -AMp |UV |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags -ADMpPR |bool |is_uni_alnum_lc|UV c -ADMpPR |bool |is_uni_alnumc_lc|UV c -ADMpPR |bool |is_uni_idfirst_lc|UV c -AMpR |bool |_is_uni_perl_idcont|UV c -AMpR |bool |_is_uni_perl_idstart|UV c -ADMpPR |bool |is_uni_alpha_lc|UV c -ADMpPR |bool |is_uni_ascii_lc|UV c -ADMpPR |bool |is_uni_space_lc|UV c -ADMpPR |bool |is_uni_blank_lc|UV c -ADMpPR |bool |is_uni_cntrl_lc|UV c -ADMpPR |bool |is_uni_graph_lc|UV c -ADMpPR |bool |is_uni_digit_lc|UV c -ADMpPR |bool |is_uni_upper_lc|UV c -ADMpPR |bool |is_uni_lower_lc|UV c -ADMpPR |bool |is_uni_print_lc|UV c -ADMpPR |bool |is_uni_punct_lc|UV c -ADMpPR |bool |is_uni_xdigit_lc|UV c -Anpd |bool |is_ascii_string|NN const U8 *s|STRLEN len -AnpdD |STRLEN |is_utf8_char |NN const U8 *s -Anpd |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end -Anpd |bool |is_utf8_string |NN const U8 *s|STRLEN len -Anpdmb |bool |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **ep -Anpd |bool |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el -AMpR |bool |_is_uni_FOO|const U8 classnum|const UV c -AMpR |bool |_is_utf8_FOO|const U8 classnum|NN const U8 *p -ADMpR |bool |is_utf8_alnum |NN const U8 *p -ADMpR |bool |is_utf8_alnumc |NN const U8 *p -ADMpR |bool |is_utf8_idfirst|NN const U8 *p -ADMpR |bool |is_utf8_xidfirst|NN const U8 *p -AMpR |bool |_is_utf8_perl_idcont|NN const U8 *p -AMpR |bool |_is_utf8_perl_idstart|NN const U8 *p -ADMpR |bool |is_utf8_idcont |NN const U8 *p -ADMpR |bool |is_utf8_xidcont |NN const U8 *p -ADMpR |bool |is_utf8_alpha |NN const U8 *p -ADMpR |bool |is_utf8_ascii |NN const U8 *p -ADMpR |bool |is_utf8_blank |NN const U8 *p -ADMpR |bool |is_utf8_space |NN const U8 *p -ADMpR |bool |is_utf8_perl_space |NN const U8 *p -ADMpR |bool |is_utf8_perl_word |NN const U8 *p -ADMpR |bool |is_utf8_cntrl |NN const U8 *p -ADMpR |bool |is_utf8_digit |NN const U8 *p -ADMpR |bool |is_utf8_posix_digit |NN const U8 *p -ADMpR |bool |is_utf8_graph |NN const U8 *p -ADMpR |bool |is_utf8_upper |NN const U8 *p -ADMpR |bool |is_utf8_lower |NN const U8 *p -ADMpR |bool |is_utf8_print |NN const U8 *p -ADMpR |bool |is_utf8_punct |NN const U8 *p -ADMpR |bool |is_utf8_xdigit |NN const U8 *p -AMpR |bool |_is_utf8_mark |NN const U8 *p -ADMpR |bool |is_utf8_mark |NN const U8 *p -: Used in perly.y -p |OP* |jmaybe |NN OP *o -: Used in pp.c -pP |I32 |keyword |NN const char *name|I32 len|bool all_keywords -#if defined(PERL_IN_OP_C) -s |void |inplace_aassign |NN OP* o -#endif +Ap |void |init_tm |struct tm *ptm +p |U32 |intro_my +Ap |char* |instr |const char* big|const char* little +p |bool |io_close |IO* io|bool not_implicit +p |OP* |invert |OP* cmd +dp |bool |is_gv_magical |char *name|STRLEN len|U32 flags +Ap |I32 |is_lvalue_sub +Ap |U32 |to_uni_upper_lc|U32 c +Ap |U32 |to_uni_title_lc|U32 c +Ap |U32 |to_uni_lower_lc|U32 c +Ap |bool |is_uni_alnum |UV c +Ap |bool |is_uni_alnumc |UV c +Ap |bool |is_uni_idfirst |UV c +Ap |bool |is_uni_alpha |UV c +Ap |bool |is_uni_ascii |UV c +Ap |bool |is_uni_space |UV c +Ap |bool |is_uni_cntrl |UV c +Ap |bool |is_uni_graph |UV c +Ap |bool |is_uni_digit |UV c +Ap |bool |is_uni_upper |UV c +Ap |bool |is_uni_lower |UV c +Ap |bool |is_uni_print |UV c +Ap |bool |is_uni_punct |UV c +Ap |bool |is_uni_xdigit |UV c +Ap |UV |to_uni_upper |UV c|U8 *p|STRLEN *lenp +Ap |UV |to_uni_title |UV c|U8 *p|STRLEN *lenp +Ap |UV |to_uni_lower |UV c|U8 *p|STRLEN *lenp +Ap |UV |to_uni_fold |UV c|U8 *p|STRLEN *lenp +Ap |bool |is_uni_alnum_lc|UV c +Ap |bool |is_uni_alnumc_lc|UV c +Ap |bool |is_uni_idfirst_lc|UV c +Ap |bool |is_uni_alpha_lc|UV c +Ap |bool |is_uni_ascii_lc|UV c +Ap |bool |is_uni_space_lc|UV c +Ap |bool |is_uni_cntrl_lc|UV c +Ap |bool |is_uni_graph_lc|UV c +Ap |bool |is_uni_digit_lc|UV c +Ap |bool |is_uni_upper_lc|UV c +Ap |bool |is_uni_lower_lc|UV c +Ap |bool |is_uni_print_lc|UV c +Ap |bool |is_uni_punct_lc|UV c +Ap |bool |is_uni_xdigit_lc|UV c +Apd |STRLEN |is_utf8_char |U8 *p +Apd |bool |is_utf8_string |U8 *s|STRLEN len +Ap |bool |is_utf8_alnum |U8 *p +Ap |bool |is_utf8_alnumc |U8 *p +Ap |bool |is_utf8_idfirst|U8 *p +Ap |bool |is_utf8_idcont |U8 *p +Ap |bool |is_utf8_alpha |U8 *p +Ap |bool |is_utf8_ascii |U8 *p +Ap |bool |is_utf8_space |U8 *p +Ap |bool |is_utf8_cntrl |U8 *p +Ap |bool |is_utf8_digit |U8 *p +Ap |bool |is_utf8_graph |U8 *p +Ap |bool |is_utf8_upper |U8 *p +Ap |bool |is_utf8_lower |U8 *p +Ap |bool |is_utf8_print |U8 *p +Ap |bool |is_utf8_punct |U8 *p +Ap |bool |is_utf8_xdigit |U8 *p +Ap |bool |is_utf8_mark |U8 *p +p |OP* |jmaybe |OP* arg +p |I32 |keyword |char* d|I32 len Ap |void |leave_scope |I32 base -: Public lexer API -AMpd |void |lex_start |NULLOK SV* line|NULLOK PerlIO *rsfp|U32 flags -AMpd |bool |lex_bufutf8 -AMpd |char* |lex_grow_linestr|STRLEN len -AMpd |void |lex_stuff_pvn |NN const char* pv|STRLEN len|U32 flags -AMpd |void |lex_stuff_pv |NN const char* pv|U32 flags -AMpd |void |lex_stuff_sv |NN SV* sv|U32 flags -AMpd |void |lex_unstuff |NN char* ptr -AMpd |void |lex_read_to |NN char* ptr -AMpd |void |lex_discard_to |NN char* ptr -AMpd |bool |lex_next_chunk |U32 flags -AMpd |I32 |lex_peek_unichar|U32 flags -AMpd |I32 |lex_read_unichar|U32 flags -AMpd |void |lex_read_space |U32 flags -: Public parser API -AMpd |OP* |parse_arithexpr|U32 flags -AMpd |OP* |parse_termexpr |U32 flags -AMpd |OP* |parse_listexpr |U32 flags -AMpd |OP* |parse_fullexpr |U32 flags -AMpd |OP* |parse_block |U32 flags -AMpd |OP* |parse_barestmt |U32 flags -AMpd |SV* |parse_label |U32 flags -AMpd |OP* |parse_fullstmt |U32 flags -AMpd |OP* |parse_stmtseq |U32 flags -: Used in various files -Apd |void |op_null |NN OP* o -: FIXME. Used by Data::Alias -EXp |void |op_clear |NN OP* o -Ap |void |op_refcnt_lock -Ap |void |op_refcnt_unlock -#if defined(PERL_IN_OP_C) -s |OP* |listkids |NULLOK OP* o -#endif -: Used in S_doeval in pp_ctl.c -p |OP* |list |NULLOK OP* o -Apd |void |load_module|U32 flags|NN SV* name|NULLOK SV* ver|... -Ap |void |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args -: Used in perly.y -p |OP* |localize |NN OP *o|I32 lex -ApdR |I32 |looks_like_number|NN SV *const sv -Apd |UV |grok_bin |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) -EMsR |char |grok_bslash_c |const char source|const bool output_warning -EMsR |bool |grok_bslash_o |NN char** s|NN UV* uv \ - |NN const char** error_msg \ - |const bool output_warning \ - |const bool strict \ - |const bool silence_non_portable \ - |const bool utf8 -EMiR |bool |grok_bslash_x |NN char** s|NN UV* uv \ - |NN const char** error_msg \ - |const bool output_warning \ - |const bool strict \ - |const bool silence_non_portable \ - |const bool utf8 -EMsPR |char*|form_short_octal_warning|NN const char * const s \ - |const STRLEN len -#endif -Apd |UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result -Apd |int |grok_number |NN const char *pv|STRLEN len|NULLOK UV *valuep -ApdR |bool |grok_numeric_radix|NN const char **sp|NN const char *send -Apd |UV |grok_oct |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result -: These are all indirectly referenced by globals.c. This is somewhat annoying. -p |int |magic_clearenv |NN SV* sv|NN MAGIC* mg -p |int |magic_clear_all_env|NN SV* sv|NN MAGIC* mg -dp |int |magic_clearhint|NN SV* sv|NN MAGIC* mg -dp |int |magic_clearhints|NN SV* sv|NN MAGIC* mg -p |int |magic_clearisa |NULLOK SV* sv|NN MAGIC* mg -p |int |magic_clearpack|NN SV* sv|NN MAGIC* mg -p |int |magic_clearsig |NN SV* sv|NN MAGIC* mg -p |int |magic_copycallchecker|NN SV* sv|NN MAGIC *mg|NN SV *nsv \ - |NULLOK const char *name|I32 namlen -p |int |magic_existspack|NN SV* sv|NN const MAGIC* mg -p |int |magic_freeovrld|NN SV* sv|NN MAGIC* mg -p |int |magic_get |NN SV* sv|NN MAGIC* mg -p |int |magic_getarylen|NN SV* sv|NN const MAGIC* mg -p |int |magic_getdefelem|NN SV* sv|NN MAGIC* mg -p |int |magic_getnkeys |NN SV* sv|NN MAGIC* mg -p |int |magic_getpack |NN SV* sv|NN MAGIC* mg -p |int |magic_getpos |NN SV* sv|NN MAGIC* mg -p |int |magic_getsig |NN SV* sv|NN MAGIC* mg -p |int |magic_getsubstr|NN SV* sv|NN MAGIC* mg -p |int |magic_gettaint |NN SV* sv|NN MAGIC* mg -p |int |magic_getuvar |NN SV* sv|NN MAGIC* mg -p |int |magic_getvec |NN SV* sv|NN MAGIC* mg -p |int |magic_nextpack |NN SV *sv|NN MAGIC *mg|NN SV *key -p |U32 |magic_regdata_cnt|NN SV* sv|NN MAGIC* mg -p |int |magic_regdatum_get|NN SV* sv|NN MAGIC* mg -:removing noreturn to silence a warning for this function resulted in no -:change to the interpreter DLL image under VS 2003 -O1 -GL 32 bits -#ifdef _MSC_VER -p |int |magic_regdatum_set|NN SV* sv|NN MAGIC* mg -#else -pr |int |magic_regdatum_set|NN SV* sv|NN MAGIC* mg -#endif -p |int |magic_set |NN SV* sv|NN MAGIC* mg -p |int |magic_setarylen|NN SV* sv|NN MAGIC* mg -p |int |magic_cleararylen_p|NN SV* sv|NN MAGIC* mg -p |int |magic_freearylen_p|NN SV* sv|NN MAGIC* mg -p |int |magic_setdbline|NN SV* sv|NN MAGIC* mg -p |int |magic_setdefelem|NN SV* sv|NN MAGIC* mg -p |int |magic_setenv |NN SV* sv|NN MAGIC* mg -dp |int |magic_sethint |NN SV* sv|NN MAGIC* mg -p |int |magic_setisa |NN SV* sv|NN MAGIC* mg -p |int |magic_setmglob |NN SV* sv|NN MAGIC* mg -p |int |magic_setnkeys |NN SV* sv|NN MAGIC* mg -p |int |magic_setpack |NN SV* sv|NN MAGIC* mg -p |int |magic_setpos |NN SV* sv|NN MAGIC* mg -p |int |magic_setregexp|NN SV* sv|NN MAGIC* mg -p |int |magic_setsig |NULLOK SV* sv|NN MAGIC* mg -p |int |magic_setsubstr|NN SV* sv|NN MAGIC* mg -p |int |magic_settaint |NN SV* sv|NN MAGIC* mg -p |int |magic_setuvar |NN SV* sv|NN MAGIC* mg -p |int |magic_setvec |NN SV* sv|NN MAGIC* mg -p |int |magic_setutf8 |NN SV* sv|NN MAGIC* mg -p |int |magic_set_all_env|NN SV* sv|NN MAGIC* mg -p |U32 |magic_sizepack |NN SV* sv|NN MAGIC* mg -p |int |magic_wipepack |NN SV* sv|NN MAGIC* mg -pod |SV* |magic_methcall |NN SV *sv|NN const MAGIC *mg \ - |NN SV *meth|U32 flags \ - |U32 argc|... +p |void |lex_end +p |void |lex_start |SV* line +Ap |void |op_null |OP* o +p |void |op_clear |OP* o +p |OP* |linklist |OP* o +p |OP* |list |OP* o +p |OP* |listkids |OP* o +Apd |void |load_module|U32 flags|SV* name|SV* ver|... +Ap |void |vload_module|U32 flags|SV* name|SV* ver|va_list* args +p |OP* |localize |OP* arg|I32 lexical +Apd |I32 |looks_like_number|SV* sv +Apd |UV |grok_bin |char* start|STRLEN* len|I32* flags|NV *result +Apd |UV |grok_hex |char* start|STRLEN* len|I32* flags|NV *result +Apd |int |grok_number |const char *pv|STRLEN len|UV *valuep +Apd |bool |grok_numeric_radix|const char **sp|const char *send +Apd |UV |grok_oct |char* start|STRLEN* len|I32* flags|NV *result +p |int |magic_clearenv |SV* sv|MAGIC* mg +p |int |magic_clear_all_env|SV* sv|MAGIC* mg +p |int |magic_clearpack|SV* sv|MAGIC* mg +p |int |magic_clearsig |SV* sv|MAGIC* mg +p |int |magic_existspack|SV* sv|MAGIC* mg +p |int |magic_freeregexp|SV* sv|MAGIC* mg +p |int |magic_freeovrld|SV* sv|MAGIC* mg +p |int |magic_get |SV* sv|MAGIC* mg +p |int |magic_getarylen|SV* sv|MAGIC* mg +p |int |magic_getdefelem|SV* sv|MAGIC* mg +p |int |magic_getglob |SV* sv|MAGIC* mg +p |int |magic_getnkeys |SV* sv|MAGIC* mg +p |int |magic_getpack |SV* sv|MAGIC* mg +p |int |magic_getpos |SV* sv|MAGIC* mg +p |int |magic_getsig |SV* sv|MAGIC* mg +p |int |magic_getsubstr|SV* sv|MAGIC* mg +p |int |magic_gettaint |SV* sv|MAGIC* mg +p |int |magic_getuvar |SV* sv|MAGIC* mg +p |int |magic_getvec |SV* sv|MAGIC* mg +p |U32 |magic_len |SV* sv|MAGIC* mg +#if defined(USE_5005THREADS) +p |int |magic_mutexfree|SV* sv|MAGIC* mg +#endif +p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key +p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg +p |int |magic_regdatum_get|SV* sv|MAGIC* mg +p |int |magic_regdatum_set|SV* sv|MAGIC* mg +p |int |magic_set |SV* sv|MAGIC* mg +p |int |magic_setamagic|SV* sv|MAGIC* mg +p |int |magic_setarylen|SV* sv|MAGIC* mg +p |int |magic_setbm |SV* sv|MAGIC* mg +p |int |magic_setdbline|SV* sv|MAGIC* mg +#if defined(USE_LOCALE_COLLATE) +p |int |magic_setcollxfrm|SV* sv|MAGIC* mg +#endif +p |int |magic_setdefelem|SV* sv|MAGIC* mg +p |int |magic_setenv |SV* sv|MAGIC* mg +p |int |magic_setfm |SV* sv|MAGIC* mg +p |int |magic_setisa |SV* sv|MAGIC* mg +p |int |magic_setglob |SV* sv|MAGIC* mg +p |int |magic_setmglob |SV* sv|MAGIC* mg +p |int |magic_setnkeys |SV* sv|MAGIC* mg +p |int |magic_setpack |SV* sv|MAGIC* mg +p |int |magic_setpos |SV* sv|MAGIC* mg +p |int |magic_setsig |SV* sv|MAGIC* mg +p |int |magic_setsubstr|SV* sv|MAGIC* mg +p |int |magic_settaint |SV* sv|MAGIC* mg +p |int |magic_setuvar |SV* sv|MAGIC* mg +p |int |magic_setvec |SV* sv|MAGIC* mg +p |int |magic_set_all_env|SV* sv|MAGIC* mg +p |U32 |magic_sizepack |SV* sv|MAGIC* mg +p |int |magic_wipepack |SV* sv|MAGIC* mg +p |void |magicname |char* sym|char* name|I32 namlen Ap |void |markstack_grow #if defined(USE_LOCALE_COLLATE) -p |int |magic_setcollxfrm|NN SV* sv|NN MAGIC* mg -: Defined in locale.c, used only in sv.c -p |char* |mem_collxfrm |NN const char* s|STRLEN len|NN STRLEN* xlen -#endif -Afpd |SV* |mess |NN const char* pat|... -Apd |SV* |mess_sv |NN SV* basemsg|bool consume -Apd |SV* |vmess |NN const char* pat|NULLOK va_list* args -: FIXME - either make it public, or stop exporting it. (Data::Alias uses this) -: Used in gv.c, op.c, toke.c -EXp |void |qerror |NN SV* err -Apd |void |sortsv |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp -Apd |void |sortsv_flags |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags -Apd |int |mg_clear |NN SV* sv -Apd |int |mg_copy |NN SV *sv|NN SV *nsv|NULLOK const char *key \ - |I32 klen -: Defined in mg.c, used only in scope.c -pd |void |mg_localize |NN SV* sv|NN SV* nsv|bool setmagic -ApdR |MAGIC* |mg_find |NULLOK const SV* sv|int type -ApdR |MAGIC* |mg_findext |NULLOK const SV* sv|int type|NULLOK const MGVTBL *vtbl -: exported for re.pm -EXpR |MAGIC* |mg_find_mglob |NN SV* sv -Apd |int |mg_free |NN SV* sv -Apd |void |mg_free_type |NN SV* sv|int how -Apd |int |mg_get |NN SV* sv -ApdD |U32 |mg_length |NN SV* sv -Apd |void |mg_magical |NN SV* sv -Apd |int |mg_set |NN SV* sv -Ap |I32 |mg_size |NN SV* sv -Ap |void |mini_mktime |NN struct tm *ptm -AMmd |OP* |op_lvalue |NULLOK OP* o|I32 type -poX |OP* |op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags -p |void |finalize_optree |NN OP* o -#if defined(PERL_IN_OP_C) -s |void |finalize_op |NN OP* o -s |void |move_proto_attr|NN OP **proto|NN OP **attrs|NN const GV *name -#endif -: Used in op.c and pp_sys.c -p |int |mode_from_discipline|NULLOK const char* s|STRLEN len -Ap |const char* |moreswitches |NN const char* s -Ap |NV |my_atof |NN const char *s +p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen +#endif +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 cmp +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 |int |mg_free |SV* sv +Apd |int |mg_get |SV* sv +Apd |U32 |mg_length |SV* sv +Apd |void |mg_magical |SV* sv +Apd |int |mg_set |SV* sv +Ap |I32 |mg_size |SV* sv +Ap |void |mini_mktime |struct tm *pm +p |OP* |mod |OP* o|I32 type +p |int |mode_from_discipline|SV* discp +Ap |char* |moreswitches |char* s +p |OP* |my |OP* o +Ap |NV |my_atof |const char *s #if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY)) -Anp |char* |my_bcopy |NN const char* from|NN char* to|I32 len +Anp |char* |my_bcopy |const char* from|char* to|I32 len #endif #if !defined(HAS_BZERO) && !defined(HAS_MEMSET) -Anp |char* |my_bzero |NN char* loc|I32 len +Anp |char* |my_bzero |char* loc|I32 len #endif Apr |void |my_exit |U32 status Apr |void |my_failure_exit @@ -900,1862 +467,897 @@ Ap |I32 |my_fflush_all Anp |Pid_t |my_fork Anp |void |atfork_lock Anp |void |atfork_unlock -Apmb |I32 |my_lstat -pX |I32 |my_lstat_flags |NULLOK const U32 flags +Ap |I32 |my_lstat #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) -AnpP |I32 |my_memcmp |NN const char* s1|NN const char* s2|I32 len +Anp |I32 |my_memcmp |const char* s1|const char* s2|I32 len #endif #if !defined(HAS_MEMSET) -Anp |void* |my_memset |NN char* loc|I32 ch|I32 len -#endif -#if !defined(PERL_IMPLICIT_SYS) -Ap |I32 |my_pclose |NULLOK PerlIO* ptr -Ap |PerlIO*|my_popen |NN const char* cmd|NN const char* mode +Anp |void* |my_memset |char* loc|I32 ch|I32 len +#endif +Ap |I32 |my_pclose |PerlIO* ptr +Ap |PerlIO*|my_popen |char* cmd|char* mode +Ap |PerlIO*|my_popen_list |char* mode|int n|SV ** args +Ap |void |my_setenv |char* nam|char* val +Ap |I32 |my_stat +Ap |char * |my_strftime |char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst +#if defined(MYSWAP) +Ap |short |my_swap |short s +Ap |long |my_htonl |long l +Ap |long |my_ntohl |long l #endif -Ap |PerlIO*|my_popen_list |NN const char* mode|int n|NN SV ** args -Ap |void |my_setenv |NULLOK const char* nam|NULLOK const char* val -Apmb |I32 |my_stat -pX |I32 |my_stat_flags |NULLOK const U32 flags -Afp |char * |my_strftime |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst -: Used in pp_ctl.c p |void |my_unexec -ADMnoPR |UV |NATIVE_TO_NEED |const UV enc|const UV ch -ADMnoPR |UV |ASCII_TO_NEED |const UV enc|const UV ch -Apa |OP* |newANONLIST |NULLOK OP* o -Apa |OP* |newANONHASH |NULLOK OP* o -Ap |OP* |newANONSUB |I32 floor|NULLOK OP* proto|NULLOK OP* block -#if defined(PERL_IN_OP_C) -i |bool |aassign_common_vars |NULLOK OP* o -#endif -Apda |OP* |newASSIGNOP |I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right -Apda |OP* |newCONDOP |I32 flags|NN OP* first|NULLOK OP* trueop|NULLOK OP* falseop -Apd |CV* |newCONSTSUB |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv -Apd |CV* |newCONSTSUB_flags|NULLOK HV* stash \ - |NULLOK const char* name|STRLEN len \ - |U32 flags|NULLOK SV* sv -#ifdef PERL_MAD -Ap |OP* |newFORM |I32 floor|NULLOK OP* o|NULLOK OP* block -#else -Ap |void |newFORM |I32 floor|NULLOK OP* o|NULLOK OP* block -#endif -Apda |OP* |newFOROP |I32 flags|NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont -Apda |OP* |newGIVENOP |NN OP* cond|NN OP* block|PADOFFSET defsv_off -Apda |OP* |newLOGOP |I32 optype|I32 flags|NN OP *first|NN OP *other -Apda |OP* |newLOOPEX |I32 type|NN OP* label -Apda |OP* |newLOOPOP |I32 flags|I32 debuggable|NULLOK OP* expr|NULLOK OP* block -Apda |OP* |newNULLLIST -Apda |OP* |newOP |I32 optype|I32 flags -Ap |void |newPROG |NN OP* o -Apda |OP* |newRANGE |I32 flags|NN OP* left|NN OP* right -Apda |OP* |newSLICEOP |I32 flags|NULLOK OP* subscript|NULLOK OP* listop -Apda |OP* |newSTATEOP |I32 flags|NULLOK char* label|NULLOK OP* o -Abm |CV* |newSUB |I32 floor|NULLOK OP* o|NULLOK OP* proto \ - |NULLOK OP* block -p |CV * |newXS_len_flags|NULLOK const char *name|STRLEN len \ - |NN XSUBADDR_t subaddr\ - |NN const char *const filename \ - |NULLOK const char *const proto \ - |NULLOK SV **const_svp|U32 flags -ApM |CV * |newXS_flags |NULLOK const char *name|NN XSUBADDR_t subaddr\ - |NN const char *const filename \ - |NULLOK const char *const proto|U32 flags -Apd |CV* |newXS |NULLOK const char *name|NN XSUBADDR_t subaddr\ - |NN const char *filename -AmdbR |AV* |newAV -Apa |OP* |newAVREF |NN OP* o -Apda |OP* |newBINOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last -Apa |OP* |newCVREF |I32 flags|NULLOK OP* o -Apda |OP* |newGVOP |I32 type|I32 flags|NN GV* gv -Am |GV* |newGVgen |NN const char* pack -Apa |GV* |newGVgen_flags |NN const char* pack|U32 flags -Apa |OP* |newGVREF |I32 type|NULLOK OP* o -ApaR |OP* |newHVREF |NN OP* o -AmdbR |HV* |newHV -ApaR |HV* |newHVhv |NULLOK HV *hv -Apabm |IO* |newIO -Apda |OP* |newLISTOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last -#ifdef USE_ITHREADS -Apda |OP* |newPADOP |I32 type|I32 flags|NN SV* sv -#endif -Apda |OP* |newPMOP |I32 type|I32 flags -Apda |OP* |newPVOP |I32 type|I32 flags|NULLOK char* pv -Apa |SV* |newRV |NN SV *const sv -Apda |SV* |newRV_noinc |NN SV *const sv -Apda |SV* |newSV |const STRLEN len -Apa |OP* |newSVREF |NN OP* o -Apda |OP* |newSVOP |I32 type|I32 flags|NN SV* sv -pa |SV* |newSVavdefelem |NN AV *av|SSize_t ix|bool extendible -Apda |SV* |newSViv |const IV i -Apda |SV* |newSVuv |const UV u -Apda |SV* |newSVnv |const NV n -Apda |SV* |newSVpv |NULLOK const char *const s|const STRLEN len -Apda |SV* |newSVpvn |NULLOK const char *const s|const STRLEN len -Apda |SV* |newSVpvn_flags |NULLOK const char *const s|const STRLEN len|const U32 flags -Apda |SV* |newSVhek |NULLOK const HEK *const hek -Apda |SV* |newSVpvn_share |NULLOK const char* s|I32 len|U32 hash -Apda |SV* |newSVpv_share |NULLOK const char* s|U32 hash -Afpda |SV* |newSVpvf |NN const char *const pat|... -Apa |SV* |vnewSVpvf |NN const char *const pat|NULLOK va_list *const args -Apd |SV* |newSVrv |NN SV *const rv|NULLOK const char *const classname -Apda |SV* |newSVsv |NULLOK SV *const old -Apda |SV* |newSV_type |const svtype type -Apda |OP* |newUNOP |I32 type|I32 flags|NULLOK OP* first -Apda |OP* |newWHENOP |NULLOK OP* cond|NN OP* block -Apda |OP* |newWHILEOP |I32 flags|I32 debuggable|NULLOK LOOP* loop \ - |NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \ - |I32 has_my -Apd |CV* |rv2cv_op_cv |NN OP *cvop|U32 flags -Apd |OP* |ck_entersub_args_list|NN OP *entersubop -Apd |OP* |ck_entersub_args_proto|NN OP *entersubop|NN GV *namegv|NN SV *protosv -Apd |OP* |ck_entersub_args_proto_or_list|NN OP *entersubop|NN GV *namegv|NN SV *protosv -po |OP* |ck_entersub_args_core|NN OP *entersubop|NN GV *namegv \ - |NN SV *protosv -Apd |void |cv_get_call_checker|NN CV *cv|NN Perl_call_checker *ckfun_p|NN SV **ckobj_p -Apd |void |cv_set_call_checker|NN CV *cv|NN Perl_call_checker ckfun|NN SV *ckobj -Apd |void |wrap_op_checker|Optype opcode|NN Perl_check_t new_checker|NN Perl_check_t *old_checker_p -Apa |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems -Ap |char* |scan_vstring |NN const char *s|NN const char *const e \ - |NN SV *sv -Apd |const char* |scan_version |NN const char *s|NN SV *rv|bool qv -Apd |const char* |prescan_version |NN const char *s\ - |bool strict|NULLOK const char** errstr|NULLOK bool *sqv\ - |NULLOK int *ssaw_decimal|NULLOK int *swidth|NULLOK bool *salpha -Apd |SV* |new_version |NN SV *ver -Apd |SV* |upg_version |NN SV *ver|bool qv -Apd |SV* |vverify |NN SV *vs -Apd |SV* |vnumify |NN SV *vs -Apd |SV* |vnormal |NN SV *vs -Apd |SV* |vstringify |NN SV *vs -Apd |int |vcmp |NN SV *lhv|NN SV *rhv -: Used in pp_hot.c and pp_sys.c -p |PerlIO*|nextargv |NN GV* gv -AnpP |char* |ninstr |NN const char* big|NN const char* bigend \ - |NN const char* little|NN const char* lend -Apd |void |op_free |NULLOK OP* arg -Mp |OP* |op_unscope |NULLOK OP* o -#ifdef PERL_CORE -p |void |opslab_free |NN OPSLAB *slab -p |void |opslab_free_nopad|NN OPSLAB *slab -p |void |opslab_force_free|NN OPSLAB *slab -#endif -: Used in perly.y -#ifdef PERL_MAD -p |OP* |package |NN OP* o -#else -p |void |package |NN OP* o -#endif -: Used in perly.y -p |void |package_version|NN OP* v -: Used in toke.c and perly.y -p |PADOFFSET|allocmy |NN const char *const name|const STRLEN len\ - |const U32 flags -#ifdef USE_ITHREADS -AMp |PADOFFSET|alloccopstash|NN HV *hv -#endif -: Used in perly.y -pR |OP* |oopsAV |NN OP* o -: Used in perly.y -pR |OP* |oopsHV |NN OP* o - -: peephole optimiser -p |void |peep |NULLOK OP* o -p |void |rpeep |NULLOK OP* o -: Defined in doio.c, used only in pp_hot.c -dopM |PerlIO*|start_glob |NN SV *tmpglob|NN IO *io - +Ap |OP* |newANONLIST |OP* o +Ap |OP* |newANONHASH |OP* o +Ap |OP* |newANONSUB |I32 floor|OP* proto|OP* block +Ap |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right +Ap |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop +Apd |CV* |newCONSTSUB |HV* stash|char* name|SV* sv +Ap |void |newFORM |I32 floor|OP* o|OP* block +Ap |OP* |newFOROP |I32 flags|char* label|line_t forline \ + |OP* sclr|OP* expr|OP*block|OP*cont +Ap |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right +Ap |OP* |newLOOPEX |I32 type|OP* label +Ap |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block +Ap |OP* |newNULLLIST +Ap |OP* |newOP |I32 optype|I32 flags +Ap |void |newPROG |OP* o +Ap |OP* |newRANGE |I32 flags|OP* left|OP* right +Ap |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop +Ap |OP* |newSTATEOP |I32 flags|char* label|OP* o +Ap |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block +Apd |CV* |newXS |char* name|XSUBADDR_t f|char* filename +Apd |AV* |newAV +Ap |OP* |newAVREF |OP* o +Ap |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last +Ap |OP* |newCVREF |I32 flags|OP* o +Ap |OP* |newGVOP |I32 type|I32 flags|GV* gv +Ap |GV* |newGVgen |char* pack +Ap |OP* |newGVREF |I32 type|OP* o +Ap |OP* |newHVREF |OP* o +Apd |HV* |newHV +Ap |HV* |newHVhv |HV* hv +Ap |IO* |newIO +Ap |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last +Ap |OP* |newPADOP |I32 type|I32 flags|SV* sv +Ap |OP* |newPMOP |I32 type|I32 flags +Ap |OP* |newPVOP |I32 type|I32 flags|char* pv +Ap |SV* |newRV |SV* pref +Apd |SV* |newRV_noinc |SV *sv +Apd |SV* |newSV |STRLEN len +Ap |OP* |newSVREF |OP* o +Ap |OP* |newSVOP |I32 type|I32 flags|SV* sv +Apd |SV* |newSViv |IV i +Apd |SV* |newSVuv |UV u +Apd |SV* |newSVnv |NV n +Apd |SV* |newSVpv |const char* s|STRLEN len +Apd |SV* |newSVpvn |const char* s|STRLEN len +Apd |SV* |newSVpvn_share |const char* s|I32 len|U32 hash +Afpd |SV* |newSVpvf |const char* pat|... +Ap |SV* |vnewSVpvf |const char* pat|va_list* args +Apd |SV* |newSVrv |SV* rv|const char* classname +Apd |SV* |newSVsv |SV* old +Ap |OP* |newUNOP |I32 type|I32 flags|OP* first +Ap |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \ + |I32 whileline|OP* expr|OP* block|OP* cont + +Ap |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems +Apd |char* |new_vstring |char *vstr|SV *sv +p |PerlIO*|nextargv |GV* gv +Ap |char* |ninstr |const char* big|const char* bigend \ + |const char* little|const char* lend +p |OP* |oopsCV |OP* o +Ap |void |op_free |OP* arg +p |void |package |OP* o +p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype +p |PADOFFSET|pad_allocmy |char* name +p |PADOFFSET|pad_findmy |char* name +p |OP* |oopsAV |OP* o +p |OP* |oopsHV |OP* o +p |void |pad_leavemy |I32 fill +Ap |SV* |pad_sv |PADOFFSET po +p |void |pad_free |PADOFFSET po +p |void |pad_reset +p |void |pad_swipe |PADOFFSET po +p |void |peep |OP* o +dopM |PerlIO*|start_glob |SV* pattern|IO *io +#if defined(USE_5005THREADS) +Ap |struct perl_thread* |new_struct_thread|struct perl_thread *t +#endif +#if defined(USE_REENTRANT_API) Ap |void |reentrant_size Ap |void |reentrant_init Ap |void |reentrant_free -Anp |void* |reentrant_retry|NN const char *f|... - -: "Very" special - can't use the O flag for this one: -: (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef) -Ap |void |call_atexit |ATEXIT_t fn|NULLOK void *ptr -ApdO |I32 |call_argv |NN const char* sub_name|I32 flags|NN char** argv -ApdO |I32 |call_method |NN const char* methname|I32 flags -ApdO |I32 |call_pv |NN const char* sub_name|I32 flags -ApdO |I32 |call_sv |NN SV* sv|VOL I32 flags -Ap |void |despatch_signals -Ap |OP * |doref |NN OP *o|I32 type|bool set_op_ref -ApdO |SV* |eval_pv |NN const char* p|I32 croak_on_error -ApdO |I32 |eval_sv |NN SV* sv|I32 flags -ApdO |SV* |get_sv |NN const char *name|I32 flags -ApdO |AV* |get_av |NN const char *name|I32 flags -ApdO |HV* |get_hv |NN const char *name|I32 flags -ApdO |CV* |get_cv |NN const char* name|I32 flags -Apd |CV* |get_cvn_flags |NN const char* name|STRLEN len|I32 flags -#ifdef WIN32 -ApPM |char* |my_setlocale |int category|NULLOK const char* locale -#else -AmPM |char* |my_setlocale |int category|NULLOK const char* locale +Anp |void* |reentrant_retry|const char*|... #endif -ApOM |int |init_i18nl10n |int printwarn -ApOM |int |init_i18nl14n |int printwarn -ApOM |void |new_collate |NULLOK const char* newcoll -ApOM |void |new_ctype |NN const char* newctype -ApOM |void |new_numeric |NULLOK const char* newcoll +Ap |void |call_atexit |ATEXIT_t fn|void *ptr +Apd |I32 |call_argv |const char* sub_name|I32 flags|char** argv +Apd |I32 |call_method |const char* methname|I32 flags +Apd |I32 |call_pv |const char* sub_name|I32 flags +Apd |I32 |call_sv |SV* sv|I32 flags +Ap |void |despatch_signals +Apd |SV* |eval_pv |const char* p|I32 croak_on_error +Apd |I32 |eval_sv |SV* sv|I32 flags +Apd |SV* |get_sv |const char* name|I32 create +Apd |AV* |get_av |const char* name|I32 create +Apd |HV* |get_hv |const char* name|I32 create +Apd |CV* |get_cv |const char* name|I32 create +Ap |int |init_i18nl10n |int printwarn +Ap |int |init_i18nl14n |int printwarn +Ap |void |new_collate |char* newcoll +Ap |void |new_ctype |char* newctype +Ap |void |new_numeric |char* newcoll Ap |void |set_numeric_local Ap |void |set_numeric_radix Ap |void |set_numeric_standard -Admn |void |sync_locale -ApdO |void |require_pv |NN const char* pv -Apd |void |pack_cat |NN SV *cat|NN const char *pat|NN const char *patend \ - |NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags -Apd |void |packlist |NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist -#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C) -s |void |pidgone |Pid_t pid|int status -#endif -: Used in perly.y -p |OP* |pmruntime |NN OP *o|NN OP *expr|bool isreg|I32 floor -#if defined(PERL_IN_OP_C) -s |OP* |pmtrans |NN OP* o|NN OP* expr|NN OP* repl -#endif +Apd |void |require_pv |const char* pv +Apd |void |pack_cat |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist|SV ***next_in_list|U32 flags +p |void |pidgone |Pid_t pid|int status +Ap |void |pmflag |U32* pmfl|int ch +p |OP* |pmruntime |OP* pm|OP* expr|OP* repl +p |OP* |pmtrans |OP* o|OP* expr|OP* repl +p |OP* |pop_return Ap |void |pop_scope +p |OP* |prepend_elem |I32 optype|OP* head|OP* tail +p |void |push_return |OP* o Ap |void |push_scope -Amb |OP* |ref |NULLOK OP* o|I32 type -#if defined(PERL_IN_OP_C) -s |OP* |refkids |NULLOK OP* o|I32 type -#endif -Ap |void |regdump |NN const regexp* r -Ap |SV* |regclass_swash |NULLOK const regexp *prog \ - |NN const struct regnode *node|bool doinit \ - |NULLOK SV **listsvp|NULLOK SV **altsvp -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C) -AMpR |SV* |_new_invlist_C_array|NN const UV* const list -: Not used currently: EXMs |bool |_invlistEQ |NN SV* const a|NN SV* const b|const bool complement_b -#endif -Ap |I32 |pregexec |NN REGEXP * const prog|NN char* stringarg \ - |NN char* strend|NN char* strbeg \ - |SSize_t minend |NN SV* screamer|U32 nosave -Ap |void |pregfree |NULLOK REGEXP* r -Ap |void |pregfree2 |NN REGEXP *rx -: FIXME - is anything in re using this now? -EXp |REGEXP*|reg_temp_copy |NULLOK REGEXP* ret_x|NN REGEXP* rx -Ap |void |regfree_internal|NN REGEXP *const rx -#if defined(USE_ITHREADS) -Ap |void* |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param -#endif -EXp |regexp_engine const *|current_re_engine -Ap |REGEXP*|pregcomp |NN SV * const pattern|const U32 flags -p |REGEXP*|re_op_compile |NULLOK SV ** const patternp \ - |int pat_count|NULLOK OP *expr \ - |NN const regexp_engine* eng \ - |NULLOK REGEXP *old_re \ - |NULLOK bool *is_bare_re \ - |U32 rx_flags|U32 pm_flags -Ap |REGEXP*|re_compile |NN SV * const pattern|U32 orig_rx_flags -Ap |char* |re_intuit_start|NN REGEXP * const rx \ - |NULLOK SV* sv \ - |NN const char* const strbeg \ - |NN char* strpos \ - |NN char* strend \ - |const U32 flags \ - |NULLOK re_scream_pos_data *data -Ap |SV* |re_intuit_string|NN REGEXP *const r -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) -EiPR |I32 |regcurly |NN const char *s \ - |const bool rbrace_must_be_escaped -#endif -Ap |I32 |regexec_flags |NN REGEXP *const rx|NN char *stringarg \ - |NN char *strend|NN char *strbeg \ - |SSize_t minend|NN SV *sv \ - |NULLOK void *data|U32 flags -ApR |regnode*|regnext |NULLOK regnode* p -EXp |SV*|reg_named_buff |NN REGEXP * const rx|NULLOK SV * const key \ - |NULLOK SV * const value|const U32 flags -EXp |SV*|reg_named_buff_iter |NN REGEXP * const rx|NULLOK const SV * const lastkey \ - |const U32 flags -Ap |SV*|reg_named_buff_fetch |NN REGEXP * const rx|NN SV * const namesv|const U32 flags -Ap |bool|reg_named_buff_exists |NN REGEXP * const rx|NN SV * const key|const U32 flags -Ap |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_nextkey |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_scalar |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_all |NN REGEXP * const rx|const U32 flags - -: FIXME - is anything in re using this now? -EXp |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv -: FIXME - is anything in re using this now? -EXp |void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value -: FIXME - is anything in re using this now? -EXp |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren - -: FIXME - is anything in re using this now? -EXp |SV*|reg_qr_package|NN REGEXP * const rx - -: FIXME - why the E? -Ep |void |regprop |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo -Anp |void |repeatcpy |NN char* to|NN const char* from|I32 len|IV count -AnpP |char* |rninstr |NN const char* big|NN const char* bigend \ - |NN const char* little|NN const char* lend +p |OP* |ref |OP* o|I32 type +p |OP* |refkids |OP* o|I32 type +Ap |void |regdump |regexp* r +Ap |SV* |regclass_swash |struct regnode *n|bool doinit|SV **listsvp|SV **altsvp +Ap |I32 |pregexec |regexp* prog|char* stringarg \ + |char* strend|char* strbeg|I32 minend \ + |SV* screamer|U32 nosave +Ap |void |pregfree |struct regexp* r +Ap |regexp*|pregcomp |char* exp|char* xend|PMOP* pm +Ap |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \ + |char* strend|U32 flags \ + |struct re_scream_pos_data_s *data +Ap |SV* |re_intuit_string|regexp* prog +Ap |I32 |regexec_flags |regexp* prog|char* stringarg \ + |char* strend|char* strbeg|I32 minend \ + |SV* screamer|void* data|U32 flags +Ap |regnode*|regnext |regnode* p +p |void |regprop |SV* sv|regnode* o +Ap |void |repeatcpy |char* to|const char* from|I32 len|I32 count +Ap |char* |rninstr |const char* big|const char* bigend \ + |const char* little|const char* lend Ap |Sighandler_t|rsignal |int i|Sighandler_t t -: Used in pp_sys.c -p |int |rsignal_restore|int i|NULLOK Sigsave_t* t -: Used in pp_sys.c -p |int |rsignal_save |int i|Sighandler_t t1|NN Sigsave_t* save +p |int |rsignal_restore|int i|Sigsave_t* t +p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2 Ap |Sighandler_t|rsignal_state|int i -#if defined(PERL_IN_PP_CTL_C) -s |void |rxres_free |NN void** rsp -s |void |rxres_restore |NN void **rsp|NN REGEXP *rx -#endif -: Used in pp_hot.c -p |void |rxres_save |NN void **rsp|NN REGEXP *rx +p |void |rxres_free |void** rsp +p |void |rxres_restore |void** rsp|REGEXP* prx +p |void |rxres_save |void** rsp|REGEXP* prx #if !defined(HAS_RENAME) -: Used in pp_sys.c -p |I32 |same_dirent |NN const char* a|NN const char* b +p |I32 |same_dirent |char* a|char* b #endif -Apda |char* |savepv |NULLOK const char* pv -Apda |char* |savepvn |NULLOK const char* pv|I32 len -Apda |char* |savesharedpv |NULLOK const char* pv - -: NULLOK only to suppress a compiler warning -Apda |char* |savesharedpvn |NULLOK const char *const pv \ - |const STRLEN len -Apda |char* |savesharedsvpv |NN SV *sv -Apda |char* |savesvpv |NN SV* sv +Apd |char* |savepv |const char* pv +Apd |char* |savesharedpv |const char* pv +Apd |char* |savepvn |const char* pv|I32 len Ap |void |savestack_grow -Ap |void |savestack_grow_cnt |I32 need -Amp |void |save_aelem |NN AV* av|SSize_t idx|NN SV **sptr -Ap |void |save_aelem_flags|NN AV* av|SSize_t idx|NN SV **sptr \ - |const U32 flags +Ap |void |save_aelem |AV* av|I32 idx|SV **sptr Ap |I32 |save_alloc |I32 size|I32 pad -Ap |void |save_aptr |NN AV** aptr -Ap |AV* |save_ary |NN GV* gv -Ap |void |save_bool |NN bool* boolp -Ap |void |save_clearsv |NN SV** svp -Ap |void |save_delete |NN HV *hv|NN char *key|I32 klen -Ap |void |save_hdelete |NN HV *hv|NN SV *keysv -Ap |void |save_adelete |NN AV *av|SSize_t key -Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|NN void* p -Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|NULLOK void* p -Apmb |void |save_freesv |NULLOK SV* sv -: Used in SAVEFREOP(), used in op.c, pp_ctl.c -Apmb |void |save_freeop |NULLOK OP* o -Apmb |void |save_freepv |NULLOK char* pv -Ap |void |save_generic_svref|NN SV** sptr -Ap |void |save_generic_pvref|NN char** str -Ap |void |save_shared_pvref|NN char** str -Ap |void |save_gp |NN GV* gv|I32 empty -Ap |HV* |save_hash |NN GV* gv +Ap |void |save_aptr |AV** aptr +Ap |AV* |save_ary |GV* gv +Ap |void |save_clearsv |SV** svp +Ap |void |save_delete |HV* hv|char* key|I32 klen +Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p +Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|void* p +Ap |void |save_freesv |SV* sv +p |void |save_freeop |OP* o +Ap |void |save_freepv |char* pv +Ap |void |save_generic_svref|SV** sptr +Ap |void |save_generic_pvref|char** str +Ap |void |save_shared_pvref|char** str +Ap |void |save_gp |GV* gv|I32 empty +Ap |HV* |save_hash |GV* gv +Ap |void |save_helem |HV* hv|SV *key|SV **sptr Ap |void |save_hints -Amp |void |save_helem |NN HV *hv|NN SV *key|NN SV **sptr -Ap |void |save_helem_flags|NN HV *hv|NN SV *key|NN SV **sptr|const U32 flags -Ap |void |save_hptr |NN HV** hptr -Ap |void |save_I16 |NN I16* intp -Ap |void |save_I32 |NN I32* intp -Ap |void |save_I8 |NN I8* bytep -Ap |void |save_int |NN int* intp -Ap |void |save_item |NN SV* item -Ap |void |save_iv |NN IV *ivp -Ap |void |save_list |NN SV** sarg|I32 maxsarg -Ap |void |save_long |NN long* longp -Apmb |void |save_mortalizesv|NN SV* sv -Ap |void |save_nogv |NN GV* gv -: Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c -Apmb |void |save_op -Ap |SV* |save_scalar |NN GV* gv -Ap |void |save_pptr |NN char** pptr -Ap |void |save_vptr |NN void *ptr +Ap |void |save_hptr |HV** hptr +Ap |void |save_I16 |I16* intp +Ap |void |save_I32 |I32* intp +Ap |void |save_I8 |I8* bytep +Ap |void |save_int |int* intp +Ap |void |save_item |SV* item +Ap |void |save_iv |IV* iv +Ap |void |save_list |SV** sarg|I32 maxsarg +Ap |void |save_long |long* longp +Ap |void |save_mortalizesv|SV* sv +Ap |void |save_nogv |GV* gv +p |void |save_op +Ap |SV* |save_scalar |GV* gv +Ap |void |save_pptr |char** pptr +Ap |void |save_vptr |void* pptr Ap |void |save_re_context -Ap |void |save_padsv_and_mortalize|PADOFFSET off -Ap |void |save_sptr |NN SV** sptr -Xp |void |save_strlen |NN STRLEN* ptr -Ap |SV* |save_svref |NN SV** sptr -Ap |void |save_pushptr |NULLOK void *const ptr|const int type -Ap |void |save_pushi32ptr|const I32 i|NULLOK void *const ptr|const int type -: Used by SAVESWITCHSTACK() in pp.c -Ap |void |save_pushptrptr|NULLOK void *const ptr1 \ - |NULLOK void *const ptr2|const int type -#if defined(PERL_IN_SCOPE_C) -s |void |save_pushptri32ptr|NULLOK void *const ptr1|const I32 i \ - |NULLOK void *const ptr2|const int type -#endif -: Used in perly.y -p |OP* |sawparens |NULLOK OP* o -Apd |OP* |op_contextualize|NN OP* o|I32 context -: Used in perly.y -p |OP* |scalar |NULLOK OP* o -#if defined(PERL_IN_OP_C) -s |OP* |scalarkids |NULLOK OP* o -s |OP* |scalarseq |NULLOK OP* o -#endif -: Used in pp_ctl.c -p |OP* |scalarvoid |NN OP* o -Apd |NV |scan_bin |NN const char* start|STRLEN len|NN STRLEN* retlen -Apd |NV |scan_hex |NN const char* start|STRLEN len|NN STRLEN* retlen -Ap |char* |scan_num |NN const char* s|NN YYSTYPE *lvalp -Apd |NV |scan_oct |NN const char* start|STRLEN len|NN STRLEN* retlen -AMpd |OP* |op_scope |NULLOK OP* o -Ap |char* |screaminstr |NN SV *bigstr|NN SV *littlestr|I32 start_shift \ - |I32 end_shift|NN I32 *old_posp|I32 last -: Only used by perl.c/miniperl.c, but defined in caretx.c -px |void |set_caret_X -Apd |void |setdefout |NN GV* gv -Ap |HEK* |share_hek |NN const char* str|I32 len|U32 hash -#if defined(HAS_SIGACTION) && defined(SA_SIGINFO) -: Used in perl.c -np |Signal_t |sighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap -Anp |Signal_t |csighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap -#else +Ap |void |save_padsv |PADOFFSET off +Ap |void |save_sptr |SV** sptr +Ap |SV* |save_svref |SV** sptr +Ap |SV** |save_threadsv |PADOFFSET i +p |OP* |sawparens |OP* o +p |OP* |scalar |OP* o +p |OP* |scalarkids |OP* o +p |OP* |scalarseq |OP* o +p |OP* |scalarvoid |OP* o +Apd |NV |scan_bin |char* start|STRLEN len|STRLEN* retlen +Apd |NV |scan_hex |char* start|STRLEN len|STRLEN* retlen +Ap |char* |scan_num |char* s|YYSTYPE *lvalp +Apd |NV |scan_oct |char* start|STRLEN len|STRLEN* retlen +p |OP* |scope |OP* o +Ap |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \ + |I32 end_shift|I32 *state|I32 last +#if !defined(VMS) +p |I32 |setenv_getix |char* nam +#endif +p |void |setdefout |GV* gv +p |HEK* |share_hek |const char* sv|I32 len|U32 hash np |Signal_t |sighandler |int sig -Anp |Signal_t |csighandler |int sig -#endif -Ap |SV** |stack_grow |NN SV** sp|NN SV** p|SSize_t n +Ap |SV** |stack_grow |SV** sp|SV**p|int n Ap |I32 |start_subparse |I32 is_format|U32 flags -: Used in pp_ctl.c -p |void |sub_crush_depth|NN CV* cv -Amd |bool |sv_2bool |NN SV *const sv -Apd |bool |sv_2bool_flags |NN SV *sv|I32 flags -Apd |CV* |sv_2cv |NULLOK SV* sv|NN HV **const st|NN GV **const gvp \ - |const I32 lref -Apd |IO* |sv_2io |NN SV *const sv -#if defined(PERL_IN_SV_C) -s |bool |glob_2number |NN GV* const gv -#endif -Amb |IV |sv_2iv |NN SV *sv -Apd |IV |sv_2iv_flags |NN SV *const sv|const I32 flags -Apd |SV* |sv_2mortal |NULLOK SV *const sv -Apd |NV |sv_2nv_flags |NN SV *const sv|const I32 flags -: Used in pp.c, pp_hot.c, sv.c -pMd |SV* |sv_2num |NN SV *const sv -Amb |char* |sv_2pv |NN SV *sv|NULLOK STRLEN *lp -Apd |char* |sv_2pv_flags |NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags -Apd |char* |sv_2pvutf8 |NN SV *sv|NULLOK STRLEN *const lp -Apd |char* |sv_2pvbyte |NN SV *sv|NULLOK STRLEN *const lp -Ap |char* |sv_pvn_nomg |NN SV* sv|NULLOK STRLEN* lp -Amb |UV |sv_2uv |NN SV *sv -Apd |UV |sv_2uv_flags |NN SV *const sv|const I32 flags -Apd |IV |sv_iv |NN SV* sv -Apd |UV |sv_uv |NN SV* sv -Apd |NV |sv_nv |NN SV* sv -Apd |char* |sv_pvn |NN SV *sv|NN STRLEN *lp -Apd |char* |sv_pvutf8n |NN SV *sv|NN STRLEN *lp -Apd |char* |sv_pvbyten |NN SV *sv|NN STRLEN *lp -Apd |I32 |sv_true |NULLOK SV *const sv -#if defined(PERL_IN_SV_C) -sd |void |sv_add_arena |NN char *const ptr|const U32 size \ - |const U32 flags -#endif -Apd |int |sv_backoff |NN SV *const sv -Apd |SV* |sv_bless |NN SV *const sv|NN HV *const stash -#if defined(PERL_DEBUG_READONLY_COW) -p |void |sv_buf_to_ro |NN SV *sv -# if defined(PERL_IN_SV_C) -s |void |sv_buf_to_rw |NN SV *sv -# endif -#endif -Afpd |void |sv_catpvf |NN SV *const sv|NN const char *const pat|... -Apd |void |sv_vcatpvf |NN SV *const sv|NN const char *const pat \ - |NULLOK va_list *const args -Apd |void |sv_catpv |NN SV *const sv|NULLOK const char* ptr -Amdb |void |sv_catpvn |NN SV *dsv|NN const char *sstr|STRLEN len -Amdb |void |sv_catsv |NN SV *dstr|NULLOK SV *sstr -Apd |void |sv_chop |NN SV *const sv|NULLOK const char *const ptr -: Used only in perl.c +p |void |sub_crush_depth|CV* cv +Apd |bool |sv_2bool |SV* sv +Apd |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref +Apd |IO* |sv_2io |SV* sv +Apd |IV |sv_2iv |SV* sv +Apd |SV* |sv_2mortal |SV* sv +Apd |NV |sv_2nv |SV* sv +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 +Apd |NV |sv_nv |SV* sv +Apd |char* |sv_pvn |SV *sv|STRLEN *len +Apd |char* |sv_pvutf8n |SV *sv|STRLEN *len +Apd |char* |sv_pvbyten |SV *sv|STRLEN *len +Apd |I32 |sv_true |SV *sv +pd |void |sv_add_arena |char* ptr|U32 size|U32 flags +Apd |int |sv_backoff |SV* sv +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 +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 -: Used only in perl.c pd |void |sv_clean_objs -Apd |void |sv_clear |NN SV *const orig_sv -#if defined(PERL_IN_SV_C) -s |bool |curse |NN SV * const sv|const bool check_refcnt -#endif -Aopd |I32 |sv_cmp |NULLOK SV *const sv1|NULLOK SV *const sv2 -Apd |I32 |sv_cmp_flags |NULLOK SV *const sv1|NULLOK SV *const sv2 \ - |const U32 flags -Aopd |I32 |sv_cmp_locale |NULLOK SV *const sv1|NULLOK SV *const sv2 -Apd |I32 |sv_cmp_locale_flags |NULLOK SV *const sv1 \ - |NULLOK SV *const sv2|const U32 flags +Apd |void |sv_clear |SV* sv +Apd |I32 |sv_cmp |SV* sv1|SV* sv2 +Apd |I32 |sv_cmp_locale |SV* sv1|SV* sv2 #if defined(USE_LOCALE_COLLATE) -Amd |char* |sv_collxfrm |NN SV *const sv|NN STRLEN *const nxp -Apd |char* |sv_collxfrm_flags |NN SV *const sv|NN STRLEN *const nxp|I32 const flags -#endif -Apd |int |getcwd_sv |NN SV* sv -Apd |void |sv_dec |NULLOK SV *const sv -Apd |void |sv_dec_nomg |NULLOK SV *const sv -Ap |void |sv_dump |NN SV* sv -ApdR |bool |sv_derived_from|NN SV* sv|NN const char *const name -ApdR |bool |sv_derived_from_sv|NN SV* sv|NN SV *namesv|U32 flags -ApdR |bool |sv_derived_from_pv|NN SV* sv|NN const char *const name|U32 flags -ApdR |bool |sv_derived_from_pvn|NN SV* sv|NN const char *const name \ - |const STRLEN len|U32 flags -ApdR |bool |sv_does |NN SV* sv|NN const char *const name -ApdR |bool |sv_does_sv |NN SV* sv|NN SV* namesv|U32 flags -ApdR |bool |sv_does_pv |NN SV* sv|NN const char *const name|U32 flags -ApdR |bool |sv_does_pvn |NN SV* sv|NN const char *const name|const STRLEN len \ - |U32 flags -Amd |I32 |sv_eq |NULLOK SV* sv1|NULLOK SV* sv2 -Apd |I32 |sv_eq_flags |NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags -Apd |void |sv_free |NULLOK SV *const sv -poMX |void |sv_free2 |NN SV *const sv|const U32 refcnt -: Used only in perl.c +Apd |char* |sv_collxfrm |SV* sv|STRLEN* nxp +#endif +Ap |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp +Apd |int |getcwd_sv |SV* sv +Apd |void |sv_dec |SV* sv +Ap |void |sv_dump |SV* sv +Apd |bool |sv_derived_from|SV* sv|const char* name +Apd |I32 |sv_eq |SV* sv1|SV* sv2 +Apd |void |sv_free |SV* sv pd |void |sv_free_arenas -Apd |char* |sv_gets |NN SV *const sv|NN PerlIO *const fp|I32 append -Apd |char* |sv_grow |NN SV *const sv|STRLEN newlen -Apd |void |sv_inc |NULLOK SV *const sv -Apd |void |sv_inc_nomg |NULLOK SV *const sv -Amdb |void |sv_insert |NN SV *const bigstr|const STRLEN offset \ - |const STRLEN len|NN const char *const little \ - |const STRLEN littlelen -Apd |void |sv_insert_flags|NN SV *const bigstr|const STRLEN offset|const STRLEN len \ - |NN const char *const little|const STRLEN littlelen|const U32 flags -Apd |int |sv_isa |NULLOK SV* sv|NN const char *const name -Apd |int |sv_isobject |NULLOK SV* sv -Apd |STRLEN |sv_len |NULLOK SV *const sv -Apd |STRLEN |sv_len_utf8 |NULLOK SV *const sv -p |STRLEN |sv_len_utf8_nomg|NN SV *const sv -Apd |void |sv_magic |NN SV *const sv|NULLOK SV *const obj|const int how \ - |NULLOK const char *const name|const I32 namlen -Apd |MAGIC *|sv_magicext |NN SV *const sv|NULLOK SV *const obj|const int how \ - |NULLOK const MGVTBL *const vtbl|NULLOK const char *const name \ - |const I32 namlen -: exported for re.pm -EXp |MAGIC *|sv_magicext_mglob|NN SV *sv -ApdbamR |SV* |sv_mortalcopy |NULLOK SV *const oldsv -XpaR |SV* |sv_mortalcopy_flags|NULLOK SV *const oldsv|U32 flags -ApdR |SV* |sv_newmortal -Apd |SV* |sv_newref |NULLOK SV *const sv -Ap |char* |sv_peek |NULLOK SV* sv -Apd |void |sv_pos_u2b |NULLOK SV *const sv|NN I32 *const offsetp|NULLOK I32 *const lenp -Apd |STRLEN |sv_pos_u2b_flags|NN SV *const sv|STRLEN uoffset \ - |NULLOK STRLEN *const lenp|U32 flags -Apd |void |sv_pos_b2u |NULLOK SV *const sv|NN I32 *const offsetp -Apd |STRLEN |sv_pos_b2u_flags|NN SV *const sv|STRLEN const offset \ - |U32 flags -Amdb |char* |sv_pvn_force |NN SV* sv|NULLOK STRLEN* lp -Apd |char* |sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp -Apd |char* |sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp -Apd |char* |sv_recode_to_utf8 |NN SV* sv|NN SV *encoding -Apd |bool |sv_cat_decode |NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \ - |NN char* tstr|int tlen -ApdR |const char* |sv_reftype |NN const SV *const sv|const int ob -pd |SV* |sv_ref |NULLOK SV *dst|NN const SV *const sv|const int ob -Apd |void |sv_replace |NN SV *const sv|NN SV *const nsv +Apd |char* |sv_gets |SV* sv|PerlIO* fp|I32 append +Apd |char* |sv_grow |SV* sv|STRLEN newlen +Apd |void |sv_inc |SV* sv +Apd |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \ + |char* little|STRLEN littlelen +Apd |int |sv_isa |SV* sv|const char* name +Apd |int |sv_isobject |SV* sv +Apd |STRLEN |sv_len |SV* sv +Apd |STRLEN |sv_len_utf8 |SV* sv +Apd |void |sv_magic |SV* sv|SV* obj|int how|const char* name \ + |I32 namlen +Apd |MAGIC *|sv_magicext |SV* sv|SV* obj|int how|MGVTBL *vtbl \ + | const char* name|I32 namlen +Apd |SV* |sv_mortalcopy |SV* oldsv +Apd |SV* |sv_newmortal +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 +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_recode_to_utf8 |SV* sv|SV *encoding +Apd |char* |sv_reftype |SV* sv|int ob +Apd |void |sv_replace |SV* sv|SV* nsv Apd |void |sv_report_used -Apd |void |sv_reset |NN const char* s|NULLOK HV *const stash -p |void |sv_resetpvn |NULLOK const char* s|STRLEN len \ - |NULLOK HV *const stash -Afpd |void |sv_setpvf |NN SV *const sv|NN const char *const pat|... -Apd |void |sv_vsetpvf |NN SV *const sv|NN const char *const pat|NULLOK va_list *const args -Apd |void |sv_setiv |NN SV *const sv|const IV num -Apdb |void |sv_setpviv |NN SV *const sv|const IV num -Apd |void |sv_setuv |NN SV *const sv|const UV num -Apd |void |sv_setnv |NN SV *const sv|const NV num -Apd |SV* |sv_setref_iv |NN SV *const rv|NULLOK const char *const classname|const IV iv -Apd |SV* |sv_setref_uv |NN SV *const rv|NULLOK const char *const classname|const UV uv -Apd |SV* |sv_setref_nv |NN SV *const rv|NULLOK const char *const classname|const NV nv -Apd |SV* |sv_setref_pv |NN SV *const rv|NULLOK const char *const classname \ - |NULLOK void *const pv -Apd |SV* |sv_setref_pvn |NN SV *const rv|NULLOK const char *const classname \ - |NN const char *const pv|const STRLEN n -Apd |void |sv_setpv |NN SV *const sv|NULLOK const char *const ptr -Apd |void |sv_setpvn |NN SV *const sv|NULLOK const char *const ptr|const STRLEN len -Xp |void |sv_sethek |NN SV *const sv|NULLOK const HEK *const hek -Amdb |void |sv_setsv |NN SV *dstr|NULLOK SV *sstr -Amdb |void |sv_taint |NN SV* sv -ApdR |bool |sv_tainted |NN SV *const sv -Apd |int |sv_unmagic |NN SV *const sv|const int type -Apd |int |sv_unmagicext |NN SV *const sv|const int type|NULLOK MGVTBL *vtbl -Apdmb |void |sv_unref |NN SV* sv -Apd |void |sv_unref_flags |NN SV *const ref|const U32 flags -Apd |void |sv_untaint |NN SV *const sv -Apd |void |sv_upgrade |NN SV *const sv|svtype new_type -Apdmb |void |sv_usepvn |NN SV* sv|NULLOK char* ptr|STRLEN len -Apd |void |sv_usepvn_flags|NN SV *const sv|NULLOK char* ptr|const STRLEN len\ - |const U32 flags -Apd |void |sv_vcatpvfn |NN SV *const sv|NN const char *const pat|const STRLEN patlen \ - |NULLOK va_list *const args|NULLOK SV **const svargs|const I32 svmax \ - |NULLOK bool *const maybe_tainted -Apd |void |sv_vcatpvfn_flags|NN SV *const sv|NN const char *const pat|const STRLEN patlen \ - |NULLOK va_list *const args|NULLOK SV **const svargs|const I32 svmax \ - |NULLOK bool *const maybe_tainted|const U32 flags -Apd |void |sv_vsetpvfn |NN SV *const sv|NN const char *const pat|const STRLEN patlen \ - |NULLOK va_list *const args|NULLOK SV **const svargs \ - |const I32 svmax|NULLOK bool *const maybe_tainted -ApR |NV |str_to_version |NN SV *sv -ApR |SV* |swash_init |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none -Ap |UV |swash_fetch |NN SV *swash|NN const U8 *ptr|bool do_utf8 -#ifdef PERL_IN_REGCOMP_C -EiMR |SV* |add_cp_to_invlist |NULLOK SV* invlist|const UV cp -EsM |void |_append_range_to_invlist |NN SV* const invlist|const UV start|const UV end -EiMR |UV* |_invlist_array_init |NN SV* const invlist|const bool will_have_0 -EiMR |UV* |invlist_array |NN SV* const invlist -EsM |void |invlist_extend |NN SV* const invlist|const UV len -EiMR |UV |invlist_max |NN SV* const invlist -EiM |void |invlist_set_len|NN SV* const invlist|const UV len|const bool offset -EiMR |IV* |get_invlist_previous_index_addr|NN SV* invlist -EiMR |IV |invlist_previous_index|NN SV* const invlist -EiM |void |invlist_set_previous_index|NN SV* const invlist|const IV index -EiM |void |invlist_trim |NN SV* const invlist -EiMR |SV* |invlist_clone |NN SV* const invlist -EiMR |bool |invlist_is_iterating|NN SV* const invlist -EiMR |STRLEN*|get_invlist_iter_addr |NN SV* invlist -EiM |void |invlist_iterinit|NN SV* invlist -EsMR |bool |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end -EiM |void |invlist_iterfinish|NN SV* invlist -EiMR |UV |invlist_highest|NN SV* const invlist -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C) -EXmM |void |_invlist_intersection |NN SV* const a|NN SV* const b|NN SV** i -EXpM |void |_invlist_intersection_maybe_complement_2nd \ - |NULLOK SV* const a|NN SV* const b \ - |const bool complement_b|NN SV** i -EXmM |void |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output -EXpM |void |_invlist_union_maybe_complement_2nd \ - |NULLOK SV* const a|NN SV* const b \ - |const bool complement_b|NN SV** output -EXmM |void |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result -EXpM |void |_invlist_invert|NN SV* const invlist -EXMpR |SV* |_new_invlist |IV initial_size -EXMpR |SV* |_swash_to_invlist |NN SV* const swash -EXMpR |SV* |_add_range_to_invlist |NULLOK SV* invlist|const UV start|const UV end -EXMpR |SV* |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr -EXMp |void |_invlist_populate_swatch |NN SV* const invlist|const UV start|const UV end|NN U8* swatch -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C) -EXp |SV* |_core_swash_init|NN const char* pkg|NN const char* name \ - |NN SV* listsv|I32 minbits|I32 none \ - |NULLOK SV* invlist|NULLOK U8* const flags_p -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) -EXMpR |SV* |_invlist_contents|NN SV* const invlist -EiMR |bool* |get_invlist_offset_addr|NN SV* invlist -EiMR |UV |_invlist_len |NN SV* const invlist -EMiR |bool |_invlist_contains_cp|NN SV* const invlist|const UV cp -EXpMR |IV |_invlist_search |NN SV* const invlist|const UV cp -EXMpR |SV* |_get_swash_invlist|NN SV* const swash -EXMpR |HV* |_swash_inversion_hash |NN SV* const swash -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) -ApM |SV* |_get_regclass_nonbitmap_data \ - |NULLOK const regexp *prog \ - |NN const struct regnode *node|bool doinit \ - |NULLOK SV **listsvp \ - |NULLOK SV **lonly_utf8_locale -#endif -#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) -EXMp |void |_invlist_dump |NN PerlIO *file|I32 level \ - |NN const char* const indent \ - |NN SV* const invlist -#endif +Apd |void |sv_reset |char* s|HV* stash +Afpd |void |sv_setpvf |SV* sv|const char* pat|... +Ap |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args +Apd |void |sv_setiv |SV* sv|IV num +Apd |void |sv_setuv |SV* sv|UV num +Apd |void |sv_setnv |SV* sv|NV num +Apd |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv +Apd |SV* |sv_setref_uv |SV* rv|const char* classname|UV uv +Apd |SV* |sv_setref_nv |SV* rv|const char* classname|NV nv +Apd |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv +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 +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 +Apd |void |sv_unref |SV* sv +Apd |void |sv_unref_flags |SV* sv|U32 flags +Apd |void |sv_untaint |SV* sv +Apd |bool |sv_upgrade |SV* sv|U32 mt +Apd |void |sv_usepvn |SV* sv|char* ptr|STRLEN len +Apd |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \ + |va_list* args|SV** svargs|I32 svmax \ + |bool *maybe_tainted +Apd |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \ + |va_list* args|SV** svargs|I32 svmax \ + |bool *maybe_tainted +Ap |NV |str_to_version |SV *sv +Ap |SV* |swash_init |char* pkg|char* name|SV* listsv \ + |I32 minbits|I32 none +Ap |UV |swash_fetch |SV *sv|U8 *ptr|bool do_utf8 Ap |void |taint_env -Ap |void |taint_proper |NULLOK const char* f|NN const char *const s -Apd |UV |to_utf8_case |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp \ - |NN SV **swashp|NN const char *normal|NULLOK const char *special -Abmd |UV |to_utf8_lower |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp -AMp |UV |_to_utf8_lower_flags |NN const U8 *p|NN U8* ustrp \ - |NULLOK STRLEN *lenp|bool flags -Abmd |UV |to_utf8_upper |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp -AMp |UV |_to_utf8_upper_flags |NN const U8 *p|NN U8* ustrp \ - |NULLOK STRLEN *lenp|bool flags -Abmd |UV |to_utf8_title |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp -AMp |UV |_to_utf8_title_flags |NN const U8 *p|NN U8* ustrp \ - |NULLOK STRLEN *lenp|bool flags -Abmd |UV |to_utf8_fold |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp -AMp |UV |_to_utf8_fold_flags|NN const U8 *p|NN U8* ustrp \ - |NULLOK STRLEN *lenp|U8 flags -#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C) -p |bool |translate_substr_offsets|STRLEN curlen|IV pos1_iv \ - |bool pos1_is_uv|IV len_iv \ - |bool len_is_uv|NN STRLEN *posp \ - |NN STRLEN *lenp -#endif +Ap |void |taint_proper |const char* f|const char* s +Apd |UV |to_utf8_case |U8 *p|U8* ustrp|STRLEN *lenp \ + |SV **swash|char *normal|char *special +Apd |UV |to_utf8_lower |U8 *p|U8* ustrp|STRLEN *lenp +Apd |UV |to_utf8_upper |U8 *p|U8* ustrp|STRLEN *lenp +Apd |UV |to_utf8_title |U8 *p|U8* ustrp|STRLEN *lenp +Apd |UV |to_utf8_fold |U8 *p|U8* ustrp|STRLEN *lenp #if defined(UNLINK_ALL_VERSIONS) -Ap |I32 |unlnk |NN const char* f -#endif -Apd |I32 |unpack_str |NN const char *pat|NN const char *patend|NN const char *s \ - |NULLOK const char *strbeg|NN const char *strend|NULLOK char **new_s \ - |I32 ocnt|U32 flags -Apd |I32 |unpackstring |NN const char *pat|NN const char *patend|NN const char *s \ - |NN const char *strend|U32 flags -Ap |void |unsharepvn |NULLOK const char* sv|I32 len|U32 hash -: Used in gv.c, hv.c -p |void |unshare_hek |NULLOK HEK* hek -: Used in perly.y -#ifdef PERL_MAD -p |OP * |utilize |int aver|I32 floor|NULLOK OP* version \ - |NN OP* idop|NULLOK OP* arg -#else -p |void |utilize |int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* arg -#endif -Ap |U8* |utf16_to_utf8 |NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen -Ap |U8* |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen -AdpPR |STRLEN |utf8_length |NN const U8* s|NN const U8 *e -ApdPR |IV |utf8_distance |NN const U8 *a|NN const U8 *b -ApdPR |U8* |utf8_hop |NN const U8 *s|I32 off -ApMd |U8* |utf8_to_bytes |NN U8 *s|NN STRLEN *len -Apd |int |bytes_cmp_utf8 |NN const U8 *b|STRLEN blen|NN const U8 *u \ - |STRLEN ulen -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 -ApdD |UV |utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen -ApdD |UV |utf8_to_uvuni |NN const U8 *s|NULLOK STRLEN *retlen -ApMD |UV |valid_utf8_to_uvuni |NN const U8 *s|NULLOK STRLEN *retlen -Amd |UV |utf8_to_uvchr_buf |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen -ApdD |UV |utf8_to_uvuni_buf |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen -pM |bool |check_utf8_print |NN const U8 *s|const STRLEN len - -Adp |UV |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags -ApM |UV |valid_utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen - -Ap |UV |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags - -Adm |U8* |uvchr_to_utf8 |NN U8 *d|UV uv -Ap |U8* |uvuni_to_utf8 |NN U8 *d|UV uv -Adm |U8* |uvchr_to_utf8_flags |NN U8 *d|UV uv|UV flags -Apd |U8* |uvoffuni_to_utf8_flags |NN U8 *d|UV uv|UV flags -Ap |U8* |uvuni_to_utf8_flags |NN U8 *d|UV uv|UV flags -Apd |char* |pv_uni_display |NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags -ApdR |char* |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags -: Used by Data::Alias -EXp |void |vivify_defelem |NN SV* sv -: Used in pp.c -pR |SV* |vivify_ref |NN SV* sv|U32 to_what -: Used in pp_sys.c -p |I32 |wait4pid |Pid_t pid|NN int* statusp|int flags -: Used in locale.c and perl.c -p |U32 |parse_unicode_opts|NN const char **popt -Ap |U32 |seed -Xpno |double |drand48_r |NN perl_drand48_t *random_state -Xpno |void |drand48_init_r |NN perl_drand48_t *random_state|U32 seed -: Only used in perl.c -p |void |get_hash_seed |NN unsigned char * const seed_buffer -: Used in doio.c, pp_hot.c, pp_sys.c -p |void |report_evil_fh |NULLOK const GV *gv -: Used in doio.c, pp_hot.c, pp_sys.c -p |void |report_wrongway_fh|NULLOK const GV *gv|const char have -: Used in mg.c, pp.c, pp_hot.c, regcomp.c -XEpd |void |report_uninit |NULLOK const SV *uninit_sv -#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C) -p |void |report_redefined_cv|NN const SV *name \ - |NN const CV *old_cv \ - |NULLOK SV * const *new_const_svp -#endif -Apd |void |warn_sv |NN SV *baseex -Afpd |void |warn |NN const char* pat|... -Apd |void |vwarn |NN const char* pat|NULLOK va_list* args -Afp |void |warner |U32 err|NN const char* pat|... -Afp |void |ck_warner |U32 err|NN const char* pat|... -Afp |void |ck_warner_d |U32 err|NN const char* pat|... -Ap |void |vwarner |U32 err|NN const char* pat|NULLOK va_list* args -: FIXME -p |void |watch |NN char** addr -Am |I32 |whichsig |NN const char* sig -Ap |I32 |whichsig_sv |NN SV* sigsv -Ap |I32 |whichsig_pv |NN const char* sig -Ap |I32 |whichsig_pvn |NN const char* sig|STRLEN len -: used to check for NULs in pathnames and other names -AiR |bool |is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name -: Used in pp_ctl.c -p |void |write_to_stderr|NN SV* msv -: Used in op.c -p |int |yyerror |NN const char *const s -p |int |yyerror_pv |NN const char *const s|U32 flags -p |int |yyerror_pvn |NN const char *const s|STRLEN len|U32 flags -: Used in perly.y, and by Data::Alias -EXp |int |yylex -p |void |yyunlex -: Used in perl.c, pp_ctl.c -p |int |yyparse |int gramtype -: Only used in scope.c -p |void |parser_free |NN const yy_parser *parser -#ifdef PERL_CORE -p |void |parser_free_nexttoke_ops|NN yy_parser *parser \ - |NN OPSLAB *slab -#endif -#if defined(PERL_IN_TOKE_C) -s |int |yywarn |NN const char *const s|U32 flags -#endif +Ap |I32 |unlnk |char* f +#endif +#if defined(USE_5005THREADS) +Ap |void |unlock_condpair|void* svv +#endif +Apd |I32 |unpack_str |char *pat|char *patend|char *s|char *strbeg|char *strend|char **new_s|I32 ocnt|U32 flags +Ap |void |unsharepvn |const char* sv|I32 len|U32 hash +p |void |unshare_hek |HEK* hek +p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg +Ap |U8* |utf16_to_utf8 |U8* p|U8 *d|I32 bytelen|I32 *newlen +Ap |U8* |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen +Adp |STRLEN |utf8_length |U8* s|U8 *e +Apd |IV |utf8_distance |U8 *a|U8 *b +Apd |U8* |utf8_hop |U8 *s|I32 off +ApMd |U8* |utf8_to_bytes |U8 *s|STRLEN *len +ApMd |U8* |bytes_from_utf8|U8 *s|STRLEN *len|bool *is_utf8 +ApMd |U8* |bytes_to_utf8 |U8 *s|STRLEN *len +Apd |UV |utf8_to_uvchr |U8 *s|STRLEN* retlen +Apd |UV |utf8_to_uvuni |U8 *s|STRLEN* retlen +Adp |UV |utf8n_to_uvchr |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags +Adp |UV |utf8n_to_uvuni |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags +Apd |U8* |uvchr_to_utf8 |U8 *d|UV uv +Ap |U8* |uvuni_to_utf8 |U8 *d|UV uv +Ap |U8* |uvchr_to_utf8_flags |U8 *d|UV uv|UV flags +Apd |U8* |uvuni_to_utf8_flags |U8 *d|UV uv|UV flags +Apd |char* |pv_uni_display |SV *dsv|U8 *spv|STRLEN len \ + |STRLEN pvlim|UV flags +Apd |char* |sv_uni_display |SV *dsv|SV *ssv|STRLEN pvlim|UV flags +p |void |vivify_defelem |SV* sv +p |void |vivify_ref |SV* sv|U32 to_what +p |I32 |wait4pid |Pid_t pid|int* statusp|int flags +p |void |report_evil_fh |GV *gv|IO *io|I32 op +pd |void |report_uninit +Afpd |void |warn |const char* pat|... +Ap |void |vwarn |const char* pat|va_list* args +Afp |void |warner |U32 err|const char* pat|... +Ap |void |vwarner |U32 err|const char* pat|va_list* args +p |void |watch |char** addr +Ap |I32 |whichsig |char* sig +p |int |yyerror |char* s +#ifdef USE_PURE_BISON +p |int |yylex_r |YYSTYPE *lvalp|int *lcharp +#endif +p |int |yylex +p |int |yyparse +p |int |yywarn |char* s #if defined(MYMALLOC) -Ap |void |dump_mstats |NN const char* s -Ap |int |get_mstats |NN perl_mstats_t *buf|int buflen|int level +Ap |void |dump_mstats |char* s +Ap |int |get_mstats |perl_mstats_t *buf|int buflen|int level #endif -Anpa |Malloc_t|safesysmalloc |MEM_SIZE nbytes -Anpa |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size -Anpa |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes +Anp |Malloc_t|safesysmalloc |MEM_SIZE nbytes +Anp |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size +Anp |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes Anp |Free_t |safesysfree |Malloc_t where -Asrnx |void |croak_memory_wrap +#if defined(LEAKTEST) +Anp |Malloc_t|safexmalloc |I32 x|MEM_SIZE size +Anp |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size +Anp |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size +Anp |void |safexfree |Malloc_t where +#endif #if defined(PERL_GLOBAL_STRUCT) Ap |struct perl_vars *|GetVars -Ap |struct perl_vars*|init_global_struct -Ap |void |free_global_struct|NN struct perl_vars *plvarsp #endif Ap |int |runops_standard Ap |int |runops_debug -Afpd |void |sv_catpvf_mg |NN SV *const sv|NN const char *const pat|... -Apd |void |sv_vcatpvf_mg |NN SV *const sv|NN const char *const pat \ - |NULLOK va_list *const args -Apd |void |sv_catpv_mg |NN SV *const sv|NULLOK const char *const ptr -Apdbm |void |sv_catpvn_mg |NN SV *sv|NN const char *ptr|STRLEN len -Apdbm |void |sv_catsv_mg |NN SV *dsv|NULLOK SV *ssv -Afpd |void |sv_setpvf_mg |NN SV *const sv|NN const char *const pat|... -Apd |void |sv_vsetpvf_mg |NN SV *const sv|NN const char *const pat \ - |NULLOK va_list *const args -Apd |void |sv_setiv_mg |NN SV *const sv|const IV i -Apdb |void |sv_setpviv_mg |NN SV *const sv|const IV iv -Apd |void |sv_setuv_mg |NN SV *const sv|const UV u -Apd |void |sv_setnv_mg |NN SV *const sv|const NV num -Apd |void |sv_setpv_mg |NN SV *const sv|NULLOK const char *const ptr -Apd |void |sv_setpvn_mg |NN SV *const sv|NN const char *const ptr|const STRLEN len -Apd |void |sv_setsv_mg |NN SV *const dstr|NULLOK SV *const sstr -Apdbm |void |sv_usepvn_mg |NN SV *sv|NULLOK char *ptr|STRLEN len -ApR |MGVTBL*|get_vtbl |int vtbl_id -Apd |char* |pv_display |NN SV *dsv|NN const char *pv|STRLEN cur|STRLEN len \ +#if defined(USE_5005THREADS) +Ap |SV* |sv_lock |SV *sv +#endif +Afpd |void |sv_catpvf_mg |SV *sv|const char* pat|... +Ap |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args +Apd |void |sv_catpv_mg |SV *sv|const char *ptr +Apd |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len +Apd |void |sv_catsv_mg |SV *dstr|SV *sstr +Afpd |void |sv_setpvf_mg |SV *sv|const char* pat|... +Ap |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args +Apd |void |sv_setiv_mg |SV *sv|IV i +Apd |void |sv_setuv_mg |SV *sv|UV u +Apd |void |sv_setnv_mg |SV *sv|NV num +Apd |void |sv_setpv_mg |SV *sv|const char *ptr +Apd |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len +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 +Ap |char* |pv_display |SV *dsv|char *pv|STRLEN cur|STRLEN len \ |STRLEN pvlim -Apd |char* |pv_escape |NN SV *dsv|NN char const * const str\ - |const STRLEN count|const STRLEN max\ - |NULLOK STRLEN * const escaped\ - |const U32 flags -Apd |char* |pv_pretty |NN SV *dsv|NN char const * const str\ - |const STRLEN count|const STRLEN max\ - |NULLOK char const * const start_color\ - |NULLOK char const * const end_color\ - |const U32 flags -Afp |void |dump_indent |I32 level|NN PerlIO *file|NN const char* pat|... -Ap |void |dump_vindent |I32 level|NN PerlIO *file|NN const char* pat \ - |NULLOK va_list *args -Ap |void |do_gv_dump |I32 level|NN PerlIO *file|NN const char *name\ - |NULLOK GV *sv -Ap |void |do_gvgv_dump |I32 level|NN PerlIO *file|NN const char *name\ - |NULLOK GV *sv -Ap |void |do_hv_dump |I32 level|NN PerlIO *file|NN const char *name\ - |NULLOK HV *sv -Ap |void |do_magic_dump |I32 level|NN PerlIO *file|NN const MAGIC *mg|I32 nest \ +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 +Ap |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv +Ap |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv +Ap |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv +Ap |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \ |I32 maxnest|bool dumpops|STRLEN pvlim -Ap |void |do_op_dump |I32 level|NN PerlIO *file|NULLOK const OP *o -Ap |void |do_pmop_dump |I32 level|NN PerlIO *file|NULLOK const PMOP *pm -Ap |void |do_sv_dump |I32 level|NN PerlIO *file|NULLOK SV *sv|I32 nest \ +Ap |void |do_op_dump |I32 level|PerlIO *file|OP *o +Ap |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm +Ap |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \ |I32 maxnest|bool dumpops|STRLEN pvlim -Ap |void |magic_dump |NULLOK const MAGIC *mg +Ap |void |magic_dump |MAGIC *mg +#if defined(PERL_FLEXIBLE_EXCEPTIONS) +Ap |void* |default_protect|volatile JMPENV *je|int *excpt \ + |protect_body_t body|... +Ap |void* |vdefault_protect|volatile JMPENV *je|int *excpt \ + |protect_body_t body|va_list *args +#endif Ap |void |reginitcolors -ApdRmb |char* |sv_2pv_nolen |NN SV* sv -ApdRmb |char* |sv_2pvutf8_nolen|NN SV* sv -ApdRmb |char* |sv_2pvbyte_nolen|NN SV* sv -AmdbR |char* |sv_pv |NN SV *sv -AmdbR |char* |sv_pvutf8 |NN SV *sv -AmdbR |char* |sv_pvbyte |NN SV *sv -Amdb |STRLEN |sv_utf8_upgrade|NN SV *sv -Amd |STRLEN |sv_utf8_upgrade_nomg|NN SV *sv -ApdM |bool |sv_utf8_downgrade|NN SV *const sv|const bool fail_ok -Apd |void |sv_utf8_encode |NN SV *const sv -ApdM |bool |sv_utf8_decode |NN SV *const sv -Apdmb |void |sv_force_normal|NN SV *sv -Apd |void |sv_force_normal_flags|NN SV *const sv|const U32 flags -Ap |void |tmps_grow |SSize_t n -Apd |SV* |sv_rvweaken |NN SV *const sv -: This is indirectly referenced by globals.c. This is somewhat annoying. -p |int |magic_killbackrefs|NN SV *sv|NN MAGIC *mg -Ap |OP* |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block -Am |CV* |newATTRSUB |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block -pX |CV* |newATTRSUB_x |I32 floor|NULLOK OP *o|NULLOK OP *proto \ - |NULLOK OP *attrs|NULLOK OP *block \ - |bool o_is_gv -Ap |CV * |newMYSUB |I32 floor|NN OP *o|NULLOK OP *proto \ - |NULLOK OP *attrs|NULLOK OP *block -p |CV* |newSTUB |NN GV *gv|bool fake -: Used in perly.y -p |OP * |my_attrs |NN OP *o|NULLOK OP *attrs +Apd |char* |sv_2pv_nolen |SV* sv +Apd |char* |sv_2pvutf8_nolen|SV* sv +Apd |char* |sv_2pvbyte_nolen|SV* sv +Amd |char* |sv_pv |SV *sv +Amd |char* |sv_pvutf8 |SV *sv +Amd |char* |sv_pvbyte |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 +Apd |void |sv_force_normal|SV *sv +Apd |void |sv_force_normal_flags|SV *sv|U32 flags +Ap |void |tmps_grow |I32 n +Apd |SV* |sv_rvweaken |SV *sv +p |int |magic_killbackrefs|SV *sv|MAGIC *mg +Ap |OP* |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block +Ap |CV* |newATTRSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block +Ap |void |newMYSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block +p |OP * |my_attrs |OP *o|OP *attrs +p |void |boot_core_xsutils #if defined(USE_ITHREADS) -ApR |PERL_CONTEXT*|cx_dup |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param -ApR |PERL_SI*|si_dup |NULLOK PERL_SI* si|NN CLONE_PARAMS* param -Apa |ANY* |ss_dup |NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param -ApR |void* |any_dup |NULLOK void* v|NN const PerlInterpreter* proto_perl -ApR |HE* |he_dup |NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param -ApR |HEK* |hek_dup |NULLOK HEK* e|NN CLONE_PARAMS* param -Ap |void |re_dup_guts |NN const REGEXP *sstr|NN REGEXP *dstr \ - |NN CLONE_PARAMS* param -Ap |PerlIO*|fp_dup |NULLOK PerlIO *const fp|const char type|NN CLONE_PARAMS *const param -ApR |DIR* |dirp_dup |NULLOK DIR *const dp|NN CLONE_PARAMS *const param -ApR |GP* |gp_dup |NULLOK GP *const gp|NN CLONE_PARAMS *const param -ApR |MAGIC* |mg_dup |NULLOK MAGIC *mg|NN CLONE_PARAMS *const param -#if defined(PERL_IN_SV_C) -s |SV ** |sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \ - |SSize_t items|NN CLONE_PARAMS *const param -sR |SV* |sv_dup_common |NN const SV *const sstr \ - |NN CLONE_PARAMS *const 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|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 +#if defined(HAVE_INTERP_INTERN) +Ap |void |sys_intern_dup |struct interp_intern* src \ + |struct interp_intern* dst #endif -ApR |SV* |sv_dup |NULLOK const SV *const sstr|NN CLONE_PARAMS *const param -ApR |SV* |sv_dup_inc |NULLOK const SV *const sstr \ - |NN CLONE_PARAMS *const param -Ap |void |rvpv_dup |NN SV *const dstr|NN const SV *const sstr|NN CLONE_PARAMS *const param -Ap |yy_parser*|parser_dup |NULLOK const yy_parser *const proto|NN CLONE_PARAMS *const param +Ap |PTR_TBL_t*|ptr_table_new +Ap |void* |ptr_table_fetch|PTR_TBL_t *tbl|void *sv +Ap |void |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv +Ap |void |ptr_table_split|PTR_TBL_t *tbl +Ap |void |ptr_table_clear|PTR_TBL_t *tbl +Ap |void |ptr_table_free|PTR_TBL_t *tbl #endif -Apa |PTR_TBL_t*|ptr_table_new -ApR |void* |ptr_table_fetch|NN PTR_TBL_t *const tbl|NULLOK const void *const sv -Ap |void |ptr_table_store|NN PTR_TBL_t *const tbl|NULLOK const void *const oldsv \ - |NN void *const newsv -Ap |void |ptr_table_split|NN PTR_TBL_t *const tbl -ApD |void |ptr_table_clear|NULLOK PTR_TBL_t *const tbl -Ap |void |ptr_table_free|NULLOK PTR_TBL_t *const tbl #if defined(HAVE_INTERP_INTERN) Ap |void |sys_intern_clear Ap |void |sys_intern_init -# if defined(USE_ITHREADS) -Ap |void |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern* dst -# endif #endif -AmopP |const XOP * |custom_op_xop |NN const OP *o -ApR |const char * |custom_op_name |NN const OP *o -ApR |const char * |custom_op_desc |NN const OP *o -pRX |XOPRETANY |custom_op_get_field |NN const OP *o|const xop_flags_enum field -Aop |void |custom_op_register |NN Perl_ppaddr_t ppaddr \ - |NN const XOP *xop +Ap |char * |custom_op_name|OP* op +Ap |char * |custom_op_desc|OP* op -Adp |void |sv_nosharing |NULLOK SV *sv -Adpbm |void |sv_nolocking |NULLOK SV *sv -Adp |bool |sv_destroyable |NULLOK SV *sv -#ifdef NO_MATHOMS -Adpbm |void |sv_nounlocking |NULLOK SV *sv -#else -Adpb |void |sv_nounlocking |NULLOK SV *sv -#endif +Adp |void |sv_nosharing |SV * +Adp |void |sv_nolocking |SV * +Adp |void |sv_nounlocking |SV * Adp |int |nothreadhook -p |void |init_constants - -#if defined(PERL_IN_DOOP_C) -sR |I32 |do_trans_simple |NN SV * const sv -sR |I32 |do_trans_count |NN SV * const sv -sR |I32 |do_trans_complex |NN SV * const sv -sR |I32 |do_trans_simple_utf8 |NN SV * const sv -sR |I32 |do_trans_count_utf8 |NN SV * const sv -sR |I32 |do_trans_complex_utf8 |NN SV * const sv -#endif - -#if defined(PERL_IN_GV_C) -s |void |gv_init_svtype |NN GV *gv|const svtype sv_type -s |void |gv_magicalize_isa |NN GV *gv -s |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \ - |NN const char **name|NN STRLEN *len \ - |NN const char *nambeg|STRLEN full_len \ - |const U32 is_utf8|const I32 add -s |bool|find_default_stash|NN HV **stash|NN const char *name \ - |STRLEN len|const U32 is_utf8|const I32 add \ - |svtype sv_type -s |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \ - |STRLEN len|bool addmg \ - |svtype sv_type -s |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type -s |bool|gv_is_in_main|NN const char *name|STRLEN len \ - |const U32 is_utf8 -s |HV* |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \ - |NN const char *methpv|const U32 flags -#endif - -#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) -po |SV* |hfree_next_entry |NN HV *hv|NN STRLEN *indexp -#endif - -#if defined(PERL_IN_HV_C) -s |void |hsplit |NN HV *hv|STRLEN const oldsize|STRLEN newsize -s |void |hfreeentries |NN HV *hv -s |SV* |hv_free_ent_ret|NN HV *hv|NN HE *entry -sa |HE* |new_he -sanR |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags -sn |void |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store -s |void |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash -sR |HEK* |share_hek_flags|NN const char *str|I32 len|U32 hash|int flags -rs |void |hv_notallowed |int flags|NN const char *key|I32 klen|NN const char *msg -in |U32|ptr_hash|PTRV u -s |struct xpvhv_aux*|hv_auxinit|NN HV *hv -sn |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter -sM |SV* |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \ - |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \ - |U32 hash -sM |void |clear_placeholders |NN HV *hv|U32 items -#endif -#if defined(PERL_IN_MG_C) -s |void |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags --s |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth -s |SV* |magic_methcall1|NN SV *sv|NN const MAGIC *mg \ - |NN SV *meth|U32 flags \ - |int n|NULLOK SV *val -s |void |restore_magic |NULLOK const void *p -s |void |unwind_handler_stack|NULLOK const void *p -s |void |fixup_errno_string|NN SV* sv - -#endif - -#if defined(PERL_IN_OP_C) -sRn |bool |is_handle_constructor|NN const OP *o|I32 numargs -sR |I32 |is_list_assignment|NULLOK const OP *o -s |void |forget_pmop |NN PMOP *const o -s |void |find_and_forget_pmops |NN OP *o -s |void |cop_free |NN COP *cop -s |OP* |modkids |NULLOK OP *o|I32 type -s |OP* |scalarboolean |NN OP *o -sR |OP* |newDEFSVOP -sR |OP* |search_const |NN OP *o -sR |OP* |new_logop |I32 type|I32 flags|NN OP **firstp|NN OP **otherp -s |void |simplify_sort |NN OP *o -s |void |null_listop_in_list_context |NN OP* o -s |SV* |gv_ename |NN GV *gv -sRn |bool |scalar_mod_type|NULLOK const OP *o|I32 type -s |OP * |my_kid |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp -s |OP * |dup_attrlist |NN OP *o -s |void |apply_attrs |NN HV *stash|NN SV *target|NULLOK OP *attrs -s |void |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp -s |void |bad_type_pv |I32 n|NN const char *t|NN const char *name|U32 flags|NN const OP *kid -s |void |bad_type_gv |I32 n|NN const char *t|NN GV *gv|U32 flags|NN const OP *kid -s |void |no_bareword_allowed|NN OP *o -sR |OP* |no_fh_allowed|NN OP *o -sR |OP* |too_few_arguments_sv|NN OP *o|NN SV* namesv|U32 flags -sR |OP* |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags -s |OP* |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags -sR |OP* |too_many_arguments_sv|NN OP *o|NN SV* namesv|U32 flags -s |bool |looks_like_bool|NN const OP* o -s |OP* |newGIVWHENOP |NULLOK OP* cond|NN OP *block \ - |I32 enter_opcode|I32 leave_opcode \ - |PADOFFSET entertarg -s |OP* |ref_array_or_hash|NULLOK OP* cond -s |void |process_special_blocks |I32 floor \ - |NN const char *const fullname\ - |NN GV *const gv|NN CV *const cv -#endif -Xpa |void* |Slab_Alloc |size_t sz -Xp |void |Slab_Free |NN void *op -#if defined(PERL_DEBUG_READONLY_OPS) -# if defined(PERL_CORE) -px |void |Slab_to_ro |NN OPSLAB *slab -px |void |Slab_to_rw |NN OPSLAB *const slab -# endif -: Used in OpREFCNT_inc() in sv.c -poxM |OP * |op_refcnt_inc |NULLOK OP *o -: FIXME - can be static. -poxM |PADOFFSET |op_refcnt_dec |NN OP *o +END_EXTERN_C + +#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT) +s |I32 |avhv_index_sv |SV* sv +s |I32 |avhv_index |AV* av|SV* sv|U32 hash +#endif + +#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT) +s |I32 |do_trans_simple |SV *sv +s |I32 |do_trans_count |SV *sv +s |I32 |do_trans_complex |SV *sv +s |I32 |do_trans_simple_utf8 |SV *sv +s |I32 |do_trans_count_utf8 |SV *sv +s |I32 |do_trans_complex_utf8 |SV *sv +#endif + +#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT) +s |void |gv_init_sv |GV *gv|I32 sv_type +s |void |require_errno |GV *gv +#endif + +#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT) +s |void |hsplit |HV *hv +s |void |hfreeentries |HV *hv +s |void |more_he +s |HE* |new_he +s |void |del_he |HE *p +s |HEK* |save_hek_flags |const char *str|I32 len|U32 hash|int flags +s |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store +s |void |unshare_hek_or_pvn|HEK* hek|const char* sv|I32 len|U32 hash +s |HEK* |share_hek_flags|const char* sv|I32 len|U32 hash|int flags +s |SV** |hv_fetch_flags |HV* tb|const char* key|I32 klen|I32 lval \ + |int flags +s |void |hv_notallowed |int flags|const char *key|I32 klen|const char *msg +#endif + +#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT) +s |void |save_magic |I32 mgs_ix|SV *sv +s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth +s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \ + |int n|SV *val +#endif + +#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT) +s |I32 |list_assignment|OP *o +s |void |bad_type |I32 n|char *t|char *name|OP *kid +s |void |cop_free |COP *cop +s |OP* |modkids |OP *o|I32 type +s |void |no_bareword_allowed|OP *o +s |OP* |no_fh_allowed |OP *o +s |OP* |scalarboolean |OP *o +s |OP* |too_few_arguments|OP *o|char* name +s |OP* |too_many_arguments|OP *o|char* name +s |PADOFFSET|pad_addlex |SV* name +s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \ + |CV* startcv|I32 cx_ix|I32 saweval|U32 flags +s |OP* |newDEFSVOP +s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp +s |void |simplify_sort |OP *o +s |bool |is_handle_constructor |OP *o|I32 argnum +s |char* |gv_ename |GV *gv +# if defined(DEBUG_CLOSURES) +s |void |cv_dump |CV *cv +# endif +s |CV* |cv_clone2 |CV *proto|CV *outside +s |bool |scalar_mod_type|OP *o|I32 type +s |OP * |my_kid |OP *o|OP *attrs|OP **imopsp +s |OP * |dup_attrlist |OP *o +s |void |apply_attrs |HV *stash|SV *target|OP *attrs|bool for_my +s |void |apply_attrs_my |HV *stash|OP *target|OP *attrs|OP **imopsp +# if defined(PL_OP_SLAB_ALLOC) +s |void* |Slab_Alloc |int m|size_t sz +s |void |Slab_Free |void *op +# endif #endif -#if defined(PERL_IN_PERL_C) -s |void |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp -s |void |forbid_setid |const char flag|const bool suidscript -s |void |incpush |NN const char *const dir|STRLEN len \ - |U32 flags -s |SV* |mayberelocate |NN const char *const dir|STRLEN len \ - |U32 flags -s |void |incpush_use_sep|NN const char *p|STRLEN len|U32 flags +#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT) +s |void |find_beginning +s |void |forbid_setid |char * +s |void |incpush |char *|int|int s |void |init_interp s |void |init_ids +s |void |init_lexer s |void |init_main_stash s |void |init_perllib -s |void |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env +s |void |init_postdump_symbols|int|char **|char ** s |void |init_predump_symbols rs |void |my_exit_jump s |void |nuke_stacks -s |PerlIO *|open_script |NN const char *scriptname|bool dosearch \ - |NN bool *suidscript -sr |void |usage -#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW -so |void |validate_suid |NN PerlIO *rsfp -#endif -sr |void |minus_v - -s |void* |parse_body |NULLOK char **env|XSINIT_t xsinit -rs |void |run_body |I32 oldscope -# ifndef PERL_IS_MINIPERL -s |SV * |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem +s |void |open_script |char *|bool|SV *|int *fd +s |void |usage |char * +s |void |validate_suid |char *|char*|int +# if defined(IAMSUID) +s |int |fd_on_nosuid_fs|int fd # endif -#endif - -#if defined(PERL_IN_PP_C) -s |void |do_chomp |NN SV *retval|NN SV *sv|bool chomping -s |OP* |do_delete_local -sR |SV* |refto |NN SV* sv -#endif -#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) -: Used in pp_hot.c -pRxo |GV* |softref2xv |NN SV *const sv|NN const char *const what \ - |const svtype type|NN SV ***spp -#endif - -#if defined(PERL_IN_PP_PACK_C) -s |I32 |unpack_rec |NN struct tempsym* symptr|NN const char *s \ - |NN const char *strbeg|NN const char *strend|NULLOK const char **new_s -s |SV ** |pack_rec |NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist -s |SV* |mul128 |NN SV *sv|U8 m -s |I32 |measure_struct |NN struct tempsym* symptr -s |bool |next_symbol |NN struct tempsym* symptr -sR |SV* |is_an_int |NN const char *s|STRLEN l -s |int |div128 |NN SV *pnum|NN bool *done -s |const char *|group_end |NN const char *patptr|NN const char *patend \ - |char ender -sR |const char *|get_num |NN const char *patptr|NN I32 *lenptr -ns |bool |need_utf8 |NN const char *pat|NN const char *patend -ns |char |first_symbol |NN const char *pat|NN const char *patend -sR |char * |sv_exp_grow |NN SV *sv|STRLEN needed -snR |char * |bytes_to_uni |NN const U8 *start|STRLEN len|NN char *dest \ - |const bool needs_swap -#endif - -#if defined(PERL_IN_PP_CTL_C) -sR |OP* |docatch |NULLOK OP *o -sR |OP* |dofindlabel |NN OP *o|NN const char *label|STRLEN len \ - |U32 flags|NN OP **opstack|NN OP **oplimit -s |MAGIC *|doparseform |NN SV *sv -snR |bool |num_overflow |NV value|I32 fldsize|I32 frcsize -sR |I32 |dopoptoeval |I32 startingblock -sR |I32 |dopoptogiven |I32 startingblock -sR |I32 |dopoptolabel |NN const char *label|STRLEN len|U32 flags -sR |I32 |dopoptoloop |I32 startingblock -sR |I32 |dopoptosub_at |NN const PERL_CONTEXT* cxstk|I32 startingblock -sR |I32 |dopoptowhen |I32 startingblock -s |void |save_lines |NULLOK AV *array|NN SV *sv -s |bool |doeval |int gimme \ - |NULLOK CV* outside|U32 seq|NULLOK HV* hh -sR |PerlIO *|check_type_and_open|NN SV *name -#ifndef PERL_DISABLE_PMC -sR |PerlIO *|doopen_pm |NN SV *name -#endif -s |SV ** |adjust_stack_on_leave|NN SV **newsp|NN SV **sp|NN SV **mark|I32 gimme \ - |U32 flags|bool lvalue -iRn |bool |path_is_searchable|NN const char *name -sR |I32 |run_user_filter|int idx|NN SV *buf_sv|int maxlen -sR |PMOP* |make_matcher |NN REGEXP* re -sR |bool |matcher_matches_sv|NN PMOP* matcher|NN SV* sv -s |void |destroy_matcher|NN PMOP* matcher -s |OP* |do_smartmatch |NULLOK HV* seen_this \ - |NULLOK HV* seen_other|const bool copied -#endif - -#if defined(PERL_IN_PP_HOT_C) -s |void |do_oddball |NN SV **oddkey|NN SV **firstkey -sR |SV* |method_common |NN SV* meth|NULLOK U32* hashp -#endif - -#if defined(PERL_IN_PP_SORT_C) -s |I32 |sv_ncmp |NN SV *const a|NN SV *const b -s |I32 |sv_i_ncmp |NN SV *const a|NN SV *const b -s |I32 |amagic_ncmp |NN SV *const a|NN SV *const b -s |I32 |amagic_i_ncmp |NN SV *const a|NN SV *const b -s |I32 |amagic_cmp |NN SV *const str1|NN SV *const str2 -s |I32 |amagic_cmp_locale|NN SV *const str1|NN SV *const str2 -s |I32 |sortcv |NN SV *const a|NN SV *const b -s |I32 |sortcv_xsub |NN SV *const a|NN SV *const b -s |I32 |sortcv_stacked |NN SV *const a|NN SV *const b -s |void |qsortsvu |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t compare -#endif - -#if defined(PERL_IN_PP_SYS_C) -s |OP* |doform |NN CV *cv|NN GV *gv|NULLOK OP *retop -# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) -sR |int |dooneliner |NN const char *cmd|NN const char *filename +s |void* |parse_body |char **env|XSINIT_t xsinit +s |void* |run_body |I32 oldscope +s |void |call_body |OP *myop|int is_eval +s |void* |call_list_body |CV *cv +#if defined(PERL_FLEXIBLE_EXCEPTIONS) +s |void* |vparse_body |va_list args +s |void* |vrun_body |va_list args +s |void* |vcall_body |va_list args +s |void* |vcall_list_body|va_list args +#endif +# if defined(USE_5005THREADS) +s |struct perl_thread * |init_main_thread # endif -s |SV * |space_join_names_mortal|NN char *const *array #endif -p |OP * |tied_method|NN SV *methname|NN SV **sp \ - |NN SV *const sv|NN const MAGIC *const mg \ - |const U32 flags|U32 argc|... -#if defined(PERL_IN_REGCOMP_C) -Es |regnode*|reg |NN RExC_state_t *pRExC_state \ - |I32 paren|NN I32 *flagp|U32 depth -Es |regnode*|reganode |NN RExC_state_t *pRExC_state|U8 op \ - |U32 arg -Es |regnode*|regatom |NN RExC_state_t *pRExC_state \ - |NN I32 *flagp|U32 depth -Es |regnode*|regbranch |NN RExC_state_t *pRExC_state \ - |NN I32 *flagp|I32 first|U32 depth -Ei |STRLEN |reguni |NN const RExC_state_t *pRExC_state \ - |UV uv|NN char *s -Es |void |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \ - |NN regnode* const node \ - |NULLOK SV* const cp_list \ - |NULLOK SV* const runtime_defns \ - |NULLOK SV* const only_utf8_locale_list \ - |NULLOK SV* const swash \ - |const bool has_user_defined_property -Es |regnode*|regclass |NN RExC_state_t *pRExC_state \ - |NN I32 *flagp|U32 depth|const bool stop_at_1 \ - |bool allow_multi_fold \ - |const bool silence_non_portable \ - |NULLOK SV** ret_invlist -Es |bool|could_it_be_a_POSIX_class|NN RExC_state_t *pRExC_state -Es |regnode*|handle_regex_sets|NN RExC_state_t *pRExC_state \ - |NULLOK SV ** return_invlist \ - |NN I32 *flagp|U32 depth \ - |NN char * const oregcomp_parse -Es |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state -Es |regnode*|reg_node |NN RExC_state_t *pRExC_state|U8 op -Es |UV |reg_recode |const char value|NN SV **encp -Es |regnode*|regpiece |NN RExC_state_t *pRExC_state \ - |NN I32 *flagp|U32 depth -Es |bool |grok_bslash_N |NN RExC_state_t *pRExC_state \ - |NULLOK regnode** nodep|NULLOK UV *valuep \ - |NN I32 *flagp|U32 depth|bool in_char_class \ - |const bool strict -Es |void |reginsert |NN RExC_state_t *pRExC_state \ - |U8 op|NN regnode *opnd|U32 depth -Es |void |regtail |NN RExC_state_t *pRExC_state \ - |NN regnode *p|NN const regnode *val|U32 depth -Es |SV * |reg_scan_name |NN RExC_state_t *pRExC_state \ - |U32 flags -Es |U32 |join_exact |NN RExC_state_t *pRExC_state \ - |NN regnode *scan|NN UV *min_subtract \ - |NN bool *unfolded_multi_char \ - |U32 flags|NULLOK regnode *val|U32 depth -EsRn |char * |regwhite |NN RExC_state_t *pRExC_state \ - |NN char *p -EsRn |char * |regpatws |NN RExC_state_t *pRExC_state \ - |NN char *p|const bool recognize_comment -Ei |void |alloc_maybe_populate_EXACT|NN RExC_state_t *pRExC_state \ - |NN regnode *node|NN I32 *flagp|STRLEN len \ - |UV code_point|bool downgradable -Ei |U8 |compute_EXACTish|NN RExC_state_t *pRExC_state -Es |char * |nextchar |NN RExC_state_t *pRExC_state -Es |bool |reg_skipcomment|NN RExC_state_t *pRExC_state -Es |void |scan_commit |NN const RExC_state_t *pRExC_state \ - |NN struct scan_data_t *data \ - |NN SSize_t *minlenp \ - |int is_inf -Es |void |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr -Es |void |ssc_anything |NN regnode_ssc *ssc -EsR |int |ssc_is_anything|NN const regnode_ssc *ssc -Es |void |ssc_init |NN const RExC_state_t *pRExC_state \ - |NN regnode_ssc *ssc -EsR |int |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \ - |NN const regnode_ssc *ssc -Es |void |ssc_and |NN const RExC_state_t *pRExC_state \ - |NN regnode_ssc *ssc \ - |NN const regnode_charclass *and_with -Es |void |ssc_or |NN const RExC_state_t *pRExC_state \ - |NN regnode_ssc *ssc \ - |NN const regnode_charclass *or_with -Es |SV* |get_ANYOF_cp_list_for_ssc \ - |NN const RExC_state_t *pRExC_state \ - |NN const regnode_charclass* const node -Ei |void |ssc_intersection|NN regnode_ssc *ssc \ - |NN SV* const invlist|const bool invert_2nd -Ei |void |ssc_union |NN regnode_ssc *ssc \ - |NN SV* const invlist|const bool invert_2nd -Ei |void |ssc_add_range |NN regnode_ssc *ssc \ - |UV const start|UV const end -Ei |void |ssc_cp_and |NN regnode_ssc *ssc \ - |UV const cp -Ei |void |ssc_clear_locale|NN regnode_ssc *ssc -Es |void |ssc_finalize |NN RExC_state_t *pRExC_state \ - |NN regnode_ssc *ssc -Es |SSize_t|study_chunk |NN RExC_state_t *pRExC_state \ - |NN regnode **scanp|NN SSize_t *minlenp \ - |NN SSize_t *deltap|NN regnode *last \ - |NULLOK struct scan_data_t *data \ - |I32 stopparen|U32 recursed_depth \ - |NULLOK regnode_ssc *and_withp \ - |U32 flags|U32 depth -EsRn |U32 |add_data |NN RExC_state_t* const pRExC_state \ - |NN const char* const s|const U32 n -rs |void |re_croak2 |bool utf8|NN const char* pat1|NN const char* pat2|... -Ei |I32 |regpposixcc |NN RExC_state_t *pRExC_state \ - |I32 value|const bool strict -Es |I32 |make_trie |NN RExC_state_t *pRExC_state \ - |NN regnode *startbranch|NN regnode *first \ - |NN regnode *last|NN regnode *tail \ - |U32 word_count|U32 flags|U32 depth -Es |void |make_trie_failtable |NN RExC_state_t *pRExC_state \ - |NN regnode *source|NN regnode *stclass \ - |U32 depth -# ifdef DEBUGGING -Es |void |regdump_intflags|NULLOK const char *lead| const U32 flags -Es |void |regdump_extflags|NULLOK const char *lead| const U32 flags -Es |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \ - |NN const regnode *node \ - |NULLOK const regnode *last \ - |NULLOK const regnode *plast \ - |NN SV* sv|I32 indent|U32 depth -Es |void |put_byte |NN SV* sv|int c -Es |bool |put_latin1_charclass_innards|NN SV* sv|NN char* bitmap -Es |void |put_range |NN SV* sv|UV start|UV end -Es |void |dump_trie |NN const struct _reg_trie_data *trie\ - |NULLOK HV* widecharmap|NN AV *revcharmap\ - |U32 depth -Es |void |dump_trie_interim_list|NN const struct _reg_trie_data *trie\ - |NULLOK HV* widecharmap|NN AV *revcharmap\ - |U32 next_alloc|U32 depth -Es |void |dump_trie_interim_table|NN const struct _reg_trie_data *trie\ - |NULLOK HV* widecharmap|NN AV *revcharmap\ - |U32 next_alloc|U32 depth -Es |U8 |regtail_study |NN RExC_state_t *pRExC_state \ - |NN regnode *p|NN const regnode *val|U32 depth +#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT) +s |SV* |refto |SV* sv +s |U32 |seed +#endif + +#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT) +s |void |doencodes |SV* sv|char* s|I32 len +s |SV* |mul128 |SV *sv|U8 m +s |SV* |is_an_int |char *s|STRLEN l +s |int |div128 |SV *pnum|bool *done +s |char * |next_symbol |char *pat|char *patend +s |I32 |find_count |char **ppat|char *patend|int *star +s |char * |group_end |char *pat|char *patend|char ender +s |I32 |measure_struct |char *pat|char *patend +#endif + +#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT) +s |OP* |docatch |OP *o +s |void* |docatch_body +#if defined(PERL_FLEXIBLE_EXCEPTIONS) +s |void* |vdocatch_body |va_list args +#endif +s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit +s |void |doparseform |SV *sv +s |I32 |dopoptoeval |I32 startingblock +s |I32 |dopoptolabel |char *label +s |I32 |dopoptoloop |I32 startingblock +s |I32 |dopoptosub |I32 startingblock +s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock +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 |bool |path_is_absolute|char *name +#endif + +#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT) +s |int |do_maybe_phash |AV *ary|SV **lelem|SV **firstlelem \ + |SV **relem|SV **lastrelem +s |void |do_oddball |HV *hash|SV **relem|SV **firstrelem +s |CV* |get_db_sub |SV **svp|CV *cv +s |SV* |method_common |SV* meth|U32* hashp +#endif + +#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT) +s |OP* |doform |CV *cv|GV *gv|OP *retop +s |int |emulate_eaccess|const char* path|Mode_t mode +# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +s |int |dooneliner |char *cmd|char *filename # endif #endif -#if defined(PERL_IN_REGEXEC_C) -ERs |bool |isFOO_lc |const U8 classnum|const U8 character -ERs |bool |isFOO_utf8_lc |const U8 classnum|NN const U8* character -ERs |SSize_t|regmatch |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog -ERs |I32 |regrepeat |NN regexp *prog|NN char **startposp \ - |NN const regnode *p \ - |NN regmatch_info *const reginfo \ - |I32 max \ - |int depth -ERs |I32 |regtry |NN regmatch_info *reginfo|NN char **startposp -ERs |bool |reginclass |NULLOK regexp * const prog \ - |NN const regnode * const n \ - |NN const U8 * const p \ - |NN const U8 * const p_end \ - |bool const utf8_target -Es |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor\ - |U32 maxopenparen -Es |void |regcppop |NN regexp *rex\ - |NN U32 *maxopenparen_p -ERsn |U8* |reghop3 |NN U8 *s|SSize_t off|NN const U8 *lim -ERsn |U8* |reghop4 |NN U8 *s|SSize_t off|NN const U8 *llim \ - |NN const U8 *rlim -ERsn |U8* |reghopmaybe3 |NN U8 *s|SSize_t off|NN const U8 *lim -ERs |char* |find_byclass |NN regexp * prog|NN const regnode *c \ - |NN char *s|NN const char *strend \ - |NULLOK regmatch_info *reginfo -Es |void |to_utf8_substr |NN regexp * prog -Es |bool |to_byte_substr |NN regexp * prog -ERs |I32 |reg_check_named_buff_matched |NN const regexp *rex \ - |NN const regnode *scan +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) +s |regnode*|reg |struct RExC_state_t*|I32|I32 * +s |regnode*|reganode |struct RExC_state_t*|U8|U32 +s |regnode*|regatom |struct RExC_state_t*|I32 * +s |regnode*|regbranch |struct RExC_state_t*|I32 *|I32 +s |void |reguni |struct RExC_state_t*|UV|char *|STRLEN* +s |regnode*|regclass |struct RExC_state_t* +s |I32 |regcurly |char * +s |regnode*|reg_node |struct RExC_state_t*|U8 +s |regnode*|regpiece |struct RExC_state_t*|I32 * +s |void |reginsert |struct RExC_state_t*|U8|regnode * +s |void |regoptail |struct RExC_state_t*|regnode *|regnode * +s |void |regtail |struct RExC_state_t*|regnode *|regnode * +s |char*|regwhite |char *|char * +s |char*|nextchar |struct RExC_state_t* # ifdef DEBUGGING -Es |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\ - |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8 -Es |void |debug_start_match|NN const REGEXP *prog|const bool do_utf8\ - |NN const char *start|NN const char *end\ - |NN const char *blurb +s |regnode*|dumpuntil |regnode *start|regnode *node \ + |regnode *last|SV* sv|I32 l +s |void |put_byte |SV* sv|int c # endif -#endif - -#if defined(PERL_IN_DUMP_C) -s |CV* |deb_curcv |const I32 ix -s |void |debprof |NN const OP *o -s |UV |sequence_num |NULLOK const OP *o -s |SV* |pm_description |NN const PMOP *pm -#endif - -#if defined(PERL_IN_SCOPE_C) -s |SV* |save_scalar_at |NN SV **sptr|const U32 flags -#endif - -#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C) -: Used in gv.c -po |void |sv_add_backref |NN SV *const tsv|NN SV *const sv -#endif - -#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C) -: Used in hv.c and mg.c -poM |void |sv_kill_backrefs |NN SV *const sv|NULLOK AV *const av -#endif - -#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C) -pR |SV * |varname |NULLOK const GV *const gv|const char gvtype \ - |PADOFFSET targ|NULLOK const SV *const keyname \ - |I32 aindex|int subscript_type -#endif - -pX |void |sv_del_backref |NN SV *const tsv|NN SV *const sv -#if defined(PERL_IN_SV_C) -nsR |char * |uiv_2buf |NN char *const buf|const IV iv|UV uv|const int is_uv|NN char **const peob -i |void |sv_unglob |NN SV *const sv|U32 flags -s |void |not_a_number |NN SV *const sv -s |I32 |visit |NN SVFUNC_t f|const U32 flags|const U32 mask +s |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data +s |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl +s |int |cl_is_anything |struct regnode_charclass_class *cl +s |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl +s |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl +s |void |cl_and |struct regnode_charclass_class *cl \ + |struct regnode_charclass_class *and_with +s |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \ + |struct regnode_charclass_class *or_with +s |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \ + |regnode *last|struct scan_data_t *data \ + |U32 flags +s |I32 |add_data |struct RExC_state_t*|I32 n|char *s +rs |void|re_croak2 |const char* pat1|const char* pat2|... +s |I32 |regpposixcc |struct RExC_state_t*|I32 value +s |void |checkposixcc |struct RExC_state_t* +#endif + +#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) +s |I32 |regmatch |regnode *prog +s |I32 |regrepeat |regnode *p|I32 max +s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp +s |I32 |regtry |regexp *prog|char *startpos +s |bool |reginclass |regnode *n|U8 *p|STRLEN *lenp|bool do_utf8sv_is_utf8 +s |CHECKPOINT|regcppush |I32 parenfloor +s |char*|regcppop +s |char*|regcp_set_to |I32 ss +s |void |cache_re |regexp *prog +s |U8* |reghop |U8 *pos|I32 off +s |U8* |reghop3 |U8 *pos|I32 off|U8 *lim +s |U8* |reghopmaybe |U8 *pos|I32 off +s |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim +s |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun +s |void |to_utf8_substr |regexp * prog +s |void |to_byte_substr |regexp * prog +#endif + +#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT) +s |CV* |deb_curcv |I32 ix +s |void |debprof |OP *o +#endif + +#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT) +s |SV* |save_scalar_at |SV **sptr +#endif + +#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) +s |IV |asIV |SV* sv +s |UV |asUV |SV* sv +s |SV* |more_sv +s |void |more_xiv +s |void |more_xnv +s |void |more_xpv +s |void |more_xpviv +s |void |more_xpvnv +s |void |more_xpvcv +s |void |more_xpvav +s |void |more_xpvhv +s |void |more_xpvmg +s |void |more_xpvlv +s |void |more_xpvbm +s |void |more_xrv +s |XPVIV* |new_xiv +s |XPVNV* |new_xnv +s |XPV* |new_xpv +s |XPVIV* |new_xpviv +s |XPVNV* |new_xpvnv +s |XPVCV* |new_xpvcv +s |XPVAV* |new_xpvav +s |XPVHV* |new_xpvhv +s |XPVMG* |new_xpvmg +s |XPVLV* |new_xpvlv +s |XPVBM* |new_xpvbm +s |XRV* |new_xrv +s |void |del_xiv |XPVIV* p +s |void |del_xnv |XPVNV* p +s |void |del_xpv |XPV* p +s |void |del_xpviv |XPVIV* p +s |void |del_xpvnv |XPVNV* p +s |void |del_xpvcv |XPVCV* p +s |void |del_xpvav |XPVAV* p +s |void |del_xpvhv |XPVHV* p +s |void |del_xpvmg |XPVMG* p +s |void |del_xpvlv |XPVLV* p +s |void |del_xpvbm |XPVBM* p +s |void |del_xrv |XRV* p +s |void |sv_unglob |SV* sv +s |void |not_a_number |SV *sv +s |I32 |visit |SVFUNC_t f +s |void |sv_add_backref |SV *tsv|SV *sv +s |void |sv_del_backref |SV *sv # ifdef DEBUGGING -s |void |del_sv |NN SV *p +s |void |del_sv |SV *p # endif # if !defined(NV_PRESERVES_UV) -# ifdef DEBUGGING -s |int |sv_2iuv_non_preserve |NN SV *const sv|I32 numtype -# else -s |int |sv_2iuv_non_preserve |NN SV *const sv -# endif +s |int |sv_2iuv_non_preserve |SV *sv|I32 numtype # endif -sR |I32 |expect_number |NN char **const pattern -sn |STRLEN |sv_pos_u2b_forwards|NN const U8 *const start \ - |NN const U8 *const send|NN STRLEN *const uoffset \ - |NN bool *const at_end -sn |STRLEN |sv_pos_u2b_midway|NN const U8 *const start \ - |NN const U8 *send|STRLEN uoffset|const STRLEN uend -s |STRLEN |sv_pos_u2b_cached|NN SV *const sv|NN MAGIC **const mgp \ - |NN const U8 *const start|NN const U8 *const send \ - |STRLEN uoffset|STRLEN uoffset0|STRLEN boffset0 -s |void |utf8_mg_len_cache_update|NN SV *const sv|NN MAGIC **const mgp \ - |const STRLEN ulen -s |void |utf8_mg_pos_cache_update|NN SV *const sv|NN MAGIC **const mgp \ - |const STRLEN byte|const STRLEN utf8|const STRLEN blen -s |STRLEN |sv_pos_b2u_midway|NN const U8 *const s|NN const U8 *const target \ - |NN const U8 *end|STRLEN endu -s |void |assert_uft8_cache_coherent|NN const char *const func \ - |STRLEN from_cache|STRLEN real|NN SV *const sv -sn |char * |F0convert |NV nv|NN char *const endbuf|NN STRLEN *const len -# if defined(PERL_OLD_COPY_ON_WRITE) -sM |void |sv_release_COW |NN SV *sv|NN const char *pvx|NN SV *after +s |I32 |expect_number |char** pattern +# +# if defined(USE_ITHREADS) +s |SV* |gv_share |SV *sv|CLONE_PARAMS *param # endif -s |SV * |more_sv -s |bool |sv_2iuv_common |NN SV *const sv -s |void |glob_assign_glob|NN SV *const dstr|NN SV *const sstr \ - |const int dtype -s |void |glob_assign_ref|NN SV *const dstr|NN SV *const sstr -sRn |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *const tbl|NULLOK const void *const sv -s |void |anonymise_cv_maybe |NN GV *gv|NN CV *cv #endif -: Used in sv.c and hv.c -po |void * |more_bodies |const svtype sv_type|const size_t body_size \ - |const size_t arena_size - -#if defined(PERL_IN_TOKE_C) +#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT) s |void |check_uni s |void |force_next |I32 type -s |char* |force_version |NN char *s|int guessing -s |char* |force_strict_version |NN char *s -s |char* |force_word |NN char *start|int token|int check_keyword \ - |int allow_pack -s |SV* |tokeq |NN SV *sv -sR |char* |scan_const |NN char *start -iR |SV* |get_and_check_backslash_N_name|NN const char* s \ - |NN const char* const e -sR |char* |scan_formline |NN char *s -sR |char* |scan_heredoc |NN char *s -s |char* |scan_ident |NN char *s|NN char *dest \ - |STRLEN destlen|I32 ck_uni -sR |char* |scan_inputsymbol|NN char *start -sR |char* |scan_pat |NN char *start|I32 type -sR |char* |scan_str |NN char *start|int keep_quoted \ - |int keep_delims|int re_reparse \ - |bool deprecate_escaped_matching \ - |NULLOK char **delimp -sR |char* |scan_subst |NN char *start -sR |char* |scan_trans |NN char *start -s |char* |scan_word |NN char *s|NN char *dest|STRLEN destlen \ - |int allow_package|NN STRLEN *slp -s |void |update_debugger_info|NULLOK SV *orig_sv \ - |NULLOK const char *const buf|STRLEN len -sR |char* |skipspace_flags|NN char *s|U32 flags -sR |char* |swallow_bom |NN U8 *s -#ifndef PERL_NO_UTF16_FILTER -s |I32 |utf16_textfilter|int idx|NN SV *sv|int maxlen -s |U8* |add_utf16_textfilter|NN U8 *const s|bool reversed -#endif -s |void |checkcomma |NN const char *s|NN const char *name \ - |NN const char *what -s |void |force_ident |NN const char *s|int kind -s |void |force_ident_maybe_lex|char pit -s |void |incline |NN const char *s -s |int |intuit_method |NN char *s|NULLOK GV *gv|NULLOK CV *cv -s |int |intuit_more |NN char *s -s |I32 |lop |I32 f|int x|NN char *s -rs |void |missingterm |NULLOK char *s -s |void |no_op |NN const char *const what|NULLOK char *s +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 s |int |pending_ident -sR |I32 |sublex_done -sR |I32 |sublex_push -sR |I32 |sublex_start -sR |char * |filter_gets |NN SV *sv|STRLEN append -sR |HV * |find_in_my_stash|NN const char *pkgname|STRLEN len -sR |char * |tokenize_use |int is_use|NN char *s -so |SV* |new_constant |NULLOK const char *s|STRLEN len \ - |NN const char *key|STRLEN keylen|NN SV *sv \ - |NULLOK SV *pv|NULLOK const char *type \ - |STRLEN typelen -s |int |deprecate_commaless_var_list +s |char* |scan_const |char *start +s |char* |scan_formline |char *s +s |char* |scan_heredoc |char *s +s |char* |scan_ident |char *s|char *send|char *dest \ + |STRLEN destlen|I32 ck_uni +s |char* |scan_inputsymbol|char *start +s |char* |scan_pat |char *start|I32 type +s |char* |scan_str |char *start|int keep_quoted|int keep_delims +s |char* |scan_subst |char *start +s |char* |scan_trans |char *start +s |char* |scan_word |char *s|char *dest|STRLEN destlen \ + |int allow_package|STRLEN *slp +s |char* |skipspace |char *s +s |char* |swallow_bom |U8 *s +s |void |checkcomma |char *s|char *name|char *what +s |void |force_ident |char *s|int kind +s |void |incline |char *s +s |int |intuit_method |char *s|GV *gv +s |int |intuit_more |char *s +s |I32 |lop |I32 f|int x|char *s +s |void |missingterm |char *s +s |void |no_op |char *what|char *s +s |void |set_csh +s |I32 |sublex_done +s |I32 |sublex_push +s |I32 |sublex_start +s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append +s |HV * |find_in_my_stash|char *pkgname|I32 len +s |SV* |new_constant |char *s|STRLEN len|const char *key|SV *sv \ + |SV *pv|const char *type +# if defined(DEBUGGING) +s |void |tokereport |char *thing|char *s|I32 rv +# endif s |int |ao |int toketype -s |void|parse_ident|NN char **s|NN char **d \ - |NN char * const e|int allow_package \ - |bool is_utf8 +s |void |depcom +s |char* |incl_perldb +#if 0 +s |I32 |utf16_textfilter|int idx|SV *sv|int maxlen +s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen +#endif # if defined(PERL_CR_FILTER) -s |I32 |cr_textfilter |int idx|NULLOK SV *sv|int maxlen -s |void |strip_return |NN SV *sv -# endif -# if defined(DEBUGGING) -s |int |tokereport |I32 rv|NN const YYSTYPE* lvalp -sf |void |printbuf |NN const char *const fmt|NN const char *const s +s |I32 |cr_textfilter |int idx|SV *sv|int maxlen # endif #endif -EXMp |bool |validate_proto |NN SV *name|NULLOK SV *proto|bool warn -#if defined(PERL_IN_UNIVERSAL_C) -s |bool |isa_lookup |NN HV *stash|NN const char * const name \ - |STRLEN len|U32 flags +#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT) +s |SV*|isa_lookup |HV *stash|const char *name|HV *name_stash|int len|int level #endif -#if defined(PERL_IN_LOCALE_C) && defined(USE_LOCALE) -s |char* |stdize_locale |NN char* locs -s |bool |is_cur_LC_category_utf8|int category +#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT) +s |char* |stdize_locale |char* locs #endif -#if defined(PERL_IN_UTIL_C) +#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT) +s |COP* |closest_cop |COP *cop|OP *o s |SV* |mess_alloc -s |SV * |with_queued_errors|NN SV *ex -s |bool |invoke_exception_hook|NULLOK SV *ex|bool warn -#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL) -sn |void |mem_log_common |enum mem_log_type mlt|const UV n|const UV typesize \ - |NN const char *type_name|NULLOK const SV *sv \ - |Malloc_t oldalloc|Malloc_t newalloc \ - |NN const char *filename|const int linenumber \ - |NN const char *funcname -#endif -#endif - -#if defined(PERL_IN_NUMERIC_C) -sn |NV|mulexp10 |NV value|I32 exponent -#endif - -#if defined(PERL_IN_UTF8_C) -iRn |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len -sRM |UV |check_locale_boundary_crossing|NN const U8* const p|const UV result|NN U8* const ustrp|NN STRLEN *lenp -iR |bool |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname|NULLOK SV* const invlist -sR |SV* |swatch_get |NN SV* swash|UV start|UV span +# if defined(LEAKTEST) +s |void |xstat |int +# endif #endif -AiMn |void |append_utf8_from_native_byte|const U8 byte|NN U8** dest +START_EXTERN_C -Apd |void |sv_setsv_flags |NN SV *dstr|NULLOK SV *sstr|const I32 flags -Apd |void |sv_catpvn_flags|NN SV *const dstr|NN const char *sstr|const STRLEN len \ - |const I32 flags -Apd |void |sv_catpv_flags |NN SV *dstr|NN const char *sstr \ - |const I32 flags -Apd |void |sv_catsv_flags |NN SV *const dsv|NULLOK SV *const ssv|const I32 flags -Apmd |STRLEN |sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags -Ap |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra -Apd |char* |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags -pmb |void |sv_copypv |NN SV *const dsv|NN SV *const ssv -Apmd |void |sv_copypv_nomg |NN SV *const dsv|NN SV *const ssv -Apd |void |sv_copypv_flags |NN SV *const dsv|NN SV *const ssv|const I32 flags -Ap |char* |my_atof2 |NN const char *s|NN NV* value +Apd |void |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags +Apd |void |sv_catpvn_flags|SV* sv|const char* ptr|STRLEN len|I32 flags +Apd |void |sv_catsv_flags |SV* dsv|SV* ssv|I32 flags +Apd |STRLEN |sv_utf8_upgrade_flags|SV *sv|I32 flags +Apd |char* |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags +Apd |char* |sv_2pv_flags |SV* sv|STRLEN* lp|I32 flags +Apd |void |sv_copypv |SV* dsv|SV* ssv +Ap |char* |my_atof2 |const char *s|NV* value Apn |int |my_socketpair |int family|int type|int protocol|int fd[2] -Ap |int |my_dirfd |NULLOK DIR* dir -#ifdef PERL_ANY_COW -: Used in pp_hot.c and regexec.c -pMXE |SV* |sv_setsv_cow |NULLOK SV* dstr|NN SV* sstr -#endif - -Aop |const char *|PerlIO_context_layers|NULLOK const char *mode - -#if defined(USE_PERLIO) -Ap |int |PerlIO_close |NULLOK PerlIO *f -Ap |int |PerlIO_fill |NULLOK PerlIO *f -Ap |int |PerlIO_fileno |NULLOK PerlIO *f -Ap |int |PerlIO_eof |NULLOK PerlIO *f -Ap |int |PerlIO_error |NULLOK PerlIO *f -Ap |int |PerlIO_flush |NULLOK PerlIO *f -Ap |void |PerlIO_clearerr |NULLOK PerlIO *f -Ap |void |PerlIO_set_cnt |NULLOK PerlIO *f|SSize_t cnt -Ap |void |PerlIO_set_ptrcnt |NULLOK PerlIO *f|NULLOK STDCHAR *ptr \ - |SSize_t cnt -Ap |void |PerlIO_setlinebuf |NULLOK PerlIO *f -Ap |SSize_t|PerlIO_read |NULLOK PerlIO *f|NN void *vbuf \ - |Size_t count -Ap |SSize_t|PerlIO_write |NULLOK PerlIO *f|NN const void *vbuf \ - |Size_t count -Ap |SSize_t|PerlIO_unread |NULLOK PerlIO *f|NN const void *vbuf \ - |Size_t count -Ap |Off_t |PerlIO_tell |NULLOK PerlIO *f -Ap |int |PerlIO_seek |NULLOK PerlIO *f|Off_t offset|int whence -Ap |STDCHAR *|PerlIO_get_base |NULLOK PerlIO *f -Ap |STDCHAR *|PerlIO_get_ptr |NULLOK PerlIO *f -ApR |SSize_t |PerlIO_get_bufsiz |NULLOK PerlIO *f -ApR |SSize_t |PerlIO_get_cnt |NULLOK PerlIO *f - -ApR |PerlIO *|PerlIO_stdin -ApR |PerlIO *|PerlIO_stdout -ApR |PerlIO *|PerlIO_stderr +#if defined(USE_PERLIO) && !defined(USE_SFIO) +Ap |int |PerlIO_close |PerlIO * +Ap |int |PerlIO_fill |PerlIO * +Ap |int |PerlIO_fileno |PerlIO * +Ap |int |PerlIO_eof |PerlIO * +Ap |int |PerlIO_error |PerlIO * +Ap |int |PerlIO_flush |PerlIO * +Ap |void |PerlIO_clearerr |PerlIO * +Ap |void |PerlIO_set_cnt |PerlIO *|int +Ap |void |PerlIO_set_ptrcnt |PerlIO *|STDCHAR *|int +Ap |void |PerlIO_setlinebuf |PerlIO * +Ap |SSize_t|PerlIO_read |PerlIO *|void *|Size_t +Ap |SSize_t|PerlIO_write |PerlIO *|const void *|Size_t +Ap |SSize_t|PerlIO_unread |PerlIO *|const void *|Size_t +Ap |Off_t |PerlIO_tell |PerlIO * +Ap |int |PerlIO_seek |PerlIO *|Off_t|int + +Ap |STDCHAR *|PerlIO_get_base |PerlIO * +Ap |STDCHAR *|PerlIO_get_ptr |PerlIO * +Ap |int |PerlIO_get_bufsiz |PerlIO * +Ap |int |PerlIO_get_cnt |PerlIO * + +Ap |PerlIO *|PerlIO_stdin +Ap |PerlIO *|PerlIO_stdout +Ap |PerlIO *|PerlIO_stderr #endif /* PERLIO_LAYERS */ -: Only used in dump.c -p |void |deb_stack_all -#if defined(PERL_IN_DEB_C) -s |void |deb_stack_n |NN SV** stack_base|I32 stack_min \ - |I32 stack_max|I32 mark_min|I32 mark_max -#endif - -: pad API -#ifdef PERL_MAD -Mnpd |void |pad_peg |NN const char* s -#endif -Apda |PADLIST*|pad_new |int flags -#if defined(PERL_IN_PAD_C) -s |PADOFFSET|pad_alloc_name|NN SV *namesv|U32 flags \ - |NULLOK HV *typestash|NULLOK HV *ourstash -#endif -Apd |PADOFFSET|pad_add_name_pvn|NN const char *namepv|STRLEN namelen\ - |U32 flags|NULLOK HV *typestash\ - |NULLOK HV *ourstash -Apd |PADOFFSET|pad_add_name_pv|NN const char *name\ - |const U32 flags|NULLOK HV *typestash\ - |NULLOK HV *ourstash -Apd |PADOFFSET|pad_add_name_sv|NN SV *name\ - |U32 flags|NULLOK HV *typestash\ - |NULLOK HV *ourstash -AMpd |PADOFFSET|pad_alloc |I32 optype|U32 tmptype -Apd |PADOFFSET|pad_add_anon |NN CV* func|I32 optype -#if defined(PERL_IN_PAD_C) -sd |void |pad_check_dup |NN SV *name|U32 flags|NULLOK const HV *ourstash -#endif -Apd |PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags -Apd |PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags -Apd |PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags -ApdD |PADOFFSET|find_rundefsvoffset | -Apd |SV* |find_rundefsv | -: Used in pp.c -p |SV* |find_rundefsv2 |NN CV *cv|U32 seq -#if defined(PERL_IN_PAD_C) -sd |PADOFFSET|pad_findlex |NN const char *namepv|STRLEN namelen|U32 flags \ - |NN const CV* cv|U32 seq|int warn \ - |NULLOK SV** out_capture|NN SV** out_name_sv \ - |NN int *out_flags -#endif -#ifdef DEBUGGING -Apd |SV* |pad_sv |PADOFFSET po -Apd |void |pad_setsv |PADOFFSET po|NN SV* sv -#endif -pd |void |pad_block_start|int full -pd |U32 |intro_my -pd |OP * |pad_leavemy -pd |void |pad_swipe |PADOFFSET po|bool refadjust -#if defined(PERL_IN_PAD_C) -sd |void |pad_reset -#endif -AMpd |void |pad_tidy |padtidy_type type -pd |void |pad_free |PADOFFSET po -pd |void |do_dump_pad |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full -#if defined(PERL_IN_PAD_C) -# if defined(DEBUGGING) -sd |void |cv_dump |NN const CV *cv|NN const char *title -# endif -#endif -Apd |CV* |cv_clone |NN CV* proto -p |CV* |cv_clone_into |NN CV* proto|NN CV *target -pd |void |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv -pdX |void |pad_push |NN PADLIST *padlist|int depth -ApdR |HV* |pad_compname_type|const PADOFFSET po -#if defined(USE_ITHREADS) -pdR |PADLIST *|padlist_dup |NULLOK PADLIST *srcpad \ - |NN CLONE_PARAMS *param -#endif -p |PAD ** |padlist_store |NN PADLIST *padlist|I32 key \ - |NULLOK PAD *val - -ApdR |CV* |find_runcv |NULLOK U32 *db_seqp -pR |CV* |find_runcv_where|U8 cond|IV arg \ - |NULLOK U32 *db_seqp -: Only used in perl.c -p |void |free_tied_hv_pool -#if defined(DEBUGGING) -: Used in mg.c -pR |int |get_debug_opts |NN const char **s|bool givehelp -#endif -Ap |void |save_set_svflags|NN SV *sv|U32 mask|U32 val -#ifdef DEBUGGING -Apod |void |hv_assert |NN HV *hv -#endif - -ApdR |SV* |hv_scalar |NN HV *hv -ApoR |I32* |hv_riter_p |NN HV *hv -ApoR |HE** |hv_eiter_p |NN HV *hv -Apo |void |hv_riter_set |NN HV *hv|I32 riter -Apo |void |hv_eiter_set |NN HV *hv|NULLOK HE *eiter -Ap |void |hv_rand_set |NN HV *hv|U32 new_xhv_rand -Ap |void |hv_name_set |NN HV *hv|NULLOK const char *name|U32 len|U32 flags -p |void |hv_ename_add |NN HV *hv|NN const char *name|U32 len \ - |U32 flags -p |void |hv_ename_delete|NN HV *hv|NN const char *name|U32 len \ - |U32 flags -: Used in dump.c and hv.c -poM |AV** |hv_backreferences_p |NN HV *hv -#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C) -poM |void |hv_kill_backrefs |NN HV *hv -#endif -Apd |void |hv_clear_placeholders |NN HV *hv -XpoR |SSize_t*|hv_placeholders_p |NN HV *hv -ApoR |I32 |hv_placeholders_get |NN const HV *hv -Apo |void |hv_placeholders_set |NN HV *hv|I32 ph - -: This is indirectly referenced by globals.c. This is somewhat annoying. -p |SV* |magic_scalarpack|NN HV *hv|NN MAGIC *mg - -#if defined(PERL_IN_SV_C) -s |SV * |find_hash_subscript|NULLOK const HV *const hv \ - |NN const SV *const val -s |I32 |find_array_subscript|NULLOK const AV *const av \ - |NN const SV *const val -sMd |SV* |find_uninit_var|NULLOK const OP *const obase \ - |NULLOK const SV *const uninit_sv|bool top -#endif - -Ap |GV* |gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type -Ap |GV* |gv_fetchsv|NN SV *name|I32 flags|const svtype sv_type - -#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP -: Used in sv.c -p |void |dump_sv_child |NN SV *sv -#endif - -#ifdef PERL_DONT_CREATE_GVSV -Apbm |GV* |gv_SVadd |NULLOK GV *gv -#endif -#if defined(PERL_IN_UTIL_C) -s |bool |ckwarn_common |U32 w -#endif -Apo |bool |ckwarn |U32 w -Apo |bool |ckwarn_d |U32 w -: FIXME - exported for ByteLoader - public or private? -XEopMa |STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \ - |NN const char *const bits|STRLEN size - -#ifndef SPRINTF_RETURNS_STRLEN -Apnod |int |my_sprintf |NN char *buffer|NN const char *pat|... -#endif - -Apnodf |int |my_snprintf |NN char *buffer|const Size_t len|NN const char *format|... -Apnod |int |my_vsnprintf |NN char *buffer|const Size_t len|NN const char *format|va_list ap - -: Used in mg.c, sv.c -px |void |my_clearenv - -#ifdef PERL_IMPLICIT_CONTEXT -#ifdef PERL_GLOBAL_STRUCT_PRIVATE -Apo |void* |my_cxt_init |NN const char *my_cxt_key|size_t size -Apo |int |my_cxt_index |NN const char *my_cxt_key -#else -Apo |void* |my_cxt_init |NN int *index|size_t size -#endif -#endif - -: This function is an implementation detail. The public API for this is -: XS_VERSION_BOOTCHECK -Xpo |void |xs_version_bootcheck|U32 items|U32 ax|NN const char *xs_p \ - |STRLEN xs_len -: This function is an implementation detail. The public API for this is -: XS_APIVERSION_BOOTCHECK -Xpo |void |xs_apiversion_bootcheck|NN SV *module|NN const char *api_p \ - |STRLEN api_len - -#ifndef HAS_STRLCAT -Apnod |Size_t |my_strlcat |NULLOK char *dst|NULLOK const char *src|Size_t size -#endif - -#ifndef HAS_STRLCPY -Apnod |Size_t |my_strlcpy |NULLOK char *dst|NULLOK const char *src|Size_t size -#endif - -#ifdef PERL_MAD -#if defined(PERL_IN_DUMP_C) -sf |void |xmldump_attr |I32 level|NN PerlIO *file|NN const char* pat \ - |... -#endif -Mfp |void |xmldump_indent |I32 level|NN PerlIO *file|NN const char* pat \ - |... -Mp |void |xmldump_vindent|I32 level|NN PerlIO *file|NN const char* pat \ - |NULLOK va_list *args -Mp |void |xmldump_all -p |void |xmldump_all_perl |bool justperl -Mp |void |xmldump_packsubs |NN const HV* stash -p |void |xmldump_packsubs_perl |NN const HV* stash|bool justperl -Mp |void |xmldump_sub |NN const GV* gv -Mp |void |xmldump_sub_perl |NN const GV* gv|bool justperl -Mp |void |xmldump_form |NN const GV* gv -Mp |void |xmldump_eval -Mp |char* |sv_catxmlsv |NN SV *dsv|NN SV *ssv -Mp |char* |sv_catxmlpvn |NN SV *dsv|NN const char *pv|STRLEN len|int utf8 -Mp |char* |sv_catxmlpv |NN SV *dsv|NN const char *pv|int utf8 -Mp |char* |sv_xmlpeek |NN SV* sv -Mp |void |do_pmop_xmldump|I32 level|NN PerlIO *file \ - |NULLOK const PMOP *pm -Mp |void |pmop_xmldump |NULLOK const PMOP* pm -Mp |void |do_op_xmldump |I32 level|NN PerlIO *file|NULLOK const OP *o -Mp |void |op_xmldump |NN const OP *o - -Mp |TOKEN* |newTOKEN |I32 optype|YYSTYPE lval \ - |NULLOK MADPROP* madprop -Mp |void |token_free |NN TOKEN *tk -Mp |void |token_getmad |NN TOKEN *tk|NULLOK OP *o|char slot -Mp |void |op_getmad_weak |NULLOK OP* from|NULLOK OP* o|char slot -Mp |void |op_getmad |NULLOK OP* from|NULLOK OP* o|char slot -Mp |void |prepend_madprops|NULLOK MADPROP* mp|NULLOK OP* o|char slot -Mp |void |append_madprops|NULLOK MADPROP* tm|NULLOK OP* o|char slot -Mp |void |addmad |NULLOK MADPROP* tm|NULLOK MADPROP** root \ - |char slot -Mp |MADPROP*|newMADsv |char key|NN SV* sv -Mp |MADPROP*|newMADPROP |char key|char type|NULLOK void* val \ - |I32 vlen -Mp |void |mad_free |NULLOK MADPROP* mp - -# if defined(PERL_IN_TOKE_C) -s |char* |skipspace0 |NN char *s -s |char* |skipspace1 |NN char *s -s |char* |skipspace2 |NN char *s|NULLOK SV **sv -s |void |start_force |int where -s |void |curmad |char slot|NULLOK SV *sv -# endif -Mp |int |madlex -Mp |int |madparse |int gramtype -#endif -#if !defined(HAS_SIGNBIT) -AMdnoP |int |Perl_signbit |NV f -#endif - -: Used by B -XEMop |void |emulate_cop_io |NN const COP *const c|NN SV *const sv -: Used by SvRX and SvRXOK -XEMop |REGEXP *|get_re_arg|NULLOK SV *sv - -Aop |SV* |mro_get_private_data|NN struct mro_meta *const smeta \ - |NN const struct mro_alg *const which -Aop |SV* |mro_set_private_data|NN struct mro_meta *const smeta \ - |NN const struct mro_alg *const which \ - |NN SV *const data -Aop |const struct mro_alg *|mro_get_from_name|NN SV *name -Aop |void |mro_register |NN const struct mro_alg *mro -Aop |void |mro_set_mro |NN struct mro_meta *const meta \ - |NN SV *const name -: Used in HvMROMETA(), which is public. -Xpo |struct mro_meta* |mro_meta_init |NN HV* stash -#if defined(USE_ITHREADS) -: Only used in sv.c -p |struct mro_meta* |mro_meta_dup |NN struct mro_meta* smeta|NN CLONE_PARAMS* param -#endif -Apd |AV* |mro_get_linear_isa|NN HV* stash -#if defined(PERL_IN_MRO_C) -sd |AV* |mro_get_linear_isa_dfs|NN HV* stash|U32 level -s |void |mro_clean_isarev|NN HV * const isa \ - |NN const char * const name \ - |const STRLEN len \ - |NULLOK HV * const exceptions \ - |U32 hash|U32 flags -s |void |mro_gather_and_rename|NN HV * const stashes \ - |NN HV * const seen_stashes \ - |NULLOK HV *stash \ - |NULLOK HV *oldstash \ - |NN SV *namesv -#endif -: Used in hv.c, mg.c, pp.c, sv.c -pd |void |mro_isa_changed_in|NN HV* stash -Apd |void |mro_method_changed_in |NN HV* stash -pdx |void |mro_package_moved |NULLOK HV * const stash|NULLOK HV * const oldstash|NN const GV * const gv|U32 flags -: Only used in perl.c -p |void |boot_core_mro -Apon |void |sys_init |NN int* argc|NN char*** argv -Apon |void |sys_init3 |NN int* argc|NN char*** argv|NN char*** env -Apon |void |sys_term -ApoM |const char *|cop_fetch_label|NN COP *const cop \ - |NULLOK STRLEN *len|NULLOK U32 *flags -: Only used in op.c and the perl compiler -ApoM |void|cop_store_label \ - |NN COP *const cop|NN const char *label|STRLEN len|U32 flags - -xpo |int |keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr - -#if defined(USE_ITHREADS) -# if defined(PERL_IN_SV_C) -s |void |unreferenced_to_tmp_stack|NN AV *const unreferenced -# endif -Aanop |CLONE_PARAMS *|clone_params_new|NN PerlInterpreter *const from \ - |NN PerlInterpreter *const to -Anop |void |clone_params_del|NN CLONE_PARAMS *param -#endif - -: Used in perl.c and toke.c -op |void |populate_isa |NN const char *name|STRLEN len|... - -: Used in keywords.c and toke.c -Xop |bool |feature_is_enabled|NN const char *const name \ - |STRLEN namelen - -: Some static inline functions need predeclaration because they are used -: inside other static inline functions. -#if defined(PERL_CORE) || defined (PERL_EXT) -Ei |STRLEN |sv_or_pv_pos_u2b|NN SV *sv|NN const char *pv|STRLEN pos \ - |NULLOK STRLEN *lenp -#endif +END_EXTERN_C -: ex: set ts=8 sts=4 sw=4 noet: diff --git a/gnu/usr.bin/perl/lib/h2ph.t b/gnu/usr.bin/perl/lib/h2ph.t index 2b58f6adae9..7b339b39275 100644 --- a/gnu/usr.bin/perl/lib/h2ph.t +++ b/gnu/usr.bin/perl/lib/h2ph.t @@ -1,5 +1,4 @@ #!./perl -use strict; # quickie tests to see if h2ph actually runs and does more or less what is # expected @@ -9,8 +8,6 @@ BEGIN { @INC = '../lib'; } -require './test.pl'; - my $extracted_program = '../utils/h2ph'; # unix, nt, ... if ($^O eq 'VMS') { $extracted_program = '[-.utils]h2ph.com'; } if (!(-e $extracted_program)) { @@ -18,45 +15,23 @@ if (!(-e $extracted_program)) { exit 0; } -plan(6); +print "1..2\n"; # quickly compare two text files sub txt_compare { - local $/; - my ($A, $B); + local ($/, $A, $B); for (($A,$B) = @_) { open(_,"<$_") ? $_ = <_> : die "$_ : $!"; close _ } $A cmp $B; } -my $result = runperl( progfile => $extracted_program, - stderr => 1, - args => ['-d.', '-Q', 'lib/h2ph.h']); -is( $result, '', "output is free of warnings" ); -is( $?, 0, "$extracted_program runs successfully" ); - -is ( txt_compare("lib/h2ph.ph", "lib/h2ph.pht"), - 0, - "generated file has expected contents" ); - -$result = runperl( progfile => 'lib/h2ph.pht', - switches => ['-c'], - stderr => 1 ); -like( $result, qr/syntax OK$/, "output compiles"); - -$result = runperl( progfile => '_h2ph_pre.ph', - switches => ['-c'], - stderr => 1 ); -like( $result, qr/syntax OK$/, "preamble compiles"); - -$result = runperl( switches => ["-w"], - stderr => 1, - prog => <<'PROG' ); -$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht); -PROG -is( $result, '', "output free of warnings" ); - -# cleanup -END { - 1 while unlink("lib/h2ph.ph"); - 1 while unlink("_h2ph_pre.ph"); -} +# does it run? +$ok = system("$^X \"-I../lib\" $extracted_program -d. \"-Q\" lib/h2ph.h"); +print(($ok == 0 ? "" : "not "), "ok 1\n"); + +# does it work? well, does it do what we expect? :-) +$ok = txt_compare("lib/h2ph.ph", "lib/h2ph.pht"); +print(($ok == 0 ? "" : "not "), "ok 2\n"); + +# cleanup - should this be in an END block? +unlink("lib/h2ph.ph"); +unlink("_h2ph_pre.ph"); diff --git a/gnu/usr.bin/perl/locale.c b/gnu/usr.bin/perl/locale.c index 27225f3d1a7..0986614794f 100644 --- a/gnu/usr.bin/perl/locale.c +++ b/gnu/usr.bin/perl/locale.c @@ -1,7 +1,6 @@ /* locale.c * - * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - * 2002, 2003, 2005, 2006, 2007, 2008 by Larry Wall and others + * Copyright (c) 2001-2002, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -9,74 +8,63 @@ */ /* - * A Elbereth Gilthoniel, - * silivren penna míriel - * o menel aglar elenath! - * Na-chaered palan-díriel - * o galadhremmin ennorath, - * Fanuilos, le linnathon - * nef aear, si nef aearon! - * - * [p.238 of _The Lord of the Rings_, II/i: "Many Meetings"] - */ - -/* utility functions for handling locale-specific stuff like what - * character represents the decimal point. - * - * All C programs have an underlying locale. Perl generally doesn't pay any - * attention to it except within the scope of a 'use locale'. For most - * categories, it accomplishes this by just using different operations if it is - * in such scope than if not. However, various libc functions called by Perl - * are affected by the LC_NUMERIC category, so there are macros in perl.h that - * are used to toggle between the current locale and the C locale depending on - * the desired behavior of those functions at the moment. + * A Elbereth Gilthoniel, + * silivren penna mriel + * o menel aglar elenath! + * Na-chaered palan-driel + * o galadhremmin ennorath, + * Fanuilos, le linnathon + * nef aear, si nef aearon! */ #include "EXTERN.h" #define PERL_IN_LOCALE_C #include "perl.h" +#ifdef I_LOCALE +# include <locale.h> +#endif + #ifdef I_LANGINFO # include <langinfo.h> #endif #include "reentr.h" -#ifdef USE_LOCALE - /* - * Standardize the locale name from a string returned by 'setlocale', possibly - * modifying that string. + * Standardize the locale name from a string returned by 'setlocale'. * - * The typical return value of setlocale() is either + * The standard return value of setlocale() is either * (1) "xx_YY" if the first argument of setlocale() is not LC_ALL * (2) "xa_YY xb_YY ..." if the first argument of setlocale() is LC_ALL * (the space-separated values represent the various sublocales, - * in some unspecified order). This is not handled by this function. + * in some unspecificed order) * * In some platforms it has a form like "LC_SOMETHING=Lang_Country.866\n", - * which is harmful for further use of the string in setlocale(). This - * function removes the trailing new line and everything up through the '=' + * which is harmful for further use of the string in setlocale(). * */ STATIC char * S_stdize_locale(pTHX_ char *locs) { - const char * const s = strchr(locs, '='); + char *s; bool okay = TRUE; - PERL_ARGS_ASSERT_STDIZE_LOCALE; + if ((s = strchr(locs, '='))) { + char *t; - if (s) { - const char * const t = strchr(s, '.'); okay = FALSE; - if (t) { - const char * const u = strchr(t, '\n'); - if (u && (u[1] == 0)) { - const STRLEN len = u - s; - Move(s + 1, locs, len, char); - locs[len] = 0; - okay = TRUE; + if ((t = strchr(s, '.'))) { + char *u; + + if ((u = strchr(t, '\n'))) { + + if (u[1] == 0) { + STRLEN len = u - s; + Move(s + 1, locs, len, char); + locs[len] = 0; + okay = TRUE; + } } } } @@ -87,101 +75,58 @@ S_stdize_locale(pTHX_ char *locs) return locs; } -#endif - void Perl_set_numeric_radix(pTHX) { #ifdef USE_LOCALE_NUMERIC - dVAR; # ifdef HAS_LOCALECONV - const struct lconv* const lc = localeconv(); + struct lconv* lc; + lc = localeconv(); if (lc && lc->decimal_point) { if (lc->decimal_point[0] == '.' && lc->decimal_point[1] == 0) { SvREFCNT_dec(PL_numeric_radix_sv); - PL_numeric_radix_sv = NULL; + PL_numeric_radix_sv = Nullsv; } else { if (PL_numeric_radix_sv) sv_setpv(PL_numeric_radix_sv, lc->decimal_point); else PL_numeric_radix_sv = newSVpv(lc->decimal_point, 0); - if (! is_ascii_string((U8 *) lc->decimal_point, 0) - && is_utf8_string((U8 *) lc->decimal_point, 0) - && is_cur_LC_category_utf8(LC_NUMERIC)) - { - SvUTF8_on(PL_numeric_radix_sv); - } } } else - PL_numeric_radix_sv = NULL; - - DEBUG_L(PerlIO_printf(Perl_debug_log, "Locale radix is %s\n", - (PL_numeric_radix_sv) - ? lc->decimal_point - : "NULL")); - + PL_numeric_radix_sv = Nullsv; # endif /* HAS_LOCALECONV */ #endif /* USE_LOCALE_NUMERIC */ } +/* + * Set up for a new numeric locale. + */ void -Perl_new_numeric(pTHX_ const char *newnum) +Perl_new_numeric(pTHX_ char *newnum) { #ifdef USE_LOCALE_NUMERIC - /* Called after all libc setlocale() calls affecting LC_NUMERIC, to tell - * core Perl this and that 'newnum' is the name of the new locale. - * It installs this locale as the current underlying default. - * - * The default locale and the C locale can be toggled between by use of the - * set_numeric_local() and set_numeric_standard() functions, which should - * probably not be called directly, but only via macros like - * SET_NUMERIC_STANDARD() in perl.h. - * - * The toggling is necessary mainly so that a non-dot radix decimal point - * character can be output, while allowing internal calculations to use a - * dot. - * - * This sets several interpreter-level variables: - * PL_numeric_name The default locale's name: a copy of 'newnum' - * PL_numeric_local A boolean indicating if the toggled state is such - * that the current locale is the default locale - * PL_numeric_standard A boolean indicating if the toggled state is such - * that the current locale is the C locale - * Note that both of the last two variables can be true at the same time, - * if the underlying locale is C. (Toggling is a no-op under these - * circumstances.) - * - * Any code changing the locale (outside this file) should use - * POSIX::setlocale, which calls this function. Therefore this function - * should be called directly only from this file and from - * POSIX::setlocale() */ - - char *save_newnum; - dVAR; - if (! newnum) { - Safefree(PL_numeric_name); - PL_numeric_name = NULL; + if (PL_numeric_name) { + Safefree(PL_numeric_name); + PL_numeric_name = NULL; + } PL_numeric_standard = TRUE; PL_numeric_local = TRUE; return; } - save_newnum = stdize_locale(savepv(newnum)); - if (! PL_numeric_name || strNE(PL_numeric_name, save_newnum)) { + if (! PL_numeric_name || strNE(PL_numeric_name, newnum)) { Safefree(PL_numeric_name); - PL_numeric_name = save_newnum; + PL_numeric_name = stdize_locale(savepv(newnum)); + PL_numeric_standard = (strEQ(newnum, "C") || strEQ(newnum, "POSIX")); + PL_numeric_local = TRUE; + set_numeric_radix(); } - PL_numeric_standard = ((*save_newnum == 'C' && save_newnum[1] == '\0') - || strEQ(save_newnum, "POSIX")); - PL_numeric_local = TRUE; - set_numeric_radix(); - #endif /* USE_LOCALE_NUMERIC */ } @@ -189,11 +134,6 @@ void Perl_set_numeric_standard(pTHX) { #ifdef USE_LOCALE_NUMERIC - dVAR; - - /* Toggle the LC_NUMERIC locale to C, if not already there. Probably - * should use the macros like SET_NUMERIC_STANDARD() in perl.h instead of - * calling this directly. */ if (! PL_numeric_standard) { setlocale(LC_NUMERIC, "C"); @@ -201,8 +141,6 @@ Perl_set_numeric_standard(pTHX) PL_numeric_local = FALSE; set_numeric_radix(); } - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Underlying LC_NUMERIC locale now is C\n")); #endif /* USE_LOCALE_NUMERIC */ } @@ -211,11 +149,6 @@ void Perl_set_numeric_local(pTHX) { #ifdef USE_LOCALE_NUMERIC - dVAR; - - /* Toggle the LC_NUMERIC locale to the current underlying default, if not - * already there. Probably should use the macros like SET_NUMERIC_LOCAL() - * in perl.h instead of calling this directly. */ if (! PL_numeric_local) { setlocale(LC_NUMERIC, PL_numeric_name); @@ -223,9 +156,6 @@ Perl_set_numeric_local(pTHX) PL_numeric_local = TRUE; set_numeric_radix(); } - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Underlying LC_NUMERIC locale now is %s\n", - PL_numeric_name)); #endif /* USE_LOCALE_NUMERIC */ } @@ -234,65 +164,32 @@ Perl_set_numeric_local(pTHX) * Set up for a new ctype locale. */ void -Perl_new_ctype(pTHX_ const char *newctype) +Perl_new_ctype(pTHX_ char *newctype) { #ifdef USE_LOCALE_CTYPE - /* Called after all libc setlocale() calls affecting LC_CTYPE, to tell - * core Perl this and that 'newctype' is the name of the new locale. - * - * This function sets up the folding arrays for all 256 bytes, assuming - * that tofold() is tolc() since fold case is not a concept in POSIX, - * - * Any code changing the locale (outside this file) should use - * POSIX::setlocale, which calls this function. Therefore this function - * should be called directly only from this file and from - * POSIX::setlocale() */ - - dVAR; - UV i; - - PERL_ARGS_ASSERT_NEW_CTYPE; + int i; - PL_in_utf8_CTYPE_locale = is_cur_LC_category_utf8(LC_CTYPE); - - /* A UTF-8 locale gets standard rules. But note that code still has to - * handle this specially because of the three problematic code points */ - if (PL_in_utf8_CTYPE_locale) { - Copy(PL_fold_latin1, PL_fold_locale, 256, U8); - } - else { - for (i = 0; i < 256; i++) { - if (isUPPER_LC((U8) i)) - PL_fold_locale[i] = (U8) toLOWER_LC((U8) i); - else if (isLOWER_LC((U8) i)) - PL_fold_locale[i] = (U8) toUPPER_LC((U8) i); - else - PL_fold_locale[i] = (U8) i; - } + for (i = 0; i < 256; i++) { + if (isUPPER_LC(i)) + PL_fold_locale[i] = toLOWER_LC(i); + else if (isLOWER_LC(i)) + PL_fold_locale[i] = toUPPER_LC(i); + else + PL_fold_locale[i] = i; } #endif /* USE_LOCALE_CTYPE */ - PERL_ARGS_ASSERT_NEW_CTYPE; - PERL_UNUSED_ARG(newctype); - PERL_UNUSED_CONTEXT; } +/* + * Set up for a new collation locale. + */ void -Perl_new_collate(pTHX_ const char *newcoll) +Perl_new_collate(pTHX_ char *newcoll) { #ifdef USE_LOCALE_COLLATE - /* Called after all libc setlocale() calls affecting LC_COLLATE, to tell - * core Perl this and that 'newcoll' is the name of the new locale. - * - * Any code changing the locale (outside this file) should use - * POSIX::setlocale, which calls this function. Therefore this function - * should be called directly only from this file and from - * POSIX::setlocale() */ - - dVAR; - if (! newcoll) { if (PL_collation_name) { ++PL_collation_ix; @@ -309,20 +206,18 @@ Perl_new_collate(pTHX_ const char *newcoll) ++PL_collation_ix; Safefree(PL_collation_name); PL_collation_name = stdize_locale(savepv(newcoll)); - PL_collation_standard = ((*newcoll == 'C' && newcoll[1] == '\0') - || strEQ(newcoll, "POSIX")); + PL_collation_standard = (strEQ(newcoll, "C") || strEQ(newcoll, "POSIX")); { /* 2: at most so many chars ('a', 'b'). */ /* 50: surely no system expands a char more. */ #define XFRMBUFSIZE (2 * 50) char xbuf[XFRMBUFSIZE]; - const Size_t fa = strxfrm(xbuf, "a", XFRMBUFSIZE); - const Size_t fb = strxfrm(xbuf, "ab", XFRMBUFSIZE); - const SSize_t mult = fb - fa; - if (mult < 1 && !(fa == 0 && fb == 0)) - Perl_croak(aTHX_ "panic: strxfrm() gets absurd - a => %"UVuf", ab => %"UVuf, - (UV) fa, (UV) fb); + Size_t fa = strxfrm(xbuf, "a", XFRMBUFSIZE); + Size_t fb = strxfrm(xbuf, "ab", XFRMBUFSIZE); + SSize_t mult = fb - fa; + if (mult < 1) + Perl_croak(aTHX_ "strxfrm() gets absurd"); PL_collxfrm_base = (fa > (Size_t)mult) ? (fa - mult) : 0; PL_collxfrm_mult = mult; } @@ -331,160 +226,20 @@ Perl_new_collate(pTHX_ const char *newcoll) #endif /* USE_LOCALE_COLLATE */ } -#ifdef WIN32 - -char * -Perl_my_setlocale(pTHX_ int category, const char* locale) -{ - /* This, for Windows, emulates POSIX setlocale() behavior. There is no - * difference unless the input locale is "", which means on Windows to get - * the machine default, which is set via the computer's "Regional and - * Language Options" (or its current equivalent). In POSIX, it instead - * means to find the locale from the user's environment. This routine - * looks in the environment, and, if anything is found, uses that instead - * of going to the machine default. If there is no environment override, - * the machine default is used, as normal, by calling the real setlocale() - * with "". The POSIX behavior is to use the LC_ALL variable if set; - * otherwise to use the particular category's variable if set; otherwise to - * use the LANG variable. */ - - bool override_LC_ALL = 0; - char * result; - - if (locale && strEQ(locale, "")) { -# ifdef LC_ALL - locale = PerlEnv_getenv("LC_ALL"); - if (! locale) { -#endif - switch (category) { -# ifdef LC_ALL - case LC_ALL: - override_LC_ALL = TRUE; - break; /* We already know its variable isn't set */ -# endif -# ifdef USE_LOCALE_TIME - case LC_TIME: - locale = PerlEnv_getenv("LC_TIME"); - break; -# endif -# ifdef USE_LOCALE_CTYPE - case LC_CTYPE: - locale = PerlEnv_getenv("LC_CTYPE"); - break; -# endif -# ifdef USE_LOCALE_COLLATE - case LC_COLLATE: - locale = PerlEnv_getenv("LC_COLLATE"); - break; -# endif -# ifdef USE_LOCALE_MONETARY - case LC_MONETARY: - locale = PerlEnv_getenv("LC_MONETARY"); - break; -# endif -# ifdef USE_LOCALE_NUMERIC - case LC_NUMERIC: - locale = PerlEnv_getenv("LC_NUMERIC"); - break; -# endif -# ifdef USE_LOCALE_MESSAGES - case LC_MESSAGES: - locale = PerlEnv_getenv("LC_MESSAGES"); - break; -# endif - default: - /* This is a category, like PAPER_SIZE that we don't - * know about; and so can't provide a wrapper. */ - break; - } - if (! locale) { - locale = PerlEnv_getenv("LANG"); - if (! locale) { - locale = ""; - } - } -# ifdef LC_ALL - } -# endif - } - - result = setlocale(category, locale); - - if (! override_LC_ALL) { - return result; - } - - /* Here the input locale was LC_ALL, and we have set it to what is in the - * LANG variable or the system default if there is no LANG. But these have - * lower priority than the other LC_foo variables, so override it for each - * one that is set. (If they are set to "", it means to use the same thing - * we just set LC_ALL to, so can skip) */ -# ifdef USE_LOCALE_TIME - result = PerlEnv_getenv("LC_TIME"); - if (result && strNE(result, "")) { - setlocale(LC_TIME, result); - } -# endif -# ifdef USE_LOCALE_CTYPE - result = PerlEnv_getenv("LC_CTYPE"); - if (result && strNE(result, "")) { - setlocale(LC_CTYPE, result); - } -# endif -# ifdef USE_LOCALE_COLLATE - result = PerlEnv_getenv("LC_COLLATE"); - if (result && strNE(result, "")) { - setlocale(LC_COLLATE, result); - } -# endif -# ifdef USE_LOCALE_MONETARY - result = PerlEnv_getenv("LC_MONETARY"); - if (result && strNE(result, "")) { - setlocale(LC_MONETARY, result); - } -# endif -# ifdef USE_LOCALE_NUMERIC - result = PerlEnv_getenv("LC_NUMERIC"); - if (result && strNE(result, "")) { - setlocale(LC_NUMERIC, result); - } -# endif -# ifdef USE_LOCALE_MESSAGES - result = PerlEnv_getenv("LC_MESSAGES"); - if (result && strNE(result, "")) { - setlocale(LC_MESSAGES, result); - } -# endif - - return setlocale(LC_ALL, NULL); - -} - -#endif - - /* * Initialize locale awareness. */ int Perl_init_i18nl10n(pTHX_ int printwarn) { - /* printwarn is - * - * 0 if not to output warning when setup locale is bad - * 1 if to output warning based on value of PERL_BADLANG - * >1 if to output regardless of PERL_BADLANG - * - * returns + int ok = 1; + /* returns * 1 = set ok or not applicable, - * 0 = fallback to a locale of lower priority - * -1 = fallback to all locales failed, not even to the C locale + * 0 = fallback to C locale, + * -1 = fallback to C locale failed */ - int ok = 1; - #if defined(USE_LOCALE) - dVAR; #ifdef USE_LOCALE_CTYPE char *curctype = NULL; @@ -496,376 +251,211 @@ Perl_init_i18nl10n(pTHX_ int printwarn) char *curnum = NULL; #endif /* USE_LOCALE_NUMERIC */ #ifdef __GLIBC__ - char * const language = PerlEnv_getenv("LANGUAGE"); + char *language = PerlEnv_getenv("LANGUAGE"); #endif - - /* NULL uses the existing already set up locale */ - const char * const setlocale_init = (PerlEnv_getenv("PERL_SKIP_LOCALE_INIT")) - ? NULL - : ""; - const char* trial_locales[5]; /* 5 = 1 each for "", LC_ALL, LANG, "", C */ - unsigned int trial_locales_count; - char * const lc_all = PerlEnv_getenv("LC_ALL"); - char * const lang = PerlEnv_getenv("LANG"); + char *lc_all = PerlEnv_getenv("LC_ALL"); + char *lang = PerlEnv_getenv("LANG"); bool setlocale_failure = FALSE; - unsigned int i; - char *p; - const bool locwarn = (printwarn > 1 || - (printwarn && - (!(p = PerlEnv_getenv("PERL_BADLANG")) || atoi(p)))); - bool done = FALSE; - const char *system_default_locale = NULL; - -#ifndef LOCALE_ENVIRON_REQUIRED - PERL_UNUSED_VAR(done); -#else +#ifdef LOCALE_ENVIRON_REQUIRED /* * Ultrix setlocale(..., "") fails if there are no environment * variables from which to get a locale name. */ -# ifdef LC_ALL + bool done = FALSE; + +#ifdef LC_ALL if (lang) { - if (my_setlocale(LC_ALL, setlocale_init)) + if (setlocale(LC_ALL, "")) done = TRUE; else setlocale_failure = TRUE; } if (!setlocale_failure) { -# ifdef USE_LOCALE_CTYPE - Safefree(curctype); +#ifdef USE_LOCALE_CTYPE if (! (curctype = - my_setlocale(LC_CTYPE, + setlocale(LC_CTYPE, (!done && (lang || PerlEnv_getenv("LC_CTYPE"))) - ? setlocale_init : NULL))) + ? "" : Nullch))) setlocale_failure = TRUE; else curctype = savepv(curctype); -# endif /* USE_LOCALE_CTYPE */ -# ifdef USE_LOCALE_COLLATE - Safefree(curcoll); +#endif /* USE_LOCALE_CTYPE */ +#ifdef USE_LOCALE_COLLATE if (! (curcoll = - my_setlocale(LC_COLLATE, + setlocale(LC_COLLATE, (!done && (lang || PerlEnv_getenv("LC_COLLATE"))) - ? setlocale_init : NULL))) + ? "" : Nullch))) setlocale_failure = TRUE; else curcoll = savepv(curcoll); -# endif /* USE_LOCALE_COLLATE */ -# ifdef USE_LOCALE_NUMERIC - Safefree(curnum); +#endif /* USE_LOCALE_COLLATE */ +#ifdef USE_LOCALE_NUMERIC if (! (curnum = - my_setlocale(LC_NUMERIC, + setlocale(LC_NUMERIC, (!done && (lang || PerlEnv_getenv("LC_NUMERIC"))) - ? setlocale_init : NULL))) + ? "" : Nullch))) setlocale_failure = TRUE; else curnum = savepv(curnum); -# endif /* USE_LOCALE_NUMERIC */ -# ifdef USE_LOCALE_MESSAGES - if (! my_setlocale(LC_MESSAGES, - (!done && (lang || PerlEnv_getenv("LC_MESSAGES"))) - ? setlocale_init : NULL)) - { - setlocale_failure = TRUE; - } -# endif /* USE_LOCALE_MESSAGES */ -# ifdef USE_LOCALE_MONETARY - if (! my_setlocale(LC_MONETARY, - (!done && (lang || PerlEnv_getenv("LC_MONETARY"))) - ? setlocale_init : NULL)) - { - setlocale_failure = TRUE; - } -# endif /* USE_LOCALE_MONETARY */ +#endif /* USE_LOCALE_NUMERIC */ } -# endif /* LC_ALL */ +#endif /* LC_ALL */ #endif /* !LOCALE_ENVIRON_REQUIRED */ - /* We try each locale in the list until we get one that works, or exhaust - * the list */ - trial_locales[0] = setlocale_init; - trial_locales_count = 1; - for (i= 0; i < trial_locales_count; i++) { - const char * trial_locale = trial_locales[i]; - - if (i > 0) { - - /* XXX This is to preserve old behavior for LOCALE_ENVIRON_REQUIRED - * when i==0, but I (khw) don't think that behavior makes much - * sense */ - setlocale_failure = FALSE; - -#ifdef WIN32 - - /* On Windows machines, an entry of "" after the 0th means to use - * the system default locale, which we now proceed to get. */ - if (strEQ(trial_locale, "")) { - unsigned int j; - - /* Note that this may change the locale, but we are going to do - * that anyway just below */ - system_default_locale = setlocale(LC_ALL, ""); - - /* Skip if invalid or it's already on the list of locales to - * try */ - if (! system_default_locale) { - goto next_iteration; - } - for (j = 0; j < trial_locales_count; j++) { - if (strEQ(system_default_locale, trial_locales[j])) { - goto next_iteration; - } - } - - trial_locale = system_default_locale; - } -#endif - } - #ifdef LC_ALL - if (! my_setlocale(LC_ALL, trial_locale)) { - setlocale_failure = TRUE; - } - else { - /* Since LC_ALL succeeded, it should have changed all the other - * categories it can to its value; so we massage things so that the - * setlocales below just return their category's current values. - * This adequately handles the case in NetBSD where LC_COLLATE may - * not be defined for a locale, and setting it individually will - * fail, whereas setting LC_ALL suceeds, leaving LC_COLLATE set to - * the POSIX locale. */ - trial_locale = NULL; - } + if (! setlocale(LC_ALL, "")) + setlocale_failure = TRUE; #endif /* LC_ALL */ - if (!setlocale_failure) { + if (!setlocale_failure) { #ifdef USE_LOCALE_CTYPE - Safefree(curctype); - if (! (curctype = my_setlocale(LC_CTYPE, trial_locale))) - setlocale_failure = TRUE; - else - curctype = savepv(curctype); + if (! (curctype = setlocale(LC_CTYPE, ""))) + setlocale_failure = TRUE; + else + curctype = savepv(curctype); #endif /* USE_LOCALE_CTYPE */ #ifdef USE_LOCALE_COLLATE - Safefree(curcoll); - if (! (curcoll = my_setlocale(LC_COLLATE, trial_locale))) - setlocale_failure = TRUE; - else - curcoll = savepv(curcoll); + if (! (curcoll = setlocale(LC_COLLATE, ""))) + setlocale_failure = TRUE; + else + curcoll = savepv(curcoll); #endif /* USE_LOCALE_COLLATE */ #ifdef USE_LOCALE_NUMERIC - Safefree(curnum); - if (! (curnum = my_setlocale(LC_NUMERIC, trial_locale))) - setlocale_failure = TRUE; - else - curnum = savepv(curnum); + if (! (curnum = setlocale(LC_NUMERIC, ""))) + setlocale_failure = TRUE; + else + curnum = savepv(curnum); #endif /* USE_LOCALE_NUMERIC */ -#ifdef USE_LOCALE_MESSAGES - if (! (my_setlocale(LC_MESSAGES, trial_locale))) - setlocale_failure = TRUE; -#endif /* USE_LOCALE_MESSAGES */ -#ifdef USE_LOCALE_MONETARY - if (! (my_setlocale(LC_MONETARY, trial_locale))) - setlocale_failure = TRUE; -#endif /* USE_LOCALE_MONETARY */ - - if (! setlocale_failure) { /* Success */ - break; - } - } - - /* Here, something failed; will need to try a fallback. */ - ok = 0; - - if (i == 0) { - unsigned int j; - - if (locwarn) { /* Output failure info only on the first one */ + } + + if (setlocale_failure) { + char *p; + bool locwarn = (printwarn > 1 || + (printwarn && + (!(p = PerlEnv_getenv("PERL_BADLANG")) || atoi(p)))); + + if (locwarn) { #ifdef LC_ALL - PerlIO_printf(Perl_error_log, - "perl: warning: Setting locale failed.\n"); + PerlIO_printf(Perl_error_log, + "perl: warning: Setting locale failed.\n"); #else /* !LC_ALL */ - PerlIO_printf(Perl_error_log, - "perl: warning: Setting locale failed for the categories:\n\t"); + PerlIO_printf(Perl_error_log, + "perl: warning: Setting locale failed for the categories:\n\t"); #ifdef USE_LOCALE_CTYPE - if (! curctype) - PerlIO_printf(Perl_error_log, "LC_CTYPE "); + if (! curctype) + PerlIO_printf(Perl_error_log, "LC_CTYPE "); #endif /* USE_LOCALE_CTYPE */ #ifdef USE_LOCALE_COLLATE - if (! curcoll) - PerlIO_printf(Perl_error_log, "LC_COLLATE "); + if (! curcoll) + PerlIO_printf(Perl_error_log, "LC_COLLATE "); #endif /* USE_LOCALE_COLLATE */ #ifdef USE_LOCALE_NUMERIC - if (! curnum) - PerlIO_printf(Perl_error_log, "LC_NUMERIC "); + if (! curnum) + PerlIO_printf(Perl_error_log, "LC_NUMERIC "); #endif /* USE_LOCALE_NUMERIC */ - PerlIO_printf(Perl_error_log, "and possibly others\n"); + PerlIO_printf(Perl_error_log, "\n"); #endif /* LC_ALL */ - PerlIO_printf(Perl_error_log, - "perl: warning: Please check that your locale settings:\n"); + PerlIO_printf(Perl_error_log, + "perl: warning: Please check that your locale settings:\n"); #ifdef __GLIBC__ - PerlIO_printf(Perl_error_log, - "\tLANGUAGE = %c%s%c,\n", - language ? '"' : '(', - language ? language : "unset", - language ? '"' : ')'); + PerlIO_printf(Perl_error_log, + "\tLANGUAGE = %c%s%c,\n", + language ? '"' : '(', + language ? language : "unset", + language ? '"' : ')'); #endif - PerlIO_printf(Perl_error_log, - "\tLC_ALL = %c%s%c,\n", - lc_all ? '"' : '(', - lc_all ? lc_all : "unset", - lc_all ? '"' : ')'); + PerlIO_printf(Perl_error_log, + "\tLC_ALL = %c%s%c,\n", + lc_all ? '"' : '(', + lc_all ? lc_all : "unset", + lc_all ? '"' : ')'); #if defined(USE_ENVIRON_ARRAY) - { - char **e; - for (e = environ; *e; e++) { - if (strnEQ(*e, "LC_", 3) - && strnNE(*e, "LC_ALL=", 7) - && (p = strchr(*e, '='))) - PerlIO_printf(Perl_error_log, "\t%.*s = \"%s\",\n", - (int)(p - *e), *e, p + 1); - } - } + { + char **e; + for (e = environ; *e; e++) { + if (strnEQ(*e, "LC_", 3) + && strnNE(*e, "LC_ALL=", 7) + && (p = strchr(*e, '='))) + PerlIO_printf(Perl_error_log, "\t%.*s = \"%s\",\n", + (int)(p - *e), *e, p + 1); + } + } #else - PerlIO_printf(Perl_error_log, - "\t(possibly more locale environment variables)\n"); + PerlIO_printf(Perl_error_log, + "\t(possibly more locale environment variables)\n"); #endif - PerlIO_printf(Perl_error_log, - "\tLANG = %c%s%c\n", - lang ? '"' : '(', - lang ? lang : "unset", - lang ? '"' : ')'); - - PerlIO_printf(Perl_error_log, - " are supported and installed on your system.\n"); - } - - /* Calculate what fallback locales to try. We have avoided this - * until we have to, becuase failure is quite unlikely. This will - * usually change the upper bound of the loop we are in. - * - * Since the system's default way of setting the locale has not - * found one that works, We use Perl's defined ordering: LC_ALL, - * LANG, and the C locale. We don't try the same locale twice, so - * don't add to the list if already there. (On POSIX systems, the - * LC_ALL element will likely be a repeat of the 0th element "", - * but there's no harm done by doing it explicitly */ - if (lc_all) { - for (j = 0; j < trial_locales_count; j++) { - if (strEQ(lc_all, trial_locales[j])) { - goto done_lc_all; - } - } - trial_locales[trial_locales_count++] = lc_all; - } - done_lc_all: - - if (lang) { - for (j = 0; j < trial_locales_count; j++) { - if (strEQ(lang, trial_locales[j])) { - goto done_lang; - } - } - trial_locales[trial_locales_count++] = lang; - } - done_lang: - -#if defined(WIN32) && defined(LC_ALL) - /* For Windows, we also try the system default locale before "C". - * (If there exists a Windows without LC_ALL we skip this because - * it gets too complicated. For those, the "C" is the next - * fallback possibility). The "" is the same as the 0th element of - * the array, but the code at the loop above knows to treat it - * differently when not the 0th */ - trial_locales[trial_locales_count++] = ""; -#endif - - for (j = 0; j < trial_locales_count; j++) { - if (strEQ("C", trial_locales[j])) { - goto done_C; - } - } - trial_locales[trial_locales_count++] = "C"; + PerlIO_printf(Perl_error_log, + "\tLANG = %c%s%c\n", + lang ? '"' : '(', + lang ? lang : "unset", + lang ? '"' : ')'); - done_C: ; - } /* end of first time through the loop */ + PerlIO_printf(Perl_error_log, + " are supported and installed on your system.\n"); + } -#ifdef WIN32 - next_iteration: ; -#endif +#ifdef LC_ALL - } /* end of looping through the trial locales */ + if (setlocale(LC_ALL, "C")) { + if (locwarn) + PerlIO_printf(Perl_error_log, + "perl: warning: Falling back to the standard locale (\"C\").\n"); + ok = 0; + } + else { + if (locwarn) + PerlIO_printf(Perl_error_log, + "perl: warning: Failed to fall back to the standard locale (\"C\").\n"); + ok = -1; + } - if (ok < 1) { /* If we tried to fallback */ - const char* msg; - if (! setlocale_failure) { /* fallback succeeded */ - msg = "Falling back to"; - } - else { /* fallback failed */ +#else /* ! LC_ALL */ - /* We dropped off the end of the loop, so have to decrement i to - * get back to the value the last time through */ - i--; + if (0 +#ifdef USE_LOCALE_CTYPE + || !(curctype || setlocale(LC_CTYPE, "C")) +#endif /* USE_LOCALE_CTYPE */ +#ifdef USE_LOCALE_COLLATE + || !(curcoll || setlocale(LC_COLLATE, "C")) +#endif /* USE_LOCALE_COLLATE */ +#ifdef USE_LOCALE_NUMERIC + || !(curnum || setlocale(LC_NUMERIC, "C")) +#endif /* USE_LOCALE_NUMERIC */ + ) + { + if (locwarn) + PerlIO_printf(Perl_error_log, + "perl: warning: Cannot fall back to the standard locale (\"C\").\n"); + ok = -1; + } - ok = -1; - msg = "Failed to fall back to"; +#endif /* ! LC_ALL */ - /* To continue, we should use whatever values we've got */ #ifdef USE_LOCALE_CTYPE - Safefree(curctype); - curctype = savepv(setlocale(LC_CTYPE, NULL)); + curctype = savepv(setlocale(LC_CTYPE, Nullch)); #endif /* USE_LOCALE_CTYPE */ #ifdef USE_LOCALE_COLLATE - Safefree(curcoll); - curcoll = savepv(setlocale(LC_COLLATE, NULL)); + curcoll = savepv(setlocale(LC_COLLATE, Nullch)); #endif /* USE_LOCALE_COLLATE */ #ifdef USE_LOCALE_NUMERIC - Safefree(curnum); - curnum = savepv(setlocale(LC_NUMERIC, NULL)); + curnum = savepv(setlocale(LC_NUMERIC, Nullch)); #endif /* USE_LOCALE_NUMERIC */ - } - - if (locwarn) { - const char * description; - const char * name = ""; - if (strEQ(trial_locales[i], "C")) { - description = "the standard locale"; - name = "C"; - } - else if (strEQ(trial_locales[i], "")) { - description = "the system default locale"; - if (system_default_locale) { - name = system_default_locale; - } - } - else { - description = "a fallback locale"; - name = trial_locales[i]; - } - if (name && strNE(name, "")) { - PerlIO_printf(Perl_error_log, - "perl: warning: %s %s (\"%s\").\n", msg, description, name); - } - else { - PerlIO_printf(Perl_error_log, - "perl: warning: %s %s.\n", msg, description); - } - } - } /* End of tried to fallback */ + } + else { #ifdef USE_LOCALE_CTYPE new_ctype(curctype); @@ -879,40 +469,80 @@ Perl_init_i18nl10n(pTHX_ int printwarn) new_numeric(curnum); #endif /* USE_LOCALE_NUMERIC */ -#if defined(USE_PERLIO) && defined(USE_LOCALE_CTYPE) - /* Set PL_utf8locale to TRUE if using PerlIO _and_ the current LC_CTYPE - * locale is UTF-8. If PL_utf8locale and PL_unicode (set by -C or by - * $ENV{PERL_UNICODE}) are true, perl.c:S_parse_body() will turn on the - * PerlIO :utf8 layer on STDIN, STDOUT, STDERR, _and_ the default open - * discipline. */ - PL_utf8locale = is_cur_LC_category_utf8(LC_CTYPE); - - /* Set PL_unicode to $ENV{PERL_UNICODE} if using PerlIO. - This is an alternative to using the -C command line switch - (the -C if present will override this). */ + } + +#endif /* USE_LOCALE */ + +#ifdef USE_PERLIO { - const char *p = PerlEnv_getenv("PERL_UNICODE"); - PL_unicode = p ? parse_unicode_opts(&p) : 0; - if (PL_unicode & PERL_UNICODE_UTF8CACHEASSERT_FLAG) - PL_utf8cache = -1; + /* Set PL_wantutf8 to TRUE if using PerlIO _and_ + any of the following are true: + - nl_langinfo(CODESET) contains /^utf-?8/i + - $ENV{LANGUAGE} contains /^utf-?8/i (only if using glibc) + - $ENV{LC_CALL} contains /^utf-?8/i + - $ENV{LC_CTYPE} contains /^utf-?8/i + - $ENV{LANG} contains /^utf-?8/i + If PL_wantutf8 is true, perl.c:S_parse_body() + will turn on the PerlIO :utf8 discipline on STDIN, STDOUT, + STDERR, _and_ the default open discipline. + */ + bool wantutf8 = FALSE; + char *codeset = NULL; +#if defined(HAS_NL_LANGINFO) && defined(CODESET) + codeset = nl_langinfo(CODESET); +#endif + if (codeset && + (ibcmp(codeset, "UTF-8", 5) == 0 || + ibcmp(codeset, "UTF8", 4) == 0)) + wantutf8 = TRUE; +#if defined(USE_LOCALE) +#ifdef __GLIBC__ + if (!wantutf8 && language && + (ibcmp(language, "UTF-8", 5) == 0 || + ibcmp(language, "UTF8", 4) == 0)) + wantutf8 = TRUE; +#endif + if (!wantutf8 && lc_all && + (ibcmp(lc_all, "UTF-8", 5) == 0 || + ibcmp(lc_all, "UTF8", 4) == 0)) + wantutf8 = TRUE; +#ifdef USE_LOCALE_CTYPE + if (!wantutf8 && curctype && + (ibcmp(curctype, "UTF-8", 5) == 0 || + ibcmp(curctype, "UTF8", 4) == 0)) + wantutf8 = TRUE; +#endif + if (!wantutf8 && lang && + (ibcmp(lang, "UTF-8", 5) == 0 || + ibcmp(lang, "UTF8", 4) == 0)) + wantutf8 = TRUE; +#endif /* USE_LOCALE */ + if (wantutf8) + PL_wantutf8 = TRUE; } #endif #ifdef USE_LOCALE_CTYPE - Safefree(curctype); + if (curctype != NULL) + Safefree(curctype); #endif /* USE_LOCALE_CTYPE */ #ifdef USE_LOCALE_COLLATE - Safefree(curcoll); + if (curcoll != NULL) + Safefree(curcoll); #endif /* USE_LOCALE_COLLATE */ #ifdef USE_LOCALE_NUMERIC - Safefree(curnum); + if (curnum != NULL) + Safefree(curnum); #endif /* USE_LOCALE_NUMERIC */ - -#endif /* USE_LOCALE */ - return ok; } +/* Backwards compatibility. */ +int +Perl_init_i18nl14n(pTHX_ int printwarn) +{ + return init_i18nl10n(printwarn); +} #ifdef USE_LOCALE_COLLATE @@ -923,32 +553,28 @@ Perl_init_i18nl10n(pTHX_ int printwarn) * The real transformed data begins at offset sizeof(collationix). * Please see sv_collxfrm() to see how this is used. */ - char * Perl_mem_collxfrm(pTHX_ const char *s, STRLEN len, STRLEN *xlen) { - dVAR; char *xbuf; STRLEN xAlloc, xin, xout; /* xalloc is a reserved word in VC */ - PERL_ARGS_ASSERT_MEM_COLLXFRM; - /* the first sizeof(collationix) bytes are used by sv_collxfrm(). */ /* the +1 is for the terminating NUL. */ xAlloc = sizeof(PL_collation_ix) + PL_collxfrm_base + (PL_collxfrm_mult * len) + 1; - Newx(xbuf, xAlloc, char); + New(171, xbuf, xAlloc, char); if (! xbuf) goto bad; *(U32*)xbuf = PL_collation_ix; xout = sizeof(PL_collation_ix); for (xin = 0; xin < len; ) { - Size_t xused; + SSize_t xused; for (;;) { xused = strxfrm(xbuf + xout, s + xin, xAlloc - xout); - if (xused >= PERL_INT_MAX) + if (xused == -1) goto bad; if ((STRLEN)xused < xAlloc - xout) break; @@ -977,400 +603,3 @@ Perl_mem_collxfrm(pTHX_ const char *s, STRLEN len, STRLEN *xlen) #endif /* USE_LOCALE_COLLATE */ -#ifdef USE_LOCALE - -STATIC bool -S_is_cur_LC_category_utf8(pTHX_ int category) -{ - /* Returns TRUE if the current locale for 'category' is UTF-8; FALSE - * otherwise. 'category' may not be LC_ALL. If the platform doesn't have - * nl_langinfo(), nor MB_CUR_MAX, this employs a heuristic, which hence - * could give the wrong result. It errs on the side of not being a UTF-8 - * locale. */ - - char *save_input_locale = NULL; - STRLEN final_pos; - -#ifdef LC_ALL - assert(category != LC_ALL); -#endif - - /* First dispose of the trivial cases */ - save_input_locale = setlocale(category, NULL); - if (! save_input_locale) { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Could not find current locale for category %d\n", - category)); - return FALSE; /* XXX maybe should croak */ - } - save_input_locale = stdize_locale(savepv(save_input_locale)); - if ((*save_input_locale == 'C' && save_input_locale[1] == '\0') - || strEQ(save_input_locale, "POSIX")) - { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Current locale for category %d is %s\n", - category, save_input_locale)); - Safefree(save_input_locale); - return FALSE; - } - -#if defined(USE_LOCALE_CTYPE) \ - && (defined(MB_CUR_MAX) || (defined(HAS_NL_LANGINFO) && defined(CODESET))) - - { /* Next try nl_langinfo or MB_CUR_MAX if available */ - - char *save_ctype_locale = NULL; - bool is_utf8; - - if (category != LC_CTYPE) { /* These work only on LC_CTYPE */ - - /* Get the current LC_CTYPE locale */ - save_ctype_locale = stdize_locale(savepv(setlocale(LC_CTYPE, NULL))); - if (! save_ctype_locale) { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Could not find current locale for LC_CTYPE\n")); - goto cant_use_nllanginfo; - } - - /* If LC_CTYPE and the desired category use the same locale, this - * means that finding the value for LC_CTYPE is the same as finding - * the value for the desired category. Otherwise, switch LC_CTYPE - * to the desired category's locale */ - if (strEQ(save_ctype_locale, save_input_locale)) { - Safefree(save_ctype_locale); - save_ctype_locale = NULL; - } - else if (! setlocale(LC_CTYPE, save_input_locale)) { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Could not change LC_CTYPE locale to %s\n", - save_input_locale)); - Safefree(save_ctype_locale); - goto cant_use_nllanginfo; - } - } - - DEBUG_L(PerlIO_printf(Perl_debug_log, "Current LC_CTYPE locale=%s\n", - save_input_locale)); - - /* Here the current LC_CTYPE is set to the locale of the category whose - * information is desired. This means that nl_langinfo() and MB_CUR_MAX - * should give the correct results */ - -# if defined(HAS_NL_LANGINFO) && defined(CODESET) - { - char *codeset = savepv(nl_langinfo(CODESET)); - if (codeset && strNE(codeset, "")) { - - /* If we switched LC_CTYPE, switch back */ - if (save_ctype_locale) { - setlocale(LC_CTYPE, save_ctype_locale); - Safefree(save_ctype_locale); - } - - is_utf8 = foldEQ(codeset, STR_WITH_LEN("UTF-8")) - || foldEQ(codeset, STR_WITH_LEN("UTF8")); - - DEBUG_L(PerlIO_printf(Perl_debug_log, - "\tnllanginfo returned CODESET '%s'; ?UTF8 locale=%d\n", - codeset, is_utf8)); - Safefree(codeset); - Safefree(save_input_locale); - return is_utf8; - } - Safefree(codeset); - } - -# endif -# ifdef MB_CUR_MAX - - /* Here, either we don't have nl_langinfo, or it didn't return a - * codeset. Try MB_CUR_MAX */ - - /* Standard UTF-8 needs at least 4 bytes to represent the maximum - * Unicode code point. Since UTF-8 is the only non-single byte - * encoding we handle, we just say any such encoding is UTF-8, and if - * turns out to be wrong, other things will fail */ - is_utf8 = MB_CUR_MAX >= 4; - - DEBUG_L(PerlIO_printf(Perl_debug_log, - "\tMB_CUR_MAX=%d; ?UTF8 locale=%d\n", - (int) MB_CUR_MAX, is_utf8)); - - Safefree(save_input_locale); - -# ifdef HAS_MBTOWC - - /* ... But, most system that have MB_CUR_MAX will also have mbtowc(), - * since they are both in the C99 standard. We can feed a known byte - * string to the latter function, and check that it gives the expected - * result */ - if (is_utf8) { - wchar_t wc; - PERL_UNUSED_RESULT(mbtowc(&wc, NULL, 0));/* Reset any shift state */ - errno = 0; - if (mbtowc(&wc, HYPHEN_UTF8, strlen(HYPHEN_UTF8)) - != strlen(HYPHEN_UTF8) - || wc != (wchar_t) 0x2010) - { - is_utf8 = FALSE; - DEBUG_L(PerlIO_printf(Perl_debug_log, "\thyphen=U+%x\n", wc)); - DEBUG_L(PerlIO_printf(Perl_debug_log, - "\treturn from mbtowc=%d; errno=%d; ?UTF8 locale=0\n", - mbtowc(&wc, HYPHEN_UTF8, strlen(HYPHEN_UTF8)), errno)); - } - } -# endif - - /* If we switched LC_CTYPE, switch back */ - if (save_ctype_locale) { - setlocale(LC_CTYPE, save_ctype_locale); - Safefree(save_ctype_locale); - } - - return is_utf8; -# endif - } - - cant_use_nllanginfo: - -#endif /* HAS_NL_LANGINFO etc */ - - /* nl_langinfo not available or failed somehow. Look at the locale name to - * see if it matches qr/UTF -? 8 /ix */ - - final_pos = strlen(save_input_locale) - 1; - if (final_pos >= 3) { - char *name = save_input_locale; - - /* Find next 'U' or 'u' and look from there */ - while ((name += strcspn(name, "Uu") + 1) - <= save_input_locale + final_pos - 2) - { - if (toFOLD(*(name)) != 't' - || toFOLD(*(name + 1)) != 'f') - { - continue; - } - name += 2; - if (*(name) == '-') { - if ((name > save_input_locale + final_pos - 1)) { - break; - } - name++; - } - if (*(name) == '8') { - Safefree(save_input_locale); - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Locale %s ends with UTF-8 in name\n", - save_input_locale)); - return TRUE; - } - } - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Locale %s doesn't end with UTF-8 in name\n", - save_input_locale)); - } - -#ifdef WIN32 - /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx */ - if (final_pos >= 4 - && *(save_input_locale + final_pos - 0) == '1' - && *(save_input_locale + final_pos - 1) == '0' - && *(save_input_locale + final_pos - 2) == '0' - && *(save_input_locale + final_pos - 3) == '5' - && *(save_input_locale + final_pos - 4) == '6') - { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Locale %s ends with 10056 in name, is UTF-8 locale\n", - save_input_locale)); - Safefree(save_input_locale); - return TRUE; - } -#endif - - /* Other common encodings are the ISO 8859 series, which aren't UTF-8 */ - if (instr(save_input_locale, "8859")) { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Locale %s has 8859 in name, not UTF-8 locale\n", - save_input_locale)); - Safefree(save_input_locale); - return FALSE; - } - -#ifdef HAS_LOCALECONV - -# ifdef USE_LOCALE_MONETARY - - /* Here, there is nothing in the locale name to indicate whether the locale - * is UTF-8 or not. This "name", the return of setlocale(), is actually - * defined to be opaque, so we can't really rely on the absence of various - * substrings in the name to indicate its UTF-8ness. Look at the locale's - * currency symbol. Often that will be in the native script, and if the - * symbol isn't in UTF-8, we know that the locale isn't. If it is - * non-ASCII UTF-8, we infer that the locale is too. - * To do this, like above for LC_CTYPE, we first set LC_MONETARY to the - * locale of the desired category, if it isn't that locale already */ - - { - char *save_monetary_locale = NULL; - bool illegal_utf8 = FALSE; - bool only_ascii = FALSE; - const struct lconv* const lc = localeconv(); - - if (category != LC_MONETARY) { - - save_monetary_locale = stdize_locale(savepv(setlocale(LC_MONETARY, - NULL))); - if (! save_monetary_locale) { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Could not find current locale for LC_MONETARY\n")); - goto cant_use_monetary; - } - - if (strNE(save_monetary_locale, save_input_locale)) { - if (! setlocale(LC_MONETARY, save_input_locale)) { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Could not change LC_MONETARY locale to %s\n", - save_input_locale)); - Safefree(save_monetary_locale); - goto cant_use_monetary; - } - } - } - - /* Here the current LC_MONETARY is set to the locale of the category - * whose information is desired. */ - - if (lc && lc->currency_symbol) { - if (! is_utf8_string((U8 *) lc->currency_symbol, 0)) { - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Currency symbol for %s is not legal UTF-8\n", - save_input_locale)); - illegal_utf8 = TRUE; - } - else if (is_ascii_string((U8 *) lc->currency_symbol, 0)) { - DEBUG_L(PerlIO_printf(Perl_debug_log, "Currency symbol for %s contains only ASCII; can't use for determining if UTF-8 locale\n", save_input_locale)); - only_ascii = TRUE; - } - } - - /* If we changed it, restore LC_MONETARY to its original locale */ - if (save_monetary_locale) { - setlocale(LC_MONETARY, save_monetary_locale); - Safefree(save_monetary_locale); - } - - Safefree(save_input_locale); - - /* It isn't a UTF-8 locale if the symbol is not legal UTF-8; otherwise - * assume the locale is UTF-8 if and only if the symbol is non-ascii - * UTF-8. (We can't really tell if the locale is UTF-8 or not if the - * symbol is just a '$', so we err on the side of it not being UTF-8) - * */ - DEBUG_L(PerlIO_printf(Perl_debug_log, "\tis_utf8=%d\n", (illegal_utf8) - ? FALSE - : ! only_ascii)); - return (illegal_utf8) - ? FALSE - : ! only_ascii; - - } - cant_use_monetary: - -# endif /* USE_LOCALE_MONETARY */ -#endif /* HAS_LOCALECONV */ - -#if 0 && defined(HAS_STRERROR) && defined(USE_LOCALE_MESSAGES) - -/* This code is ifdefd out because it was found to not be necessary in testing - * on our dromedary test machine, which has over 700 locales. There, looking - * at just the currency symbol gave essentially the same results as doing this - * extra work. Executing this also caused segfaults in miniperl. I left it in - * so as to avoid rewriting it if real-world experience indicates that - * dromedary is an outlier. Essentially, instead of returning abpve if we - * haven't found illegal utf8, we continue on and examine all the strerror() - * messages on the platform for utf8ness. If all are ASCII, we still don't - * know the answer; but otherwise we have a pretty good indication of the - * utf8ness. The reason this doesn't necessarily help much is that the - * messages may not have been translated into the locale. The currency symbol - * is much more likely to have been translated. The code below would need to - * be altered somewhat to just be a continuation of testing the currency - * symbol. */ - int e; - unsigned int failures = 0, non_ascii = 0; - char *save_messages_locale = NULL; - - /* Like above for LC_CTYPE, we set LC_MESSAGES to the locale of the - * desired category, if it isn't that locale already */ - - if (category != LC_MESSAGES) { - - save_messages_locale = stdize_locale(savepv(setlocale(LC_MESSAGES, - NULL))); - if (! save_messages_locale) { - goto cant_use_messages; - } - - if (strEQ(save_messages_locale, save_input_locale)) { - Safefree(save_input_locale); - } - else if (! setlocale(LC_MESSAGES, save_input_locale)) { - Safefree(save_messages_locale); - goto cant_use_messages; - } - } - - /* Here the current LC_MESSAGES is set to the locale of the category - * whose information is desired. Look through all the messages */ - - for (e = 0; -#ifdef HAS_SYS_ERRLIST - e <= sys_nerr -#endif - ; e++) - { - const U8* const errmsg = (U8 *) Strerror(e) ; - if (!errmsg) - break; - if (! is_utf8_string(errmsg, 0)) { - failures++; - break; - } - else if (! is_ascii_string(errmsg, 0)) { - non_ascii++; - } - } - - /* And, if we changed it, restore LC_MESSAGES to its original locale */ - if (save_messages_locale) { - setlocale(LC_MESSAGES, save_messages_locale); - Safefree(save_messages_locale); - } - - /* Any non-UTF-8 message means not a UTF-8 locale; if all are valid, - * any non-ascii means it is one; otherwise we assume it isn't */ - return (failures) ? FALSE : non_ascii; - - } - cant_use_messages: - -#endif - - DEBUG_L(PerlIO_printf(Perl_debug_log, - "Assuming locale %s is not a UTF-8 locale\n", - save_input_locale)); - Safefree(save_input_locale); - return FALSE; -} - -#endif - -/* - * Local variables: - * c-indentation-style: bsd - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * - * ex: set ts=8 sts=4 sw=4 et: - */ diff --git a/gnu/usr.bin/perl/pod/perlpodspec.pod b/gnu/usr.bin/perl/pod/perlpodspec.pod index 67f74b629b9..73872586343 100644 --- a/gnu/usr.bin/perl/pod/perlpodspec.pod +++ b/gnu/usr.bin/perl/pod/perlpodspec.pod @@ -1,4 +1,3 @@ -=encoding utf8 =head1 NAME @@ -31,7 +30,7 @@ it implicates that such an option I<may> be provided. =head1 Pod Definitions -Pod is embedded in files, typically Perl source files, although you +Pod is embedded in files, typically Perl source files -- although you can write a file that's nothing but Pod. A B<line> in a file consists of zero or more non-newline characters, @@ -50,7 +49,7 @@ A B<non-blank line> is a line containing one or more characters other than space or tab (and terminated by a newline or end-of-file). (I<Note:> Many older Pod parsers did not accept a line consisting of -spaces/tabs and then a newline as a blank line. The only lines they +spaces/tabs and then a newline as a blank line -- the only lines they considered blank were lines consisting of I<no characters at all>, terminated by a newline.) @@ -66,12 +65,12 @@ directly formatting it). A B<Pod formatter> (or B<Pod translator>) is a module or program that converts Pod to some other format (HTML, plaintext, TeX, PostScript, RTF). A B<Pod processor> might be a formatter or translator, or might be a program that does something -else with the Pod (like counting words, scanning for index points, +else with the Pod (like wordcounting it, scanning for index points, etc.). Pod content is contained in B<Pod blocks>. A Pod block starts with a line that matches <m/\A=[a-zA-Z]/>, and continues up to the next line -that matches C<m/\A=cut/> or up to the end of the file if there is +that matches C<m/\A=cut/> -- or up to the end of the file, if there is no C<m/\A=cut/> line. =for comment @@ -133,7 +132,7 @@ I<Some> command paragraphs allow formatting codes in their content In other words, the Pod processing handler for "head1" will apply the same processing to "Did You Remember to CE<lt>use strict;>?" that it -would to an ordinary paragraph (i.e., formatting codes like +would to an ordinary paragraph -- i.e., formatting codes (like "CE<lt>...>") are parsed and presumably formatted appropriately, and whitespace in the form of literal spaces and/or tabs is not significant. @@ -190,7 +189,7 @@ is a verbatim paragraph, because its first line starts with a literal whitespace character (and there's no "=begin"..."=end" region around). The "=begin I<identifier>" ... "=end I<identifier>" commands stop -paragraphs that they surround from being parsed as ordinary or verbatim +paragraphs that they surround from being parsed as data or verbatim paragraphs, if I<identifier> doesn't begin with a colon. This is discussed in detail in the section L</About Data Paragraphs and "=beginE<sol>=end" Regions>. @@ -239,7 +238,7 @@ ignored. Examples: # This is the first line of program text. sub foo { # This is the second. -It is an error to try to I<start> a Pod block with a "=cut" command. In +It is an error to try to I<start> a Pod black with a "=cut" command. In that case, the Pod processor must halt parsing of the input file, and must by default emit a warning. @@ -294,8 +293,6 @@ by the most recent "=over" command. It permits no text after the =item "=begin formatname" -=item "=begin formatname parameter" - This marks the following paragraphs (until the matching "=end formatname") as being for some special kind of processing. Unless "formatname" begins with a colon, the contained non-command @@ -305,11 +302,9 @@ or data paragraphs. This is discussed in detail in the section L</About Data Paragraphs and "=beginE<sol>=end" Regions>. It is advised that formatnames match the regexp -C<m/\A:?[-a-zA-Z0-9_]+\z/>. Everything following whitespace after the -formatname is a parameter that may be used by the formatter when dealing -with this region. This parameter must not be repeated in the "=end" -paragraph. Implementors should anticipate future expansion in the -semantics and syntax of the first parameter to "=begin"/"=end"/"=for". +C<m/\A:?[-a-zA-Z0-9_]+\z/>. Implementors should anticipate future +expansion in the semantics and syntax of the first parameter +to "=begin"/"=end"/"=for". =item "=end formatname" @@ -337,29 +332,6 @@ then "text..." will constitute a data paragraph. There is no way to use "=for formatname text..." to express "text..." as a verbatim paragraph. -=item "=encoding encodingname" - -This command, which should occur early in the document (at least -before any non-US-ASCII data!), declares that this document is -encoded in the encoding I<encodingname>, which must be -an encoding name that L<Encode> recognizes. (Encode's list -of supported encodings, in L<Encode::Supported>, is useful here.) -If the Pod parser cannot decode the declared encoding, it -should emit a warning and may abort parsing the document -altogether. - -A document having more than one "=encoding" line should be -considered an error. Pod processors may silently tolerate this if -the not-first "=encoding" lines are just duplicates of the -first one (e.g., if there's a "=encoding utf8" line, and later on -another "=encoding utf8" line). But Pod processors should complain if -there are contradictory "=encoding" lines in the same document -(e.g., if there is a "=encoding utf8" early in the document and -"=encoding big5" later). Pod processors that recognize BOMs -may also complain if they see an "=encoding" line -that contradicts the BOM (e.g., if a document with a UTF-16LE -BOM has an "=encoding shiftjis" line). - =back If a Pod processor sees any command other than the ones listed @@ -416,7 +388,7 @@ formatting code. Examples: B<< $foo->bar(); >> With this syntax, the whitespace character(s) after the "CE<lt><<" -and before the ">>" (or whatever letter) are I<not> renderable. They +and before the ">>" (or whatever letter) are I<not> renderable -- they do not signify whitespace, are merely part of the formatting codes themselves. That is, these are all synonymous: @@ -430,18 +402,6 @@ themselves. That is, these are all synonymous: and so on. -Finally, the multiple-angle-bracket form does I<not> alter the interpretation -of nested formatting codes, meaning that the following four example lines are -identical in meaning: - - B<example: C<$a E<lt>=E<gt> $b>> - - B<example: C<< $a <=> $b >>> - - B<example: C<< $a E<lt>=E<gt> $b >>> - - B<<< example: C<< $a E<lt>=E<gt> $b >> >>> - =back In parsing Pod, a notably tricky part is the correct parsing of @@ -503,7 +463,7 @@ L</Notes on Implementing Pod Processors>. This formatting code is syntactically simple, but semantically complex. What it means is that each space in the printable -content of this code signifies a non-breaking space. +content of this code signifies a nonbreaking space. Consider: @@ -514,7 +474,7 @@ Consider: Both signify the monospace (c[ode] style) text consisting of "$x", one space, "?", one space, ":", one space, "$z". The difference is that in the latter, with the S code, those spaces -are not "normal" spaces, but instead are non-breaking spaces. +are not "normal" spaces, but instead are nonbreaking spaces. =back @@ -539,7 +499,7 @@ a "-". This was so that this: would parse as equivalent to this: - C<$foo-E<gt>bar> + C<$foo-E<lt>bar> instead of as equivalent to a "C" formatting code containing only "$foo-", and then a "bar>" outside the "C" formatting code. This @@ -629,7 +589,7 @@ UTF-16. If the file begins with the three literal byte values 0xEF 0xBB 0xBF =for comment - If toke.c is modified to support UTF-32, add mention of those here. + If toke.c is modified to support UTF32, add mention of those here. =item * @@ -684,13 +644,13 @@ text identifying its name and version number, and the name and version numbers of any modules it might be using to process the Pod. Minimal examples: - %% POD::Pod2PS v3.14159, using POD::Parser v1.92 + %% POD::Pod2PS v3.14159, using POD::Parser v1.92 - <!-- Pod::HTML v3.14159, using POD::Parser v1.92 --> + <!-- Pod::HTML v3.14159, using POD::Parser v1.92 --> - {\doccomm generated by Pod::Tree::RTF 3.14159 using Pod::Tree 1.08} + {\doccomm generated by Pod::Tree::RTF 3.14159 using Pod::Tree 1.08} - .\" Pod::Man version 3.14159, using POD::Parser version 1.92 + .\" Pod::Man version 3.14159, using POD::Parser version 1.92 Formatters may also insert additional comments, including: the release date of the Pod formatter program, the contact address for @@ -741,7 +701,7 @@ period-space-space or period-newline sequences). Pod parsers should not, by default, try to coerce apostrophe (') and quote (") into smart quotes (little 9's, 66's, 99's, etc), nor try to turn backtick (`) into anything else but a single backtick character -(distinct from an open quote character!), nor "--" into anything but +(distinct from an openquote character!), nor "--" into anything but two minus signs. They I<must never> do any of those things to text in CE<lt>...> formatting codes, and never I<ever> to text in verbatim paragraphs. @@ -749,10 +709,10 @@ paragraphs. =item * When rendering Pod to a format that has two kinds of hyphens (-), one -that's a non-breaking hyphen, and another that's a breakable hyphen +that's a nonbreaking hyphen, and another that's a breakable hyphen (as in "object-oriented", which can be split across lines as "object-", newline, "oriented"), formatters are encouraged to -generally translate "-" to non-breaking hyphen, but may apply +generally translate "-" to nonbreaking hyphen, but may apply heuristics to convert some of these to breaking hyphens. =item * @@ -976,7 +936,7 @@ for idiosyncratic mappings of Unicode-to-I<my_escapes>. =item * -It is up to individual Pod formatter to display good judgement when +It is up to individual Pod formatter to display good judgment when confronted with an unrenderable character (which is distinct from an unknown EE<lt>thing> sequence that the parser couldn't resolve to anything, renderable or not). It is good practice to map Latin letters @@ -1009,15 +969,15 @@ EE<lt>euro>1,000,000 Solution|Million::Euros>". =item * -Some Pod formatters output to formats that implement non-breaking +Some Pod formatters output to formats that implement nonbreaking spaces as an individual character (which I'll call "NBSP"), and -others output to formats that implement non-breaking spaces just as +others output to formats that implement nonbreaking spaces just as spaces wrapped in a "don't break this across lines" code. Note that at the level of Pod, both sorts of codes can occur: Pod can contain a NBSP character (whether as a literal, or as a "EE<lt>160>" or "EE<lt>nbsp>" code); and Pod can contain "SE<lt>foo IE<lt>barE<gt> baz>" codes, where "mere spaces" (character 32) in -such codes are taken to represent non-breaking spaces. Pod +such codes are taken to represent nonbreaking spaces. Pod parsers should consider supporting the optional parsing of "SE<lt>foo IE<lt>barE<gt> baz>" as if it were "fooI<NBSP>IE<lt>barE<gt>I<NBSP>baz", and, going the other way, the @@ -1134,20 +1094,20 @@ link text. Note that link text may contain formatting.) =item Second: -The possibly inferred link-text; i.e., if there was no real link +The possibly inferred link-text -- i.e., if there was no real link text, then this is the text that we'll infer in its place. (E.g., for "LE<lt>Getopt::Std>", the inferred link text is "Getopt::Std".) =item Third: The name or URL, or undef if none. (E.g., in "LE<lt>Perl -Functions|perlfunc>", the name (also sometimes called the page) +Functions|perlfunc>", the name -- also sometimes called the page -- is "perlfunc". In "LE<lt>/CAVEATS>", the name is undef.) =item Fourth: The section (AKA "item" in older perlpods), or undef if none. E.g., -in "LE<lt>Getopt::Std/DESCRIPTIONE<gt>", "DESCRIPTION" is the section. (Note +in L<Getopt::Std/DESCRIPTION>, "DESCRIPTION" is the section. (Note that this is not the same as a manpage section like the "5" in "man 5 crontab". "Section Foo" in the Pod sense means the part of the text that's introduced by the heading or item whose text is "Foo".) @@ -1178,61 +1138,52 @@ a requirement that these be passed as an actual list or array.) For example: L<Foo::Bar> - => undef, # link text - "Foo::Bar", # possibly inferred link text - "Foo::Bar", # name - undef, # section - 'pod', # what sort of link - "Foo::Bar" # original content + => undef, # link text + "Foo::Bar", # possibly inferred link text + "Foo::Bar", # name + undef, # section + 'pod', # what sort of link + "Foo::Bar" # original content L<Perlport's section on NL's|perlport/Newlines> - => "Perlport's section on NL's", # link text - "Perlport's section on NL's", # possibly inferred link text - "perlport", # name - "Newlines", # section - 'pod', # what sort of link - "Perlport's section on NL's|perlport/Newlines" - # original content + => "Perlport's section on NL's", # link text + "Perlport's section on NL's", # possibly inferred link text + "perlport", # name + "Newlines", # section + 'pod', # what sort of link + "Perlport's section on NL's|perlport/Newlines" # orig. content L<perlport/Newlines> - => undef, # link text - '"Newlines" in perlport', # possibly inferred link text - "perlport", # name - "Newlines", # section - 'pod', # what sort of link - "perlport/Newlines" # original content + => undef, # link text + '"Newlines" in perlport', # possibly inferred link text + "perlport", # name + "Newlines", # section + 'pod', # what sort of link + "perlport/Newlines" # original content L<crontab(5)/"DESCRIPTION"> - => undef, # link text - '"DESCRIPTION" in crontab(5)', # possibly inferred link text - "crontab(5)", # name - "DESCRIPTION", # section - 'man', # what sort of link - 'crontab(5)/"DESCRIPTION"' # original content + => undef, # link text + '"DESCRIPTION" in crontab(5)', # possibly inferred link text + "crontab(5)", # name + "DESCRIPTION", # section + 'man', # what sort of link + 'crontab(5)/"DESCRIPTION"' # original content L</Object Attributes> - => undef, # link text - '"Object Attributes"', # possibly inferred link text - undef, # name - "Object Attributes", # section - 'pod', # what sort of link - "/Object Attributes" # original content + => undef, # link text + '"Object Attributes"', # possibly inferred link text + undef, # name + "Object Attributes", # section + 'pod', # what sort of link + "/Object Attributes" # original content L<http://www.perl.org/> - => undef, # link text - "http://www.perl.org/", # possibly inferred link text - "http://www.perl.org/", # name - undef, # section - 'url', # what sort of link - "http://www.perl.org/" # original content - - L<Perl.org|http://www.perl.org/> - => "Perl.org", # link text - "http://www.perl.org/", # possibly inferred link text - "http://www.perl.org/", # name - undef, # section - 'url', # what sort of link - "Perl.org|http://www.perl.org/" # original content + => undef, # link text + "http://www.perl.org/", # possibly inferred link text + "http://www.perl.org/", # name + undef, # section + 'url', # what sort of link + "http://www.perl.org/" # original content Note that you can distinguish URL-links from anything else by the fact that they match C<m/\A\w+:[^:\s]\S*\z/>. So @@ -1302,14 +1253,23 @@ browsers to decide. =item * +Authors wanting to link to a particular (absolute) URL, must do so +only with "LE<lt>scheme:...>" codes (like +LE<lt>http://www.perl.org>), and must not attempt "LE<lt>Some Site +Name|scheme:...>" codes. This restriction avoids many problems +in parsing and rendering LE<lt>...> codes. + +=item * + In a C<LE<lt>text|...E<gt>> code, text may contain formatting codes for formatting or for EE<lt>...> escapes, as in: L<B<ummE<234>stuff>|...> For C<LE<lt>...E<gt>> codes without a "name|" part, only -C<EE<lt>...E<gt>> and C<ZE<lt>E<gt>> codes may occur. That is, -authors should not use "C<LE<lt>BE<lt>Foo::BarE<gt>E<gt>>". +C<EE<lt>...E<gt>> and C<ZE<lt>E<gt>> codes may occur -- no +other formatting codes. That is, authors should not use +"C<LE<lt>BE<lt>Foo::BarE<gt>E<gt>>". Note, however, that formatting codes and ZE<lt>>'s can occur in any and all parts of an LE<lt>...> (i.e., in I<name>, I<section>, I<text>, @@ -1336,29 +1296,28 @@ that case, formatters will have to just ignore that formatting. At time of writing, C<LE<lt>nameE<gt>> values are of two types: either the name of a Pod page like C<LE<lt>Foo::BarE<gt>> (which might be a real Perl module or program in an @INC / PATH -directory, or a .pod file in those places); or the name of a Unix +directory, or a .pod file in those places); or the name of a UNIX man page, like C<LE<lt>crontab(5)E<gt>>. In theory, C<LE<lt>chmodE<gt>> in ambiguous between a Pod page called "chmod", or the Unix man page "chmod" (in whatever man-section). However, the presence of a string in parens, as in "crontab(5)", is sufficient to signal that what is being discussed is not a Pod page, and so is presumably a -Unix man page. The distinction is of no importance to many +UNIX man page. The distinction is of no importance to many Pod processors, but some processors that render to hypertext formats may need to distinguish them in order to know how to render a given C<LE<lt>fooE<gt>> code. =item * -Previous versions of perlpod allowed for a C<LE<lt>sectionE<gt>> syntax (as in -C<LE<lt>Object AttributesE<gt>>), which was not easily distinguishable from -C<LE<lt>nameE<gt>> syntax and for C<LE<lt>"section"E<gt>> which was only -slightly less ambiguous. This syntax is no longer in the specification, and -has been replaced by the C<LE<lt>/sectionE<gt>> syntax (where the slash was -formerly optional). Pod parsers should tolerate the C<LE<lt>"section"E<gt>> -syntax, for a while at least. The suggested heuristic for distinguishing -C<LE<lt>sectionE<gt>> from C<LE<lt>nameE<gt>> is that if it contains any -whitespace, it's a I<section>. Pod processors should warn about this being -deprecated syntax. +Previous versions of perlpod allowed for a C<LE<lt>sectionE<gt>> syntax +(as in "C<LE<lt>Object AttributesE<gt>>"), which was not easily distinguishable +from C<LE<lt>nameE<gt>> syntax. This syntax is no longer in the +specification, and has been replaced by the C<LE<lt>"section"E<gt>> syntax +(where the quotes were formerly optional). Pod parsers should tolerate +the C<LE<lt>sectionE<gt>> syntax, for a while at least. The suggested +heuristic for distinguishing C<LE<lt>sectionE<gt>> from C<LE<lt>nameE<gt>> +is that if it contains any whitespace, it's a I<section>. Pod processors +may warn about this being deprecated syntax. =back @@ -1559,7 +1518,7 @@ probably want to format it like so: Ut Enim -But (for the foreseeable future), Pod does not provide any way for Pod +But (for the forseeable future), Pod does not provide any way for Pod authors to distinguish which grouping is meant by the above "=item"-cluster structure. So formatters should format it like so: @@ -1879,7 +1838,7 @@ currently open region has the formatname "inner", not "outer". (It just happens that "outer" is the format name of a higher-up region.) This is an error. Processors must by default report this as an error, and may halt processing the document containing that error. A corollary of this is that -regions cannot "overlap". That is, the latter block above does not represent +regions cannot "overlap" -- i.e., the latter block above does not represent a region called "outer" which contains X and Y, overlapping a region called "inner" which contains Y and Z. But because it is invalid (as all apparently overlapping regions would be), it doesn't represent that, or diff --git a/gnu/usr.bin/perl/t/lib/warnings/toke b/gnu/usr.bin/perl/t/lib/warnings/toke index 92e94adf83a..0a5346a50f8 100644 --- a/gnu/usr.bin/perl/t/lib/warnings/toke +++ b/gnu/usr.bin/perl/t/lib/warnings/toke @@ -35,6 +35,10 @@ toke.c AOK You need to quote \"%s\"" sub fred {} ; $SIG{TERM} = fred; + Scalar value %.*s better written as $%.*s" + @a[3] = 2; + @a{3} = 2; + Can't use \\%c to mean $%c in expression $_ = "ab" ; s/(ab)/\1/e; @@ -76,11 +80,6 @@ toke.c AOK Unrecognized escape \\%c passed through $a = "\m" ; - Useless use of \\E. - $a = "abcd\E" ; - - Postfix dereference is experimental - %s number > %s non-portable my $a = 0b011111111111111111111111111111110 ; $a = 0b011111111111111111111111111111111 ; @@ -126,6 +125,7 @@ toke.c AOK __END__ # toke.c +use warnings 'deprecated' ; format STDOUT = @<<< @||| @>>> @>>> $a $b "abc" 'def' @@ -136,70 +136,19 @@ format STDOUT = $a $b "abc" 'def' . EXPECT -Use of comma-less variable list is deprecated at - line 4. -Use of comma-less variable list is deprecated at - line 4. -Use of comma-less variable list is deprecated at - line 4. +Use of comma-less variable list is deprecated at - line 5. +Use of comma-less variable list is deprecated at - line 5. +Use of comma-less variable list is deprecated at - line 5. ######## # toke.c +use warnings 'deprecated' ; $a = <<; no warnings 'deprecated' ; $a = <<; EXPECT -Use of bare << to mean <<"" is deprecated at - line 2. -######## -# toke.c -eval "\$\cT"; -eval "\${\7LOBAL_PHASE}"; -eval "\${\cT}"; -eval "\${\n\cT}"; -eval "\${\cT\n}"; -my $ret = eval "\${\n\cT\n}"; -print "ok\n" if $ret == $^T; - -no warnings 'deprecated' ; -eval "\$\cT"; -eval "\${\7LOBAL_PHASE}"; -eval "\${\cT}"; -eval "\${\n\cT}"; -eval "\${\cT\n}"; -eval "\${\n\cT\n}"; - -EXPECT -Use of literal control characters in variable names is deprecated at (eval 1) line 1. -Use of literal control characters in variable names is deprecated at (eval 2) line 1. -Use of literal control characters in variable names is deprecated at (eval 3) line 1. -Use of literal control characters in variable names is deprecated at (eval 4) line 2. -Use of literal control characters in variable names is deprecated at (eval 5) line 1. -Use of literal control characters in variable names is deprecated at (eval 6) line 2. -ok -######## -# toke.c -$a =~ m/$foo/eq; -$a =~ s/$foo/fool/seq; - -EXPECT -OPTION fatal -Unknown regexp modifier "/e" at - line 2, near "=~ " -Unknown regexp modifier "/q" at - line 2, near "=~ " -Unknown regexp modifier "/q" at - line 3, near "=~ " -Execution of - aborted due to compilation errors. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -$a =~ m/$foo/eネq; -$a =~ s/$foo/fool/seネq; - -EXPECT -OPTION fatal -Unknown regexp modifier "/e" at - line 4, near "=~ " -Unknown regexp modifier "/ネ" at - line 4, near "=~ " -Unknown regexp modifier "/q" at - line 4, near "=~ " -Unknown regexp modifier "/ネ" at - line 5, near "=~ " -Unknown regexp modifier "/q" at - line 5, near "=~ " -Execution of - aborted due to compilation errors. +Use of bare << to mean <<"" is deprecated at - line 3. ######## # toke.c use warnings 'syntax' ; @@ -281,32 +230,20 @@ EXPECT You need to quote "fred" at - line 3. ######## # toke.c -use utf8; -use open qw( :utf8 :std ); -use warnings 'syntax' ; -sub frèd {} ; $SIG{TERM} = frèd; -no warnings 'syntax' ; -$SIG{TERM} = frèd; -EXPECT -You need to quote "frèd" at - line 5. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); use warnings 'syntax' ; -sub ふれど {} ; $SIG{TERM} = ふれど; +@a[3] = 2; +@a{3} = 2; no warnings 'syntax' ; -$SIG{TERM} = ふれど; +@a[3] = 2; +@a{3} = 2; EXPECT -You need to quote "ふれど" at - line 5. +Scalar value @a[3] better written as $a[3] at - line 3. +Scalar value @a{3} better written as $a{3} at - line 4. ######## # toke.c use warnings 'syntax' ; $_ = "ab" ; s/(ab)/\1/e; -s//\(2)/e; # should be exempt -s/${\2}//; # same here -()="${\2}"; # metoo no warnings 'syntax' ; $_ = "ab" ; s/(ab)/\1/e; @@ -334,31 +271,17 @@ Possible attempt to separate words with commas at - line 3. ######## # toke.c use warnings 'qw' ; -@a = qw(a b c # #) ; +@a = qw(a b #) ; no warnings 'qw' ; -@a = qw(a b c # #) ; +@a = qw(a b #) ; EXPECT Possible attempt to put comments in qw() list at - line 3. ######## # toke.c -use warnings 'qw' ; -@a = qw(a, b, c # #) ; -no warnings 'qw' ; -@a = qw(a, b, c # #) ; -EXPECT -Possible attempt to separate words with commas at - line 3. -Possible attempt to put comments in qw() list at - line 3. -######## -# toke.c use warnings 'syntax' ; -print (""); -print ("") and $x = 1; -print ("") or die; -print ("") // die; -print (1+2) * 3 if 0; # only this one should warn -print (1+2) if 0; +print ("") EXPECT -print (...) interpreted as function at - line 7. +print (...) interpreted as function at - line 3. ######## # toke.c no warnings 'syntax' ; @@ -368,10 +291,9 @@ EXPECT ######## # toke.c use warnings 'syntax' ; -printf (""); -printf ("") . ''; +printf ("") EXPECT -printf (...) interpreted as function at - line 4. +printf (...) interpreted as function at - line 3. ######## # toke.c no warnings 'syntax' ; @@ -381,10 +303,9 @@ EXPECT ######## # toke.c use warnings 'syntax' ; -sort (""); -sort ("") . ''; +sort ("") EXPECT -sort (...) interpreted as function at - line 4. +sort (...) interpreted as function at - line 3. ######## # toke.c no warnings 'syntax' ; @@ -407,37 +328,6 @@ EXPECT Ambiguous use of ${time{...}} resolved to $time{...} at - line 3. ######## # toke.c -use warnings 'ambiguous' ; -$a = ${ - - time - {2} -}; -warn "after"; -EXPECT -Ambiguous use of ${time{...}} resolved to $time{...} at - line 5. -after at - line 8. -######## -# toke.c -use warnings 'ambiguous' ; -$a = ${ - -time[2] - -}; -$a = ${ - -time - [2] - -}; -warn "after"; -EXPECT -Ambiguous use of ${time[...]} resolved to $time[...] at - line 5. -Ambiguous use of ${time[...]} resolved to $time[...] at - line 10. -after at - line 14. -######## -# toke.c no warnings 'ambiguous' ; $a = ${time{2}}; EXPECT @@ -446,57 +336,10 @@ EXPECT # toke.c use warnings 'ambiguous' ; $a = ${time} ; -$a = @{time} ; -$a = $#{time} ; # This one is special cased in toke.c -$a = %{time} ; -$a = *{time} ; -$a = defined &{time} ; # To avoid calling &::time no warnings 'ambiguous' ; $a = ${time} ; -$a = @{time} ; -$a = $#{time} ; # This one is special cased in toke.c -$a = %{time} ; -$a = *{time} ; -$a = defined &{time} ; # To avoid calling &::time EXPECT Ambiguous use of ${time} resolved to $time at - line 3. -Ambiguous use of @{time} resolved to @time at - line 4. -Ambiguous use of @{time} resolved to @time at - line 5. -Ambiguous use of %{time} resolved to %time at - line 6. -Ambiguous use of *{time} resolved to *time at - line 7. -Ambiguous use of &{time} resolved to &time at - line 8. -######## -# toke.c -use warnings 'ambiguous' ; -$a = ${ -time -} ; -$a = @{ -time -} ; -$a = $#{ -time -} ; -$a = %{ -time -} ; -$a = *{ -time -} ; -$a = defined &{ -time - - -} ; -warn "last"; -EXPECT -Ambiguous use of ${time} resolved to $time at - line 4. -Ambiguous use of @{time} resolved to @time at - line 7. -Ambiguous use of @{time} resolved to @time at - line 10. -Ambiguous use of %{time} resolved to %time at - line 13. -Ambiguous use of *{time} resolved to *time at - line 16. -Ambiguous use of &{time} resolved to &time at - line 19. -last at - line 23. ######## # toke.c use warnings 'ambiguous' ; @@ -704,30 +547,6 @@ EXPECT Bareword "FRED::" refers to nonexistent package at bar line 25. ######## # toke.c -use utf8; -use open qw( :utf8 :std ); -use warnings 'bareword' ; -#line 25 "bar" -$a = FRÈD:: ; -no warnings 'bareword' ; -#line 25 "bar" -$a = FRÈD:: ; -EXPECT -Bareword "FRÈD::" refers to nonexistent package at bar line 25. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -use warnings 'bareword' ; -#line 25 "bar" -$a = ϞϞϞ:: ; -no warnings 'bareword' ; -#line 25 "bar" -$a = ϞϞϞ:: ; -EXPECT -Bareword "ϞϞϞ::" refers to nonexistent package at bar line 25. -######## -# toke.c use warnings 'ambiguous' ; sub time {} my $a = time() ; @@ -750,10 +569,8 @@ yelp at foo line 30. ######## # toke.c my $a = rand + 4 ; -$a = rand *^H ; -$a = rand $^H ; EXPECT -Warning: Use of "rand" without parentheses is ambiguous at - line 2. +Warning: Use of "rand" without parens is ambiguous at - line 2. ######## # toke.c $^W = 0 ; @@ -766,28 +583,13 @@ my $a = rand + 4 ; } $a = rand + 4 ; EXPECT -Warning: Use of "rand" without parentheses is ambiguous at - line 3. -Warning: Use of "rand" without parentheses is ambiguous at - line 8. -Warning: Use of "rand" without parentheses is ambiguous at - line 10. -######## -# [perl #97110] -sub myrand(;$) { } -sub whatever($) { } -my $a = myrand + 4 ; -my $b = whatever + 4 ; -EXPECT -Warning: Use of "myrand" without parentheses is ambiguous at - line 4. -######## -# toke.c -use warnings "ambiguous"; -print for keys %+; # should not warn -EXPECT +Warning: Use of "rand" without parens is ambiguous at - line 3. +Warning: Use of "rand" without parens is ambiguous at - line 8. +Warning: Use of "rand" without parens is ambiguous at - line 10. ######## # toke.c sub fred {}; -fred ; -sub hank : lvalue {$_} ---hank; # This should *not* warn [perl #77240] EXPECT Ambiguous use of -fred resolved as -&fred() at - line 3. ######## @@ -808,82 +610,11 @@ Ambiguous use of -fred resolved as -&fred() at - line 9. Ambiguous use of -fred resolved as -&fred() at - line 11. ######## # toke.c -use utf8; -use open qw( :utf8 :std ); -sub frèd {}; --frèd ; -EXPECT -Ambiguous use of -frèd resolved as -&frèd() at - line 5. -######## -# toke.c -$^W = 0 ; -use utf8; -use open qw( :utf8 :std ); -sub frèd {} ; --frèd ; -{ - no warnings 'ambiguous' ; - -frèd ; - use warnings 'ambiguous' ; - -frèd ; -} --frèd ; -EXPECT -Ambiguous use of -frèd resolved as -&frèd() at - line 6. -Ambiguous use of -frèd resolved as -&frèd() at - line 11. -Ambiguous use of -frèd resolved as -&frèd() at - line 13. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -sub ᒍᒘᒊ {}; --ᒍᒘᒊ ; -EXPECT -Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 5. -######## -# toke.c -$^W = 0 ; -use utf8; -use open qw( :utf8 :std ); -sub ᒍᒘᒊ {} ; --ᒍᒘᒊ ; -{ - no warnings 'ambiguous' ; - -ᒍᒘᒊ ; - use warnings 'ambiguous' ; - -ᒍᒘᒊ ; -} --ᒍᒘᒊ ; -EXPECT -Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 6. -Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 11. -Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 13. -######## -# toke.c open FOO || time; -open local *FOO; # should be ok EXPECT Precedence problem: open FOO should be open(FOO) at - line 2. ######## # toke.c -use utf8; -use open qw( :utf8 :std ); -open FÒÒ || time; -EXPECT -Precedence problem: open FÒÒ should be open(FÒÒ) at - line 4. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -open ᒍOO || time; -EXPECT -Precedence problem: open ᒍOO should be open(ᒍOO) at - line 4. -######## -# toke.c (and [perl #16184]) -open FOO => "<&0"; close FOO; -EXPECT -######## -# toke.c $^W = 0 ; open FOO || time; { @@ -893,7 +624,6 @@ open FOO || time; open FOO || time; } open FOO || time; -open Foo::BAR; # this should not warn EXPECT Precedence problem: open FOO should be open(FOO) at - line 3. Precedence problem: open FOO should be open(FOO) at - line 8. @@ -901,40 +631,6 @@ Precedence problem: open FOO should be open(FOO) at - line 10. ######## # toke.c $^W = 0 ; -use utf8; -use open qw( :utf8 :std ); -open FÒÒ || time; -{ - no warnings 'precedence' ; - open FÒÒ || time; - use warnings 'precedence' ; - open FÒÒ || time; -} -open FÒÒ || time; -EXPECT -Precedence problem: open FÒÒ should be open(FÒÒ) at - line 5. -Precedence problem: open FÒÒ should be open(FÒÒ) at - line 10. -Precedence problem: open FÒÒ should be open(FÒÒ) at - line 12. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -$^W = 0 ; -open ᒍÒÒ || time; -{ - no warnings 'precedence' ; - open ᒍÒÒ || time; - use warnings 'precedence' ; - open ᒍÒÒ || time; -} -open ᒍÒÒ || time; -EXPECT -Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 5. -Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 10. -Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 12. -######## -# toke.c -$^W = 0 ; *foo *foo ; { no warnings 'ambiguous' ; @@ -943,11 +639,6 @@ $^W = 0 ; *foo *foo ; } *foo *foo ; -# These should not warn [perl #117535]: -foo**foo ; -no warnings 'deprecated'; -sort $*foo ; -sort $ *foo ; EXPECT Operator or semicolon missing before *foo at - line 3. Ambiguous use of * resolved as operator * at - line 3. @@ -957,79 +648,6 @@ Operator or semicolon missing before *foo at - line 10. Ambiguous use of * resolved as operator * at - line 10. ######## # toke.c -$^W = 0 ; -%foo %foo ; -{ - no warnings 'ambiguous' ; - %foo %foo ; - use warnings 'ambiguous' ; - %foo %foo ; -} -%foo %foo ; -# This should not produce ambiguity warnings [perl #117535]: -sort $%foo ; -sort $ %foo ; -EXPECT -Operator or semicolon missing before %foo at - line 3. -Ambiguous use of % resolved as operator % at - line 3. -Operator or semicolon missing before %foo at - line 8. -Ambiguous use of % resolved as operator % at - line 8. -Operator or semicolon missing before %foo at - line 10. -Ambiguous use of % resolved as operator % at - line 10. -Bareword found where operator expected at - line 12, near "$%foo" - (Missing operator before foo?) -Bareword found where operator expected at - line 13, near "$ %foo" - (Missing operator before foo?) -Illegal modulus zero at - line 3. -######## -# toke.c -$^W = 0 ; -&foo &foo ; -{ - no warnings 'ambiguous' ; - &foo &foo ; - use warnings 'ambiguous' ; - &foo &foo ; -} -&foo &foo ; -# These should not warn produce ambiguity warnings [perl #76910]: -foo&&foo ; -sort $&foo ; -sort $ &foo ; -EXPECT -Operator or semicolon missing before &foo at - line 3. -Ambiguous use of & resolved as operator & at - line 3. -Operator or semicolon missing before &foo at - line 8. -Ambiguous use of & resolved as operator & at - line 8. -Operator or semicolon missing before &foo at - line 10. -Ambiguous use of & resolved as operator & at - line 10. -Bareword found where operator expected at - line 13, near "$&foo" - (Missing operator before foo?) -Bareword found where operator expected at - line 14, near "$ &foo" - (Missing operator before foo?) -Undefined subroutine &main::foo called at - line 3. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -$^W = 0 ; -*foo *foo ; -{ - no warnings 'ambiguous' ; - *foo *foo ; - use warnings 'ambiguous' ; - *foo *foo ; -} -*foo *foo ; -EXPECT -Operator or semicolon missing before *foo at - line 5. -Ambiguous use of * resolved as operator * at - line 5. -Operator or semicolon missing before *foo at - line 10. -Ambiguous use of * resolved as operator * at - line 10. -Operator or semicolon missing before *foo at - line 12. -Ambiguous use of * resolved as operator * at - line 12. -######## -# toke.c use warnings 'misc' ; my $a = "\m" ; no warnings 'misc' ; @@ -1038,25 +656,6 @@ EXPECT Unrecognized escape \m passed through at - line 3. ######## # toke.c -use warnings 'misc' ; -my $a = "abcd\E" ; -no warnings 'misc' ; -$a = "abcd\E" ; -EXPECT -Useless use of \E at - line 3. -######## -# toke.c -use feature 'postderef', 'postderef_qq'; -(\$_)->$*; -"$_->$*"; -no warnings 'experimental::postderef'; -(\$_)->$*; -"$_->$*"; -EXPECT -Postfix dereference is experimental at - line 3. -Postfix dereference is experimental at - line 4. -######## -# toke.c use warnings 'portable' ; my $a = 0b011111111111111111111111111111110 ; $a = 0b011111111111111111111111111111111 ; @@ -1120,38 +719,29 @@ dump() better written as CORE::dump() at - line 4. # toke.c use warnings 'misc'; use subs qw/dump/; -sub dump { print "no warning for overridden dump\n"; } +sub dump { print "no warning for overriden dump\n"; } dump; EXPECT -no warning for overridden dump +no warning for overriden dump ######## # toke.c use warnings 'ambiguous'; "@mjd_previously_unused_array"; no warnings 'ambiguous'; -"@mjd_previously_unused_array2"; +"@mjd_previously_unused_array"; EXPECT Possible unintended interpolation of @mjd_previously_unused_array in string at - line 3. ######## # toke.c -use utf8; -use open qw( :utf8 :std ); -use warnings 'ambiguous'; -"@mjd_previously_unused_àrray"; -no warnings 'ambiguous'; -"@mjd_previously_unused_àrray2"; -EXPECT -Possible unintended interpolation of @mjd_previously_unused_àrray in string at - line 5. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -use warnings 'ambiguous'; -"@mjd_previously_unused_ぁrrぁy"; -no warnings 'ambiguous'; -"@mjd_previously_unused_ぁrrぁy2"; +# The \q should warn, the \_ should NOT warn. +use warnings 'misc'; +"foo" =~ /\q/; +"bar" =~ /\_/; +no warnings 'misc'; +"foo" =~ /\q/; +"bar" =~ /\_/; EXPECT -Possible unintended interpolation of @mjd_previously_unused_ぁrrぁy in string at - line 5. +Unrecognized escape \q passed through at - line 4. ######## # toke.c # 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com @@ -1205,308 +795,4 @@ use warnings 'ambiguous'; $s = "(@-)(@+)"; EXPECT -######## -# toke.c -# mandatory warning -eval q/if ($a) { } elseif ($b) { }/; -no warnings "syntax"; -eval q/if ($a) { } elseif ($b) { }/; -EXPECT -elseif should be elsif at (eval 1) line 1. -######## -# toke.c -# mandatory warning -eval q/5 6/; -no warnings "syntax"; -eval q/5 6/; -EXPECT -Number found where operator expected at (eval 1) line 1, near "5 6" - (Missing operator before 6?) -######## -# toke.c -use warnings "syntax"; no warnings "deprecated"; -$_ = $a = 1; -$a !=~ /1/; -$a !=~ m#1#; -$a !=~/1/; -$a !=~ ?/?; -$a !=~ y/1//; -$a !=~ tr/1//; -$a !=~ s/1//; -$a != ~/1/; -no warnings "syntax"; -$a !=~ /1/; -$a !=~ m#1#; -$a !=~/1/; -$a !=~ ?/?; -$a !=~ y/1//; -$a !=~ tr/1//; -$a !=~ s/1//; -EXPECT -!=~ should be !~ at - line 4. -!=~ should be !~ at - line 5. -!=~ should be !~ at - line 6. -!=~ should be !~ at - line 7. -!=~ should be !~ at - line 8. -!=~ should be !~ at - line 9. -!=~ should be !~ at - line 10. -######## -# toke.c -our $foo :unique; -sub pam :locked; -sub glipp :locked { -} -sub whack_eth ($) : locked { -} -no warnings 'deprecated'; -our $bar :unique; -sub zapeth :locked; -sub ker_plop :locked { -} -sub swa_a_p ($) : locked { -} -EXPECT -Use of :unique is deprecated at - line 2. -Use of :locked is deprecated at - line 3. -Use of :locked is deprecated at - line 4. -Use of :locked is deprecated at - line 6. -######## -# toke.c -use warnings "syntax"; use feature 'lexical_subs'; -sub proto_after_array(@$); -sub proto_after_arref(\@$); -sub proto_after_arref2(\[@$]); -sub proto_after_arref3(\[@$]_); -sub proto_after_hash(%$); -sub proto_after_hashref(\%$); -sub proto_after_hashref2(\[%$]); -sub underscore_last_pos($_); -sub underscore2($_;$); -sub underscore_fail($_$); -sub underscore_after_at(@_); -our sub hour (@$); -my sub migh (@$); -use feature 'state'; -state sub estate (@$); -package other; -sub hour (@$); -sub migh (@$); -sub estate (@$); -no warnings "syntax"; -sub proto_after_array(@$); -sub proto_after_hash(%$); -sub underscore_fail($_$); -EXPECT -Prototype after '@' for main::proto_after_array : @$ at - line 3. -Prototype after '%' for main::proto_after_hash : %$ at - line 7. -Illegal character after '_' in prototype for main::underscore_fail : $_$ at - line 12. -Prototype after '@' for main::underscore_after_at : @_ at - line 13. -The lexical_subs feature is experimental at - line 14. -Prototype after '@' for hour : @$ at - line 14. -The lexical_subs feature is experimental at - line 15. -Prototype after '@' for migh : @$ at - line 15. -The lexical_subs feature is experimental at - line 17. -Prototype after '@' for estate : @$ at - line 17. -Prototype after '@' for hour : @$ at - line 19. -Prototype after '@' for migh : @$ at - line 20. -Prototype after '@' for estate : @$ at - line 21. -######## -# toke.c -use warnings "ambiguous"; -"foo\nn" =~ /^foo$\n/; -"foo\nn" =~ /^foo${\}n/; -my $foo = qr/^foo$\n/; -my $bar = qr/^foo${\}n/; -no warnings "ambiguous"; -"foo\nn" =~ /^foo$\n/; -"foo\nn" =~ /^foo${\}n/; -my $foo = qr/^foo$\n/; -my $bar = qr/^foo${\}n/; -EXPECT -Possible unintended interpolation of $\ in regex at - line 3. -Possible unintended interpolation of $\ in regex at - line 5. -######## -# toke.c -use warnings 'syntax' ; -my $a = "\o"; -my $a = "\o{"; -my $a = "\o{}"; -no warnings 'syntax' ; -my $a = "\o"; -my $a = "\o{"; -my $a = "\o{}"; -EXPECT -Missing braces on \o{} at - line 3, within string -Missing right brace on \o{ at - line 4, within string -Number with no digits at - line 5, within string -BEGIN not safe after errors--compilation aborted at - line 6. -######## -# toke.c -use warnings 'digit' ; -my $a = "\o{1238456}"; -no warnings 'digit' ; -my $a = "\o{1238456}"; -EXPECT -Non-octal character '8'. Resolved as "\o{123}" at - line 3. -######## -# toke.c -use warnings; -my $a = "foo"; -print $a =~ ?f? ? "yes\n" : "no\n" foreach 0..2; -EXPECT -Use of ?PATTERN? without explicit operator is deprecated at - line 4. -yes -no -no -######## -# toke.c -use warnings; -$a = "\c,"; -$a = "\c`"; -no warnings 'syntax'; -$a = "\c,"; -$a = "\c`"; -EXPECT -"\c," is more clearly written simply as "l" at - line 3. -"\c`" is more clearly written simply as "\ " at - line 4. -######## -# toke.c -use warnings; -my $a = "\c{ack}"; -EXPECT -OPTION fatal -Use ";" instead of "\c{" at - line 3. -######## -# toke.c -my $a = "\câ"; -EXPECT -OPTION fatal -Character following "\c" must be printable ASCII at - line 2. -######## -# toke.c -use warnings 'syntax' ; -my $a = qr/foo/du; -$a = qr/foo/lai; -$a = qr/foo/lil; -$a = qr/foo/aia; -$a = qr/foo/aaia; -no warnings 'syntax' ; -my $a = qr/foo/du; -EXPECT -Regexp modifiers "/d" and "/u" are mutually exclusive at - line 3, near "= " -Regexp modifiers "/l" and "/a" are mutually exclusive at - line 4, near "= " -Regexp modifier "/l" may not appear twice at - line 5, near "= " -Regexp modifier "/a" may appear a maximum of twice at - line 7, near "= " -BEGIN not safe after errors--compilation aborted at - line 8. -######## -# toke.c -# [perl #4362] -eval "print q\xabfoo"; -print "ok\n" if - $@ =~ /Can't find string terminator "\xab" anywhere before EOF/; -EXPECT -ok -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -use warnings 'ambiguous' ; -sub frèd {} -$a = ${frèd} ; -no warnings 'ambiguous' ; -$a = ${frèd} ; -EXPECT -Ambiguous use of ${frèd} resolved to $frèd at - line 6. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -use warnings 'ambiguous' ; -sub f렏 {} -$a = ${f렏} ; -no warnings 'ambiguous' ; -$a = ${f렏} ; -EXPECT -Ambiguous use of ${f렏} resolved to $f렏 at - line 6. -######## -# toke.c -use utf8; -use open qw( :utf8 :std ); -use warnings; -CORE::렏; -EXPECT -CORE::렏 is not a keyword at - line 5. -######## -# toke.c -# [perl #16249] -print ''; -eval this_method_is_fake (); -EXPECT -Undefined subroutine &main::this_method_is_fake called at - line 4. -######## -# toke.c -# [perl #107002] Erroneous ambiguity warnings -sub { # do not actually call require - require a::b . 1; # These used to produce erroneous - require a::b + 1; # ambiguity warnings. -} -EXPECT -######## -# toke.c -# [perl #113094], [perl #119101] -print "aa" =~ m{^a\{1,2\}$}, "\n"; -print "aa" =~ m{^a\x\{61\}$}, "\n"; -print "a\\x{6F}" =~ m{^a\\x\{6F\}$}, "\n"; -print "a\\o" =~ m{^a\\\x\{6F\}$}, "\n"; -print "a\\\\x{6F}" =~ m{^a\\\\x\{6F\}$}, "\n"; -print "a\\\\o" =~ m{^a\\\\\x\{6F\}$}, "\n"; -print "aa" =~ m{^a{1,2}$}, "\n"; -print "aq" =~ m[^a\[a-z\]$], "\n"; -print "aq" =~ m(^a\(q\)$), "\n"; -no warnings 'deprecated'; -print "aa" =~ m{^a\{1,2\}$}, "\n"; -print "aa" =~ m{^a\x\{61\}$}, "\n"; -print "a\\x{6F}" =~ m{^a\\x\{6F\}$}, "\n"; -print "a\\o" =~ m{^a\\\x\{6f\}$}, "\n"; -print "aq" =~ m[^a\[a-z\]$], "\n"; -print "aq" =~ m(^a\(q\)$), "\n"; -EXPECT -Useless use of '\'; doesn't escape metacharacter '{' at - line 3. -Useless use of '\'; doesn't escape metacharacter '{' at - line 4. -Useless use of '\'; doesn't escape metacharacter '{' at - line 6. -Useless use of '\'; doesn't escape metacharacter '{' at - line 8. -Useless use of '\'; doesn't escape metacharacter '[' at - line 10. -Useless use of '\'; doesn't escape metacharacter '(' at - line 11. -1 -1 -1 -1 -1 -1 -1 -1 -q -1 -1 -1 -1 -1 -q -######## -# toke.c -#[perl #119123] disallow literal control character variables -eval "\$\cQ = 25"; -eval "\${ \cX } = 24"; -*{ - Foo -}; # shouldn't warn on {\n, even though \n is a control character -EXPECT -Use of literal control characters in variable names is deprecated at (eval 1) line 1. -Use of literal control characters in variable names is deprecated at (eval 2) line 1. -######## -# toke.c -# [perl #120288] -X at start of line gave spurious warning, where X is not -# a filetest operator --a; -;-a; -EXPECT + |