From: Perl 5 Porters Date: Tue, 1 Oct 1996 23:02:17 +0000 (-0400) Subject: perl 5.003_06: perl.c X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=552a7a9bd7c71973e24c16b391cbb65050f28fae;p=p5sagit%2Fp5-mst-13.2.git perl 5.003_06: perl.c From: Roderick Schertler Subject: Re: -T flag and removal of `.' from @INC support C Date: Tue, 01 Oct 1996 19:02:17 -0400 From: Gurusamy Sarathy Subject: Re: 2 core dumps (patch) Message-Id: <199610012302.TAA08395@aatma.engin.umich.edu> The problem is an uninitialized SV slot in errgv. Here's a patch. Date: Thu, 03 Oct 1996 16:31:46 -0400 (EDT) From: Charles Bailey Subject: VMS patches to 5.003_05 --- diff --git a/perl.c b/perl.c index 38c4f07..f51bdc3 100644 --- a/perl.c +++ b/perl.c @@ -395,10 +395,14 @@ setuid perl scripts securely.\n"); if (!e_fp) croak("Cannot open temporary file"); } - if (argv[1]) { + if (*++s) + PerlIO_puts(e_fp,s); + else if (argv[1]) { PerlIO_puts(e_fp,argv[1]); argc--,argv++; } + else + croak("No code specified for -e"); (void)PerlIO_putc(e_fp,'\n'); break; case 'I': @@ -1380,6 +1384,7 @@ init_main_stash() defgv = gv_fetchpv("_",TRUE, SVt_PVAV); errgv = gv_HVadd(gv_fetchpv("@", TRUE, SVt_PV)); GvMULTI_on(errgv); + sv_setpvn(GvSV(errgv), "", 0); curstash = defstash; compiling.cop_stash = defstash; debstash = GvHV(gv_fetchpv("DB::", GV_ADDMULTI, SVt_PVHV)); @@ -2113,11 +2118,24 @@ init_perllib() { char *s; if (!tainting) { +#ifndef VMS s = getenv("PERL5LIB"); if (s) incpush(s); else incpush(getenv("PERLLIB")); +#else /* VMS */ + /* Treat PERL5?LIB as a possible search list logical name -- the + * "natural" VMS idiom for a Unix path string. We allow each + * element to be a set of |-separated directories for compatibility. + */ + char buf[256]; + int idx = 0; + if (my_trnlnm("PERL5LIB",buf,0)) + do { incpush(buf); } while (my_trnlnm("PERL5LIB",buf,++idx)); + else + while (my_trnlnm("PERLLIB",buf,idx++)) incpush(buf); +#endif /* VMS */ } /* Use the ~-expanded versions of APPLIB (undocumented),