From: TOYOFUKU Chikanobu Date: 2001-08-12T03:49:11+09:00 Subject: [ruby-dev:14431] Re: fork() on MacOS This is a multi-part message in MIME format. ------=_NextPart_000_0060_01C122E0.8DF755A0 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit 豊福です。 なかださん > main()形式だと引数はライブラリで分割するということになってま > すが、ここでの空白文字やメタ文字の取り扱いは決まってるんでしょ > うか。また、spawnの方も対応する形になってるんでしょうか。 > # ひょっとしてsystem()しかないとか? 細かいことはよくわかりません。UNIXエミュレーション環境で しか知らないのですが引数は UNIX のシェルっぽく評価されている ようです。spawnl/spawnv もないようです。 Perl の超漢字用のパッチを見たら + #ifdef BTRON + #define PerlProc_execl(c,w,x,y,z) \ + btron_forkexecl((c), (w), (x), (y), (z)) + #define PerlProc_execv(c, a) btron_forkexecv((c), (a)) + #define PerlProc_execvp(c, a) btron_forkexecvp((c), (a)) + #else というのがありました。 このパッチ全体も添付します。 --- 豊福 toyofuku@juice.or.jp ------=_NextPart_000_0060_01C122E0.8DF755A0 Content-Type: application/octet-stream; name="perl5.005_03.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="perl5.005_03.diff" diff -rcp2N perl5.005_03.org/Makefile.SH perl5.005_03/Makefile.SH=0A= *** perl5.005_03.org/Makefile.SH Mon Apr 23 21:32:07 2001=0A= --- perl5.005_03/Makefile.SH Mon Apr 16 13:48:55 2001=0A= *************** h =3D $(h1) $(h2) $(h3) $(h4) $(h5)=0A= *** 220,224 ****=0A= =0A= c1 =3D $(mallocsrc) av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c = byterun.c=0A= ! c2 =3D perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c = regexec.c=0A= c3 =3D gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c = globals.c perlio.c=0A= =0A= --- 220,224 ----=0A= =0A= c1 =3D $(mallocsrc) av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c = byterun.c=0A= ! c2 =3D brightv.c perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c = regcomp.c regexec.c=0A= c3 =3D gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c = globals.c perlio.c=0A= =0A= *************** c =3D $(c1) $(c2) $(c3) miniperlmain.c per=0A= *** 226,230 ****=0A= =0A= obj1 =3D $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) = op$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) = mg$(OBJ_EXT) byterun$(OBJ_EXT)=0A= ! obj2 =3D hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) = sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) = pp_sys$(OBJ_EXT)=0A= obj3 =3D doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) = taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) = perlio$(OBJ_EXT) kanji$(OBJ_EXT)=0A= =0A= --- 226,230 ----=0A= =0A= obj1 =3D $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) = op$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) = mg$(OBJ_EXT) byterun$(OBJ_EXT)=0A= ! obj2 =3D brightv$(OBJ_EXT) hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) = pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) = pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)=0A= obj3 =3D doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) = taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) = perlio$(OBJ_EXT) kanji$(OBJ_EXT)=0A= =0A= *************** $(LIBPERL): $& perl$(OBJ_EXT) $(obj)=0A= *** 337,341 ****=0A= =0A= miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)=0A= ! $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl = miniperlmain$(OBJ_EXT) $(LLIBPERL) $(libs)=0A= $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest=0A= =0A= --- 337,341 ----=0A= =0A= miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)=0A= ! cp ../perl5.005_03_solaris/miniperl .=0A= $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest=0A= =0A= diff -rcp2N perl5.005_03.org/Policy.sh perl5.005_03/Policy.sh=0A= *** perl5.005_03.org/Policy.sh Thu Jan 1 09:00:00 1970=0A= --- perl5.005_03/Policy.sh Mon Apr 16 13:29:08 2001=0A= ***************=0A= *** 0 ****=0A= --- 1,79 ----=0A= + #!/bin/sh=0A= + #=0A= + # This file was produced by running the Policy_sh.SH script, which=0A= + # gets its values from config.sh, which is generally produced by=0A= + # running Configure. The Policy.sh file gets overwritten each time=0A= + # Configure is run. Any variables you add to Policy.sh will be lost=0A= + # unless you copy Policy.sh somewhere else before running Configure.=0A= + #=0A= + # The idea here is to distill in one place the common site-wide=0A= + # "policy" answers (such as installation directories) that are=0A= + # to be "sticky". If you keep the file Policy.sh around in=0A= + # the same directory as you are building Perl, then Configure will=0A= + # (by default) load up the Policy.sh file just before the=0A= + # platform-specific hints file.=0A= + #=0A= + =0A= + # Allow Configure command-line overrides; usually these won't be=0A= + # needed, but something like -Dprefix=3D/test/location can be quite=0A= + # useful for testing out new versions.=0A= + =0A= + #Site-specific values:=0A= + =0A= + case "$perladmin" in=0A= + '') perladmin=3D'tanaka@u33.personal-media.co.jp' ;;=0A= + esac=0A= + =0A= + # Installation prefix. Allow a Configure -D override. You=0A= + # may wish to reinstall perl under a different prefix, perhaps=0A= + # in order to test a different configuration.=0A= + case "$prefix" in=0A= + '') prefix=3D'/usr/local' ;;=0A= + esac=0A= + =0A= + # Installation directives. Note that each one comes in three flavors.=0A= + # For example, we have privlib, privlibexp, and installprivlib.=0A= + # privlib is for private (to perl) library files.=0A= + # privlibexp is the same, except any '~' the user gave to Configure=0A= + # is expanded to the user's home directory. This is figured=0A= + # out automatically by Configure, so you don't have to include it = here.=0A= + # installprivlib is for systems (such as those running AFS) that=0A= + # need to distinguish between the place where things=0A= + # get installed and where they finally will reside.=0A= + # =0A= + # In each case, if your previous value was the default, leave it = commented=0A= + # out. That way, if you override prefix, all of these will be=0A= + # automatically adjusted.=0A= + #=0A= + # WARNING: Be especially careful about architecture-dependent and=0A= + # version-dependent names, particularly if you reuse this file for=0A= + # different versions of perl.=0A= + =0A= + # bin=3D'/usr/local/bin'=0A= + # scriptdir=3D'/usr/local/bin'=0A= + # privlib=3D'/usr/local/lib/perl5/5.00503'=0A= + # archlib=3D'/usr/local/lib/perl5/5.00503/sun4-solaris'=0A= + # man1dir=3D'/usr/local/man/man1'=0A= + # man3dir=3D'/usr/local/lib/perl5/5.00503/man/man3'=0A= + # sitelib=3D'/usr/local/lib/perl5/site_perl/5.005'=0A= + # sitearch=3D'/usr/local/lib/perl5/site_perl/5.005/sun4-solaris'=0A= + # installbin=3D'/usr/local/bin'=0A= + # installscript=3D'/usr/local/bin'=0A= + # installprivlib=3D'/usr/local/lib/perl5/5.00503'=0A= + # installarchlib=3D'/usr/local/lib/perl5/5.00503/sun4-solaris'=0A= + # installman1dir=3D'/usr/local/man/man1'=0A= + # installman3dir=3D'/usr/local/lib/perl5/5.00503/man/man3'=0A= + # installsitelib=3D'/usr/local/lib/perl5/site_perl/5.005'=0A= + # installsitearch=3D'/usr/local/lib/perl5/site_perl/5.005/sun4-solaris'=0A= + # man1ext=3D'1'=0A= + # man3ext=3D'3'=0A= + =0A= + # Lastly, you may add additional items here. For example, to set the=0A= + # pager to your local favorite value, uncomment the following line in=0A= + # the original Policy_sh.SH file and re-run sh Policy_sh.SH.=0A= + #=0A= + # pager=3D'/u0/bin/less'=0A= + #=0A= + # A full Glossary of all the config.sh variables is in the file=0A= + # Porting/Glossary.=0A= + =0A= diff -rcp2N perl5.005_03.org/brightv.c perl5.005_03/brightv.c=0A= *** perl5.005_03.org/brightv.c Thu Jan 1 09:00:00 1970=0A= --- perl5.005_03/brightv.c Tue Apr 17 12:26:26 2001=0A= ***************=0A= *** 0 ****=0A= --- 1,175 ----=0A= + #include "EXTERN.h"=0A= + #include "perl.h"=0A= + =0A= + #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)=0A= + #ifndef HAS_SEM=0A= + #include =0A= + #endif=0A= + #ifdef HAS_MSG=0A= + #include =0A= + #endif=0A= + #ifdef HAS_SHM=0A= + #include =0A= + # ifndef HAS_SHMAT_PROTOTYPE=0A= + extern Shmat_t shmat _((int, char *, int));=0A= + # endif=0A= + #endif=0A= + #endif=0A= + =0A= + #ifdef I_UTIME=0A= + # if defined(_MSC_VER) || defined(__MINGW32__)=0A= + # include =0A= + # else=0A= + # include =0A= + # endif=0A= + #endif=0A= + =0A= + #ifdef I_FCNTL=0A= + #include =0A= + #endif=0A= + #ifdef I_SYS_FILE=0A= + #include =0A= + #endif=0A= + #ifdef O_EXCL=0A= + # define OPEN_EXCL O_EXCL=0A= + #else=0A= + # define OPEN_EXCL 0=0A= + #endif=0A= + =0A= + #if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX)=0A= + #include =0A= + #endif=0A= + =0A= + /* XXX If this causes problems, set i_unistd=3Dundef in the hint file. = */=0A= + #ifdef I_UNISTD=0A= + # include =0A= + #endif=0A= + =0A= + #if defined(HAS_SOCKET) && !defined(VMS) /* VMS handles sockets via = vmsish.h */=0A= + # include =0A= + # include =0A= + # ifndef ENOTSOCK=0A= + # ifdef I_NET_ERRNO=0A= + # include =0A= + # endif=0A= + # endif=0A= + #endif=0A= + =0A= + /* Put this after #includes because defines _XOPEN_*. */=0A= + #ifndef Sock_size_t=0A= + # if _XOPEN_VERSION >=3D 5 || defined(_XOPEN_SOURCE_EXTENDED) || = defined(__GLIBC__)=0A= + # define Sock_size_t Size_t=0A= + # else=0A= + # define Sock_size_t int=0A= + # endif=0A= + #endif=0A= + =0A= + int=0A= + do_aexec_bv(SV *really, register SV **mark, register SV **sp)=0A= + {=0A= + register char **a;=0A= + char *tmps;=0A= + STRLEN n_a;=0A= + int pid;=0A= + =0A= + if (sp > mark) {=0A= + dTHR;=0A= + New(401,PL_Argv, sp - mark + 1, char*);=0A= + a =3D PL_Argv;=0A= + while (++mark <=3D sp) {=0A= + if (*mark)=0A= + *a++ =3D SvPVx(*mark, n_a);=0A= + else=0A= + *a++ =3D "";=0A= + }=0A= + *a =3D Nullch;=0A= + if (*PL_Argv[0] !=3D '/') /* will execvp use PATH? */=0A= + TAINT_ENV(); /* testing IFS here is overkill, probably */=0A= + if (really && *(tmps =3D SvPV(really, n_a)))=0A= + pid =3D PerlProc_execvp(tmps,PL_Argv);=0A= + else=0A= + pid =3D PerlProc_execvp(PL_Argv[0],PL_Argv);=0A= + =0A= + if ( pid =3D=3D -1){=0A= + do_execfree_bv();=0A= + warn("Can't exec \"%s\": %s", PL_Argv[0], Strerror(errno));=0A= + }=0A= + }=0A= + return pid;=0A= + }=0A= + =0A= + int=0A= + do_exec_bv(char *cmd)=0A= + {=0A= + register char **a;=0A= + register char *s;=0A= + char flags[10];=0A= + int pid;=0A= + =0A= + while (*cmd && isSPACE(*cmd))=0A= + cmd++;=0A= + =0A= + /* save an extra exec if possible */=0A= + =0A= + /* see if there are shell metacharacters in it */=0A= + =0A= + if (*cmd =3D=3D '.' && isSPACE(cmd[1]))=0A= + goto doshell;=0A= + =0A= + if (strnEQ(cmd,"exec",4) && isSPACE(cmd[4]))=0A= + goto doshell;=0A= + =0A= + for (s =3D cmd; *s && isALPHA(*s); s++) ; /* catch VAR=3Dval gizmo = */=0A= + if (*s =3D=3D '=3D')=0A= + goto doshell;=0A= + =0A= + for (s =3D cmd; *s; s++) {=0A= + if (*s !=3D ' ' && !isALPHA(*s) && = strchr("$&*(){}[]'\";\\|?<>~`\n",*s)) {=0A= + if (*s =3D=3D '\n' && !s[1]) {=0A= + *s =3D '\0';=0A= + break;=0A= + }=0A= + doshell:=0A= + pid =3D PerlProc_execl(PL_sh_path, "sh", "-c", cmd, (char*)0);=0A= + return pid;=0A= + }=0A= + }=0A= + =0A= + New(402,PL_Argv, (s - cmd) / 2 + 2, char*);=0A= + PL_Cmd =3D savepvn(cmd, s-cmd);=0A= + a =3D PL_Argv;=0A= + for (s =3D PL_Cmd; *s;) {=0A= + while (*s && isSPACE(*s)) s++;=0A= + if (*s)=0A= + *(a++) =3D s;=0A= + while (*s && !isSPACE(*s)) s++;=0A= + if (*s)=0A= + *s++ =3D '\0';=0A= + }=0A= + *a =3D Nullch;=0A= + if (PL_Argv[0]) {=0A= + pid =3D PerlProc_execvp(PL_Argv[0],PL_Argv);=0A= + if (errno =3D=3D ENOEXEC) { /* for system V NIH syndrome */=0A= + do_execfree_bv();=0A= + goto doshell;=0A= + }=0A= + if ( pid =3D=3D -1){=0A= + do_execfree_bv();=0A= + warn("Can't exec \"%s\": %s", PL_Argv[0], Strerror(errno));=0A= + }=0A= + }=0A= + return pid;=0A= + }=0A= + =0A= + int=0A= + do_execfree_bv(void)=0A= + {=0A= + if (PL_Argv) {=0A= + Safefree(PL_Argv);=0A= + PL_Argv =3D Null(char **);=0A= + }=0A= + if (PL_Cmd) {=0A= + Safefree(PL_Cmd);=0A= + PL_Cmd =3D Nullch;=0A= + }=0A= + }=0A= diff -rcp2N perl5.005_03.org/config.sh perl5.005_03/config.sh=0A= *** perl5.005_03.org/config.sh Thu Jan 1 09:00:00 1970=0A= --- perl5.005_03/config.sh Mon Apr 16 14:01:10 2001=0A= ***************=0A= *** 0 ****=0A= --- 1,597 ----=0A= + #!/bin/sh=0A= + #=0A= + # This file was produced by running the Configure script. It holds all = the=0A= + # definitions figured out by Configure. Should you modify one of these = values,=0A= + # do not forget to propagate your changes by running "Configure -der". = You may=0A= + # instead choose to run each of the .SH files by yourself, or = "Configure -S".=0A= + #=0A= + =0A= + # Package name : perl5=0A= + # Source directory : .=0A= + # Configuration time: Fri Apr 13 19:38:11 JST 2001=0A= + # Configured by : tanaka=0A= + # Target system : freebsd pc104.personal-media.co.jp 4.1-release = freebsd 4.1-release #0: thu jul 27 14:57:29 gmt 2000 = root@dinosaur.jp.freebsd.org:usrsrcsyscompilegeneric i386 =0A= + =0A= + Author=3D''=0A= + Date=3D'$Date'=0A= + Header=3D''=0A= + Id=3D'$Id'=0A= + Locker=3D''=0A= + Log=3D'$Log'=0A= + Mcc=3D'Mcc'=0A= + RCSfile=3D'$RCSfile'=0A= + Revision=3D'$Revision'=0A= + Source=3D''=0A= + State=3D''=0A= + _a=3D'.a'=0A= + _exe=3D''=0A= + _o=3D'.o'=0A= + afs=3D'false'=0A= + alignbytes=3D'4'=0A= + ansi2knr=3D''=0A= + aphostname=3D''=0A= + apiversion=3D'5.005'=0A= + ar=3D'/usr4/3bv/tool/gnu2/i386-unknown-gnu/bin/ar'=0A= + archlib=3D'/usr/local/lib/perl5/5.00503/i386-unknown'=0A= + archlibexp=3D'/usr/local/lib/perl5/5.00503/i386-unknown'=0A= + archname=3D'i386-unknown'=0A= + archobjs=3D''=0A= + awk=3D'awk'=0A= + baserev=3D'5.0'=0A= + bash=3D''=0A= + bin=3D'/usr/local/bin'=0A= + binexp=3D'/usr/local/bin'=0A= + bison=3D''=0A= + byacc=3D'byacc'=0A= + byteorder=3D'1234'=0A= + c=3D''=0A= + castflags=3D'0'=0A= + cat=3D'cat'=0A= + cc=3D'/usr4/3bv/tool/gnu2/i386-unknown-gnu/bin/gcc386'=0A= + cccdlflags=3D'-DPIC -fpic'=0A= + ccdlflags=3D''=0A= + ccflags=3D'-O0 -pipe -I/usr4/3bv/include/unix -I/usr4/3bv/include = -DPCAT -DBTRON -D__FreeBSD__'=0A= + ccsymbols=3D'BTRON=3D1 PCAT=3D1 __ELF__=3D1 __FreeBSD__=3D4 = __FreeBSD_cc_version=3D410000 __GNUC_MINOR__=3D95 __GNUC__=3D2 = cpu=3Di386 machine=3Di386 system=3DFreeBSD system=3Dunix'=0A= + cf_by=3D'tanaka'=0A= + cf_email=3D'tanaka@personal-media.co.jp'=0A= + cf_time=3D'Fri Apr 13 19:38:11 JST 2001'=0A= + chgrp=3D''=0A= + chmod=3D''=0A= + chown=3D''=0A= + clocktype=3D'clock_t'=0A= + comm=3D'comm'=0A= + compress=3D''=0A= + contains=3D'grep'=0A= + cp=3D'cp'=0A= + cpio=3D''=0A= + cpp=3D'cpp'=0A= + cpp_stuff=3D'42'=0A= + cppflags=3D'-I/usr4/3bv/include/unix -I/usr4/3bv/include -DPCAT = -DBTRON -D__FreeBSD__'=0A= + cpplast=3D'-'=0A= + cppminus=3D'-'=0A= + cpprun=3D'/usr4/3bv/tool/gnu2/i386-unknown-gnu/bin/gcc386 -E'=0A= + cppstdin=3D'/usr4/3bv/tool/gnu2/i386-unknown-gnu/bin/gcc386 -E'=0A= + cppsymbols=3D'BTRON=3D1 PCAT=3D1 __FreeBSD__=3D1 __STDC__=3D1'=0A= + cppccsymbols=3D'__i386=3D1 __i386__=3D1 __unix=3D1 __unix__=3D1 = i386=3D1 unix=3D1'=0A= + cryptlib=3D''=0A= + csh=3D'csh'=0A= + d_Gconvert=3D'sprintf((b),"%.*g",(n),(x))'=0A= + d_access=3D'define'=0A= + d_alarm=3D'define'=0A= + d_archlib=3D'define'=0A= + d_attribut=3D'define'=0A= + d_bcmp=3D'define'=0A= + d_bcopy=3D'define'=0A= + d_bsd=3D'define'=0A= + d_bsdgetpgrp=3D'undef'=0A= + d_bsdsetpgrp=3D'undef'=0A= + d_bzero=3D'define'=0A= + d_casti32=3D'undef'=0A= + d_castneg=3D'define'=0A= + d_charvspr=3D'undef'=0A= + d_chown=3D'define'=0A= + d_chroot=3D'define'=0A= + d_chsize=3D'undef'=0A= + d_closedir=3D'define'=0A= + d_const=3D'define'=0A= + d_crypt=3D'undef'=0A= + d_csh=3D'define'=0A= + d_cuserid=3D'undef'=0A= + d_dbl_dig=3D'define'=0A= + d_difftime=3D'define'=0A= + d_dirnamlen=3D'define'=0A= + d_dlerror=3D'define'=0A= + d_dlopen=3D'define'=0A= + d_dlsymun=3D'undef'=0A= + d_dosuid=3D'undef'=0A= + d_dup2=3D'define'=0A= + d_endgrent=3D'define'=0A= + d_endhent=3D'define'=0A= + d_endnent=3D'define'=0A= + d_endpent=3D'define'=0A= + d_endpwent=3D'define'=0A= + d_endsent=3D'define'=0A= + d_eofnblk=3D'define'=0A= + d_eunice=3D'undef'=0A= + d_fchmod=3D'define'=0A= + d_fchown=3D'define'=0A= + d_fcntl=3D'define'=0A= + d_fd_macros=3D'define'=0A= + d_fd_set=3D'define'=0A= + d_fds_bits=3D'define'=0A= + d_fgetpos=3D'define'=0A= + d_flexfnam=3D'define'=0A= + d_flock=3D'undef'=0A= + d_fork=3D'undef'=0A= + d_fpathconf=3D'undef'=0A= + d_fsetpos=3D'define'=0A= + d_fstatfs=3D'define'=0A= + d_statfsflags=3D'define'=0A= + d_fstatvfs=3D'undef'=0A= + d_getmntent=3D'undef'=0A= + d_hasmntopt=3D'undef'=0A= + d_ftime=3D'undef'=0A= + d_getgrent=3D'define'=0A= + d_getgrps=3D'define'=0A= + d_gethbyaddr=3D'undef'=0A= + d_gethbyname=3D'undef'=0A= + d_gethent=3D'undef'=0A= + d_gethname=3D'undef'=0A= + d_gethostprotos=3D'define'=0A= + d_getlogin=3D'define'=0A= + d_getnbyaddr=3D'undef'=0A= + d_getnbyname=3D'undef'=0A= + d_getnent=3D'undef'=0A= + d_getnetprotos=3D'undef'=0A= + d_getpbyname=3D'undef'=0A= + d_getpbynumber=3D'undef'=0A= + d_getpent=3D'undef'=0A= + d_getpgid=3D'undef'=0A= + d_getpgrp2=3D'undef'=0A= + d_getpgrp=3D'undef'=0A= + d_getppid=3D'undef'=0A= + d_getprior=3D'undef'=0A= + d_getprotoprotos=3D'define'=0A= + d_getpwent=3D'define'=0A= + d_getsbyname=3D'undef'=0A= + d_getsbyport=3D'undef'=0A= + d_getsent=3D'undef'=0A= + d_getservprotos=3D'define'=0A= + d_gettimeod=3D'define'=0A= + d_gnulibc=3D'undef'=0A= + d_grpasswd=3D'define'=0A= + d_htonl=3D'undef'=0A= + d_index=3D'undef'=0A= + d_inetaton=3D'define'=0A= + d_isascii=3D'define'=0A= + d_killpg=3D'define'=0A= + d_lchown=3D'define'=0A= + d_link=3D'define'=0A= + d_locconv=3D'define'=0A= + d_lockf=3D'define'=0A= + d_longdbl=3D'define'=0A= + d_longlong=3D'define'=0A= + d_lstat=3D'define'=0A= + d_mblen=3D'define'=0A= + d_mbstowcs=3D'define'=0A= + d_mbtowc=3D'define'=0A= + d_memcmp=3D'define'=0A= + d_memcpy=3D'define'=0A= + d_memmove=3D'define'=0A= + d_memset=3D'define'=0A= + d_mkdir=3D'define'=0A= + d_mkfifo=3D'define'=0A= + d_mktime=3D'define'=0A= + d_msg=3D'undef'=0A= + d_msgctl=3D'undef'=0A= + d_msgget=3D'undef'=0A= + d_msgrcv=3D'undef'=0A= + d_msgsnd=3D'undef'=0A= + d_mymalloc=3D'undef'=0A= + d_nice=3D'define'=0A= + d_oldpthreads=3D'undef'=0A= + d_oldsock=3D'undef'=0A= + d_open3=3D'define'=0A= + d_pathconf=3D'define'=0A= + d_pause=3D'define'=0A= + d_phostname=3D'undef'=0A= + d_pipe=3D'define'=0A= + d_poll=3D'define'=0A= + d_portable=3D'define'=0A= + d_pthread_yield=3D'undef'=0A= + d_pthreads_created_joinable=3D'undef'=0A= + d_pwage=3D'undef'=0A= + d_pwchange=3D'define'=0A= + d_pwclass=3D'define'=0A= + d_pwcomment=3D'undef'=0A= + d_pwexpire=3D'define'=0A= + d_pwgecos=3D'define'=0A= + d_pwquota=3D'undef'=0A= + d_pwpasswd=3D'define'=0A= + d_readdir=3D'define'=0A= + d_readlink=3D'define'=0A= + d_rename=3D'define'=0A= + d_rewinddir=3D'define'=0A= + d_rmdir=3D'define'=0A= + d_safebcpy=3D'define'=0A= + d_safemcpy=3D'define'=0A= + d_sanemcmp=3D'define'=0A= + d_sched_yield=3D'define'=0A= + d_seekdir=3D'define'=0A= + d_select=3D'define'=0A= + d_sem=3D'undef'=0A= + d_semctl=3D'undef'=0A= + d_semctl_semid_ds=3D'undef'=0A= + d_semctl_semun=3D'undef'=0A= + d_semget=3D'undef'=0A= + d_semop=3D'undef'=0A= + d_setegid=3D'undef'=0A= + d_seteuid=3D'undef'=0A= + d_setgrent=3D'define'=0A= + d_setgrps=3D'undef'=0A= + d_sethent=3D'define'=0A= + d_setlinebuf=3D'define'=0A= + d_setlocale=3D'define'=0A= + d_setnent=3D'define'=0A= + d_setpent=3D'define'=0A= + d_setpgid=3D'undef'=0A= + d_setpgrp2=3D'undef'=0A= + d_setpgrp=3D'undef'=0A= + d_setprior=3D'undef'=0A= + d_setpwent=3D'define'=0A= + d_setregid=3D'undef'=0A= + d_setresgid=3D'undef'=0A= + d_setresuid=3D'undef'=0A= + d_setreuid=3D'undef'=0A= + d_setrgid=3D'undef'=0A= + d_setruid=3D'undef'=0A= + d_setsent=3D'define'=0A= + d_setsid=3D'undef'=0A= + d_setvbuf=3D'define'=0A= + d_sfio=3D'undef'=0A= + d_shm=3D'undef'=0A= + d_shmat=3D'undef'=0A= + d_shmatprototype=3D'undef'=0A= + d_shmctl=3D'undef'=0A= + d_shmdt=3D'undef'=0A= + d_shmget=3D'undef'=0A= + d_sigaction=3D'define'=0A= + d_sigsetjmp=3D'undef'=0A= + d_socket=3D'undef'=0A= + d_sockpair=3D'undef'=0A= + d_statblks=3D'define'=0A= + d_stdio_cnt_lval=3D'undef'=0A= + d_stdio_ptr_lval=3D'undef'=0A= + d_stdiobase=3D'undef'=0A= + d_stdstdio=3D'undef'=0A= + d_strchr=3D'define'=0A= + d_strcoll=3D'define'=0A= + d_strctcpy=3D'define'=0A= + d_strerrm=3D'strerror(e)'=0A= + d_strerror=3D'define'=0A= + d_strtod=3D'define'=0A= + d_strtol=3D'define'=0A= + d_strtoul=3D'define'=0A= + d_strxfrm=3D'define'=0A= + d_suidsafe=3D'undef'=0A= + d_symlink=3D'define'=0A= + d_syscall=3D'undef'=0A= + d_sysconf=3D'define'=0A= + d_sysernlst=3D''=0A= + d_syserrlst=3D'define'=0A= + d_system=3D'define'=0A= + d_tcgetpgrp=3D'undef'=0A= + d_tcsetpgrp=3D'undef'=0A= + d_telldir=3D'define'=0A= + d_time=3D'define'=0A= + d_times=3D'define'=0A= + d_truncate=3D'define'=0A= + d_tzname=3D'define'=0A= + d_umask=3D'define'=0A= + d_uname=3D'define'=0A= + d_union_semun=3D'define'=0A= + d_vfork=3D'undef'=0A= + d_void_closedir=3D'undef'=0A= + d_voidsig=3D'define'=0A= + d_voidtty=3D''=0A= + d_volatile=3D'define'=0A= + d_vprintf=3D'define'=0A= + d_wait4=3D'define'=0A= + d_waitpid=3D'define'=0A= + d_wcstombs=3D'define'=0A= + d_wctomb=3D'define'=0A= + d_xenix=3D'undef'=0A= + date=3D'date'=0A= + db_hashtype=3D'u_int32_t'=0A= + db_prefixtype=3D'size_t'=0A= + defvoidused=3D'15'=0A= + direntrytype=3D'struct dirent'=0A= + dlext=3D'none'=0A= + dlsrc=3D'dl_none.xs'=0A= + doublesize=3D'8'=0A= + dynamic_ext=3D'B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File = Opcode POSIX SDBM_File Socket attrs re'=0A= + eagain=3D'EAGAIN'=0A= + ebcdic=3D'undef'=0A= + echo=3D'echo'=0A= + egrep=3D'egrep'=0A= + emacs=3D''=0A= + eunicefix=3D':'=0A= + exe_ext=3D''=0A= + expr=3D'expr'=0A= + extensions=3D'B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File Opcode = POSIX SDBM_File Socket attrs re Errno'=0A= + find=3D'find'=0A= + firstmakefile=3D'makefile'=0A= + flex=3D''=0A= + fpostype=3D'fpos_t'=0A= + freetype=3D'void'=0A= + full_ar=3D'/usr4/3bv/tool/gnu2/i386-unknown-gnu/bin/ar'=0A= + full_csh=3D'/bin/csh'=0A= + full_sed=3D'/usr/bin/sed'=0A= + gccversion=3D'2.95.2 19991024 (release)'=0A= + gidtype=3D'gid_t'=0A= + glibpth=3D'/usr/shlib /shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib = /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib = /usr/ucblib /usr/local/lib '=0A= + grep=3D'grep'=0A= + groupcat=3D'cat /etc/group'=0A= + groupstype=3D'gid_t'=0A= + gzip=3D'gzip'=0A= + h_fcntl=3D'false'=0A= + h_sysfile=3D'true'=0A= + hint=3D'recommended'=0A= + hostcat=3D'cat /etc/hosts'=0A= + huge=3D''=0A= + i_arpainet=3D'define'=0A= + i_bsdioctl=3D''=0A= + i_db=3D'define'=0A= + i_dbm=3D'undef'=0A= + i_dirent=3D'define'=0A= + i_dld=3D'undef'=0A= + i_dlfcn=3D'define'=0A= + i_fcntl=3D'undef'=0A= + i_float=3D'define'=0A= + i_gdbm=3D'undef'=0A= + i_grp=3D'define'=0A= + i_limits=3D'define'=0A= + i_locale=3D'define'=0A= + i_malloc=3D'define'=0A= + i_machcthreads=3D'undef'=0A= + i_math=3D'define'=0A= + i_memory=3D'undef'=0A= + i_mntent=3D'undef'=0A= + i_ndbm=3D'define'=0A= + i_netdb=3D'define'=0A= + i_neterrno=3D'undef'=0A= + i_niin=3D'define'=0A= + i_pwd=3D'define'=0A= + i_pthread=3D'define'=0A= + i_rpcsvcdbm=3D'undef'=0A= + i_sfio=3D'undef'=0A= + i_sgtty=3D'undef'=0A= + i_stdarg=3D'define'=0A= + i_stddef=3D'define'=0A= + i_stdlib=3D'define'=0A= + i_string=3D'define'=0A= + i_sysdir=3D'define'=0A= + i_sysfile=3D'define'=0A= + i_sysfilio=3D'define'=0A= + i_sysin=3D'undef'=0A= + i_sysioctl=3D'define'=0A= + i_sysmount=3D'define'=0A= + i_sysndir=3D'undef'=0A= + i_sysparam=3D'define'=0A= + i_sysresrc=3D'define'=0A= + i_sysselct=3D'define'=0A= + i_syssockio=3D''=0A= + i_sysstat=3D'define'=0A= + i_sysstatvfs=3D'undef'=0A= + i_systime=3D'define'=0A= + i_systimek=3D'undef'=0A= + i_systimes=3D'define'=0A= + i_systypes=3D'define'=0A= + i_sysun=3D'define'=0A= + i_syswait=3D'define'=0A= + i_termio=3D'undef'=0A= + i_termios=3D'define'=0A= + i_time=3D'undef'=0A= + i_unistd=3D'define'=0A= + i_utime=3D'define'=0A= + i_values=3D'define'=0A= + i_varargs=3D'undef'=0A= + i_varhdr=3D'stdarg.h'=0A= + i_vfork=3D'undef'=0A= + ignore_versioned_solibs=3D''=0A= + incpath=3D''=0A= + inews=3D''=0A= + installarchlib=3D'/usr/local/lib/perl5/5.00503/i386-unknown'=0A= + installbin=3D'/usr/local/bin'=0A= + installman1dir=3D'/usr/local/man/man1'=0A= + installman3dir=3D'/usr/local/lib/perl5/5.00503/man/man3'=0A= + installprivlib=3D'/usr/local/lib/perl5/5.00503'=0A= + installscript=3D'/usr/local/bin'=0A= + installsitearch=3D'/usr/local/lib/perl5/site_perl/5.005/i386-unknown'=0A= + installsitelib=3D'/usr/local/lib/perl5/site_perl/5.005'=0A= + installusrbinperl=3D'define'=0A= + intsize=3D'4'=0A= + known_extensions=3D'B DB_File Data/Dumper Fcntl GDBM_File IO IPC/SysV = NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'=0A= + ksh=3D''=0A= + large=3D''=0A= + ld=3D'/usr4/3bv/tool/gnu2/i386-unknown-gnu/bin/ld'=0A= + lddlflags=3D''=0A= + ldflags=3D'-T /usr4/3bv/lib/i386e2/demand.lnk = -L/usr4/3bv/unix/lib/i386e2 -L/usr4/3bv/lib/i386e2'=0A= + less=3D'less'=0A= + lib_ext=3D'.a'=0A= + libc=3D''=0A= + libperl=3D'libperl.a'=0A= + libpth=3D'/usr4/3bv/unix/lib/i386e2 /usr4/3bv/lib/i386e2'=0A= + libs=3D'-umain -lc -lapp -lgcc -lumain -ldbg -llang -lc -lg -lsys -lg = -lf -lsvc.sub -lsvc -lgcc'=0A= + #libswanted=3D'sfio socket inet nsl nm ndbm gdbm dbm db dl dld ld sun = m c cposix posix ndir dir crypt ucb bsd BSD PW x'=0A= + libswanted=3D''=0A= + line=3D'line'=0A= + lint=3D''=0A= + lkflags=3D''=0A= + ln=3D'ln'=0A= + lns=3D'/bin/ln -s'=0A= + locincpth=3D'/usr4/3bv/include/unix /usr4/3bv/include'=0A= + loclibpth=3D'/usr4/3bv/unix/lib/i386e2 /usr4/3bv/lib/i386e2'=0A= + longdblsize=3D'12'=0A= + longlongsize=3D'8'=0A= + longsize=3D'4'=0A= + lp=3D''=0A= + lpr=3D''=0A= + ls=3D'ls'=0A= + lseektype=3D'off_t'=0A= + mail=3D''=0A= + mailx=3D''=0A= + make=3D'make'=0A= + make_set_make=3D'#'=0A= + mallocobj=3D''=0A= + mallocsrc=3D''=0A= + malloctype=3D'void *'=0A= + man1dir=3D'/usr/local/man/man1'=0A= + man1direxp=3D'/usr/local/man/man1'=0A= + man1ext=3D'1'=0A= + man3dir=3D'/usr/local/lib/perl5/5.00503/man/man3'=0A= + man3direxp=3D'/usr/local/lib/perl5/5.00503/man/man3'=0A= + man3ext=3D'3'=0A= + medium=3D''=0A= + mips=3D''=0A= + mips_type=3D''=0A= + mkdir=3D'mkdir'=0A= + models=3D'none'=0A= + modetype=3D'mode_t'=0A= + more=3D'more'=0A= + mv=3D''=0A= + myarchname=3D'i386-unknown'=0A= + mydomain=3D'.personal-media.co.jp'=0A= + myhostname=3D'pc104'=0A= + myuname=3D'freebsd pc104.personal-media.co.jp 4.1-release freebsd = 4.1-release #0: thu jul 27 14:57:29 gmt 2000 = root@dinosaur.jp.freebsd.org:usrsrcsyscompilegeneric i386 '=0A= + n=3D'-n'=0A= + netdb_hlen_type=3D'int'=0A= + netdb_host_type=3D'const char *'=0A= + netdb_name_type=3D'const char *'=0A= + netdb_net_type=3D'unsigned long'=0A= + nm=3D'nm'=0A= + nm_opt=3D''=0A= + nm_so_opt=3D''=0A= + nonxs_ext=3D'Errno'=0A= + nroff=3D'nroff'=0A= + o_nonblock=3D'O_NONBLOCK'=0A= + obj_ext=3D'.o'=0A= + optimize=3D'-O0'=0A= + orderlib=3D'false'=0A= + osname=3D'B-right/V'=0A= + osvers=3D'3.000'=0A= + package=3D'perl5'=0A= + pager=3D'/usr/bin/less'=0A= + passcat=3D'cat /etc/passwd'=0A= + patchlevel=3D'5'=0A= + path_sep=3D':'=0A= + perl=3D'perl'=0A= + perladmin=3D'tanaka@personal-media.co.jp'=0A= + perlpath=3D'/usr/local/bin/perl'=0A= + pg=3D'pg'=0A= + phostname=3D'hostname'=0A= + pidtype=3D'pid_t'=0A= + plibpth=3D''=0A= + pmake=3D''=0A= + pr=3D''=0A= + prefix=3D'/usr/local'=0A= + prefixexp=3D'/usr/local'=0A= + privlib=3D'/usr/local/lib/perl5/5.00503'=0A= + privlibexp=3D'/usr/local/lib/perl5/5.00503'=0A= + prototype=3D'define'=0A= + ptrsize=3D'4'=0A= + randbits=3D'15'=0A= + ranlib=3D'/usr4/3bv/tool/gnu2/i386-unknown-gnu/bin/ranlib'=0A= + rd_nodata=3D'-1'=0A= + rm=3D'rm'=0A= + rmail=3D''=0A= + runnm=3D'false'=0A= + scriptdir=3D'/usr/local/bin'=0A= + scriptdirexp=3D'/usr/local/bin'=0A= + sed=3D'sed'=0A= + selectminbits=3D'32'=0A= + selecttype=3D'fd_set *'=0A= + sendmail=3D'sendmail'=0A= + sh=3D'/bin/sh'=0A= + shar=3D''=0A= + sharpbang=3D'#!'=0A= + shmattype=3D'char *'=0A= + shortsize=3D'2'=0A= + shrpenv=3D''=0A= + shsharp=3D'true'=0A= + sig_name=3D'ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS = PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM = PROF WINCH INFO USR1 USR2 IOT '=0A= + sig_name_init=3D'"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", = "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", = "URG", "STOP", "TSTP", "CONT", "CHLD", "TTIN", "TTOU", "IO", "XCPU", = "XFSZ", "VTALRM", "PROF", "WINCH", "INFO", "USR1", "USR2", "IOT", 0'=0A= + sig_num=3D'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 26 27 28 29 30 31 6 '=0A= + sig_num_init=3D'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, 26, 27, 28, 29, 30, 31, 6, 0'=0A= + signal_t=3D'void'=0A= + sitearch=3D'/usr/local/lib/perl5/site_perl/5.005/i386-unknown'=0A= + sitearchexp=3D'/usr/local/lib/perl5/site_perl/5.005/i386-unknown'=0A= + sitelib=3D'/usr/local/lib/perl5/site_perl/5.005'=0A= + sitelibexp=3D'/usr/local/lib/perl5/site_perl/5.005'=0A= + sizetype=3D'size_t'=0A= + sleep=3D''=0A= + smail=3D''=0A= + small=3D''=0A= + so=3D'so'=0A= + sockethdr=3D''=0A= + socketlib=3D''=0A= + sort=3D'sort'=0A= + spackage=3D'Perl5'=0A= + spitshell=3D'cat'=0A= + split=3D''=0A= + src=3D'.'=0A= + ssizetype=3D'ssize_t'=0A= + startperl=3D'#!/usr/local/bin/perl'=0A= + startsh=3D'#!/bin/sh'=0A= + #static_ext=3D'B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File = Opcode POSIX SDBM_File Socket attrs re'=0A= + static_ext=3D' '=0A= + stdchar=3D'char'=0A= + stdio_base=3D'((fp)->_base)'=0A= + stdio_bufsiz=3D'((fp)->_cnt + (fp)->_ptr - (fp)->_base)'=0A= + stdio_cnt=3D'((fp)->_cnt)'=0A= + stdio_filbuf=3D''=0A= + stdio_ptr=3D'((fp)->_ptr)'=0A= + strings=3D'/usr4/3bv/include/unix/string.h'=0A= + submit=3D''=0A= + subversion=3D'3'=0A= + sysman=3D'/usr/share/man/man1'=0A= + tail=3D''=0A= + tar=3D''=0A= + tbl=3D''=0A= + tee=3D'tee'=0A= + test=3D'test'=0A= + timeincl=3D'/usr4/3bv/include/unix/sys/time.h '=0A= + timetype=3D'time_t'=0A= + touch=3D'touch'=0A= + tr=3D'tr'=0A= + trnl=3D'\n'=0A= + troff=3D''=0A= + uidtype=3D'uid_t'=0A= + uname=3D'uname'=0A= + uniq=3D'uniq'=0A= + usedl=3D'undef'=0A= + usemymalloc=3D'n'=0A= + usenm=3D'false'=0A= + useopcode=3D'true'=0A= + useperlio=3D'undef'=0A= + useposix=3D'true'=0A= + usesfio=3D'false'=0A= + useshrplib=3D'false'=0A= + usethreads=3D'undef'=0A= + usevfork=3D'true'=0A= + usrinc=3D'/usr4/3bv/include/unix'=0A= + uuname=3D''=0A= + version=3D'5.00503'=0A= + vi=3D''=0A= + voidflags=3D'15'=0A= + xlibpth=3D'/usr/lib/386 /lib/386'=0A= + zcat=3D''=0A= + zip=3D'zip'=0A= + d_euc=3D'define'=0A= + # Configure command line arguments.=0A= + config_arg0=3D'Configure'=0A= + config_args=3D''=0A= + config_argc=3D0=0A= + PATCHLEVEL=3D5=0A= + SUBVERSION=3D3=0A= + CONFIG=3Dtrue=0A= diff -rcp2N perl5.005_03.org/iperlsys.h perl5.005_03/iperlsys.h=0A= *** perl5.005_03.org/iperlsys.h Fri Mar 5 09:34:16 1999=0A= --- perl5.005_03/iperlsys.h Mon Apr 16 13:46:44 2001=0A= *************** public:=0A= *** 719,726 ****=0A= --- 719,733 ----=0A= #define PerlProc_exit(s) exit((s))=0A= #define PerlProc__exit(s) _exit((s))=0A= + #ifdef BTRON=0A= + #define PerlProc_execl(c,w,x,y,z) \=0A= + btron_forkexecl((c), (w), (x), (y), (z))=0A= + #define PerlProc_execv(c, a) btron_forkexecv((c), (a))=0A= + #define PerlProc_execvp(c, a) btron_forkexecvp((c), (a))=0A= + #else /* BTRON */=0A= #define PerlProc_execl(c,w,x,y,z) \=0A= execl((c), (w), (x), (y), (z))=0A= #define PerlProc_execv(c, a) execv((c), (a))=0A= #define PerlProc_execvp(c, a) execvp((c), (a))=0A= + #endif /* BTRON */=0A= #define PerlProc_getuid() getuid()=0A= #define PerlProc_geteuid() geteuid()=0A= diff -rcp2N perl5.005_03.org/perlmain.c perl5.005_03/perlmain.c=0A= *** perl5.005_03.org/perlmain.c Thu Jan 1 09:00:00 1970=0A= --- perl5.005_03/perlmain.c Mon Apr 16 14:02:41 2001=0A= ***************=0A= *** 0 ****=0A= --- 1,74 ----=0A= + /*=0A= + * "The Road goes ever on and on, down from the door where it began."=0A= + */=0A= + =0A= + #ifdef OEMVS=0A= + #pragma runopts(HEAP(1M,32K,ANYWHERE,KEEP,8K,4K))=0A= + #endif=0A= + =0A= + =0A= + #include "EXTERN.h"=0A= + #include "perl.h"=0A= + =0A= + static void xs_init _((void));=0A= + static PerlInterpreter *my_perl;=0A= + =0A= + #if defined (__MINT__) || defined (atarist)=0A= + /* The Atari operating system doesn't have a dynamic stack. The=0A= + stack size is determined from this value. */=0A= + long _stksize =3D 64 * 1024;=0A= + #endif=0A= + =0A= + int=0A= + main(int argc, char **argv, char **env)=0A= + {=0A= + int exitstatus;=0A= + =0A= + #ifdef PERL_GLOBAL_STRUCT=0A= + #define PERLVAR(var,type) /**/=0A= + #define PERLVARI(var,type,init) PL_Vars.var =3D init;=0A= + #define PERLVARIC(var,type,init) PL_Vars.var =3D init;=0A= + #include "perlvars.h"=0A= + #undef PERLVAR=0A= + #undef PERLVARI=0A= + #undef PERLVARIC=0A= + #endif=0A= + =0A= + PERL_SYS_INIT(&argc,&argv);=0A= + =0A= + perl_init_i18nl10n(1);=0A= + =0A= + if (!PL_do_undump) {=0A= + my_perl =3D perl_alloc();=0A= + if (!my_perl)=0A= + exit(1);=0A= + perl_construct( my_perl );=0A= + PL_perl_destruct_level =3D 0;=0A= + }=0A= + =0A= + exitstatus =3D perl_parse( my_perl, xs_init, argc, argv, (char **) = NULL );=0A= + if (!exitstatus) {=0A= + exitstatus =3D perl_run( my_perl );=0A= + }=0A= + =0A= + perl_destruct( my_perl );=0A= + perl_free( my_perl );=0A= + =0A= + PERL_SYS_TERM();=0A= + =0A= + exit( exitstatus );=0A= + return exitstatus;=0A= + }=0A= + =0A= + /* Register any extra external extensions */=0A= + =0A= + /* Do not delete this line--writemain depends on it */=0A= + EXTERN_C void boot_DynaLoader _((CV* cv));=0A= + =0A= + static void=0A= + xs_init()=0A= + {=0A= + char *file =3D __FILE__;=0A= + dXSUB_SYS;=0A= + newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);=0A= + }=0A= diff -rcp2N perl5.005_03.org/pp_sys.c perl5.005_03/pp_sys.c=0A= *** perl5.005_03.org/pp_sys.c Mon Apr 23 21:32:10 2001=0A= --- perl5.005_03/pp_sys.c Tue Apr 17 17:13:01 2001=0A= *************** PP(pp_system)=0A= *** 3241,3245 ****=0A= }=0A= }=0A= ! #if (defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && = !defined(OS2)=0A= while ((childpid =3D vfork()) =3D=3D -1) {=0A= if (errno !=3D EAGAIN) {=0A= --- 3241,3245 ----=0A= }=0A= }=0A= ! #if (defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && = !defined(OS2) && !defined(BTRON)=0A= while ((childpid =3D vfork()) =3D=3D -1) {=0A= if (errno !=3D EAGAIN) {=0A= *************** PP(pp_system)=0A= *** 3276,3279 ****=0A= --- 3276,3320 ----=0A= PerlProc__exit(-1);=0A= #else /* ! FORK or VMS or OS/2 */=0A= + #if defined(BTRON)=0A= + if( btron_prefork() < 0){ /* = =BB=D2=A5=D7=A5=ED=A5=BB=A5=B9=B4=C4=B6=AD=A4=CB=B0=DC=B9=D4 */=0A= + value =3D -1;=0A= + SP =3D ORIGMARK;=0A= + PUSHi(value);=0A= + RETURN;=0A= + }=0A= + =0A= + if (PL_op->op_flags & OPf_STACKED) {=0A= + SV *really =3D *++MARK;=0A= + childpid =3D (I32)do_aexec_bv(really, MARK, SP);=0A= + }=0A= + else if (SP - MARK !=3D 1)=0A= + childpid =3D (I32)do_aexec_bv(Nullsv, MARK, SP);=0A= + else {=0A= + childpid =3D (I32)do_exec_bv(SvPVx(sv_mortalcopy(*SP), n_a));=0A= + }=0A= + =0A= + if (childpid > 0) { /* = =BF=C6=A5=D7=A5=ED=A5=BB=A5=B9=B4=C4=B6=AD=A4=CB=CC=E1=A4=EB */=0A= + rsignal_save(SIGINT, SIG_IGN, &ihand);=0A= + rsignal_save(SIGQUIT, SIG_IGN, &qhand);=0A= + /* WakeUp by Ctrl-C */=0A= + /**/ cons_ioctl(0x8f, 'C'-'@');=0A= + result =3D waitpid( childpid, &status, 0);=0A= + if (result < 0) {=0A= + if (errno =3D=3D EINTR) {=0A= + #define TERM_ALL 1=0A= + /* Ctrl-C : =B6=AF=C0=A9=BD=AA=CE=BB */=0A= + b_ter_prc(childpid, 0, TERM_ALL);=0A= + result =3D waitpid( childpid, &status, 0);=0A= + }=0A= + }=0A= + (void)rsignal_restore(SIGINT, &ihand);=0A= + (void)rsignal_restore(SIGQUIT, &qhand);=0A= + STATUS_NATIVE_SET(result =3D=3D -1 ? -1 : status);=0A= + do_execfree_bv(); /* free any memory child malloced on vfork */=0A= + SP =3D ORIGMARK;=0A= + PUSHi(STATUS_CURRENT);=0A= + RETURN;=0A= + }=0A= + #else /* BTRON */=0A= if (PL_op->op_flags & OPf_STACKED) {=0A= SV *really =3D *++MARK;=0A= *************** PP(pp_system)=0A= *** 3289,3292 ****=0A= --- 3330,3334 ----=0A= SP =3D ORIGMARK;=0A= PUSHi(STATUS_CURRENT);=0A= + #endif /* BTRON */=0A= #endif /* !FORK or VMS */=0A= RETURN;=0A= diff -rcp2N perl5.005_03.org/util.c perl5.005_03/util.c=0A= *** perl5.005_03.org/util.c Mon Apr 23 21:32:11 2001=0A= --- perl5.005_03/util.c Mon Apr 16 20:51:32 2001=0A= *************** VTOH(vtohl,long)=0A= *** 1832,1836 ****=0A= =0A= /* VMS' my_popen() is in VMS.c, same with OS/2. */=0A= ! #if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && = !defined(VMS)=0A= PerlIO *=0A= my_popen(char *cmd, char *mode)=0A= --- 1832,1836 ----=0A= =0A= /* VMS' my_popen() is in VMS.c, same with OS/2. */=0A= ! #if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && = !defined(VMS) && !defined(BTRON)=0A= PerlIO *=0A= my_popen(char *cmd, char *mode)=0A= *************** my_popen(char *cmd, char *mode)=0A= *** 1912,1916 ****=0A= }=0A= #else=0A= ! #if defined(atarist) || defined(DJGPP)=0A= FILE *popen();=0A= PerlIO *=0A= --- 1912,1916 ----=0A= }=0A= #else=0A= ! #if defined(atarist) || defined(DJGPP) || defined(BTRON)=0A= FILE *popen();=0A= PerlIO *=0A= *************** rsignal_restore(int signo, Sigsave_t *sa=0A= *** 2084,2088 ****=0A= =0A= /* VMS' my_pclose() is in VMS.c; same with OS/2 */=0A= ! #if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && = !defined(VMS)=0A= I32=0A= my_pclose(PerlIO *ptr)=0A= --- 2084,2088 ----=0A= =0A= /* VMS' my_pclose() is in VMS.c; same with OS/2 */=0A= ! #if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && = !defined(VMS) && !defined(BTRON)=0A= I32=0A= my_pclose(PerlIO *ptr)=0A= *************** pidgone(int pid, int status)=0A= *** 2214,2218 ****=0A= }=0A= =0A= ! #if defined(atarist) || defined(OS2) || defined(DJGPP)=0A= int pclose();=0A= #ifdef HAS_FORK=0A= --- 2214,2218 ----=0A= }=0A= =0A= ! #if defined(atarist) || defined(OS2) || defined(DJGPP) || = defined(BTRON)=0A= int pclose();=0A= #ifdef HAS_FORK=0A= ------=_NextPart_000_0060_01C122E0.8DF755A0--