summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2011-09-16 14:32:20 -0700
committerFather Chrysostomos <sprout@cpan.org>2011-09-16 14:51:16 -0700
commita3342be368647e67883bc6ba3bea07bb06880b80 (patch)
tree10cacc539804bc03769913ccea0d1dc6fdb0626d
parented40ada772d2558d69ba680968418e95be32f0a8 (diff)
downloadperl-a3342be368647e67883bc6ba3bea07bb06880b80.tar.gz
[perl #93638] $ENV{LS_COLORS} causes miniperl glob failure
On some systems, csh croaks if the LS_COLORS envvar contains something it considers invalid. The easiest and least intrusive fix for now is to localize %ENV before running csh, though eventually it might be nice to use File::Glob in miniperl, either by linking it statically or by inlining it.
-rw-r--r--doio.c1
-rw-r--r--pod/perldelta.pod7
2 files changed, 8 insertions, 0 deletions
diff --git a/doio.c b/doio.c
index 1edf8d29d7..838786efb7 100644
--- a/doio.c
+++ b/doio.c
@@ -2375,6 +2375,7 @@ Perl_vms_start_glob
#endif
#endif /* !CSH */
#endif /* !DOSISH */
+ save_hash(gv_fetchpvs("ENV", 0, SVt_PVHV));
(void)do_open(PL_last_in_gv, (char*)SvPVX_const(tmpcmd), SvCUR(tmpcmd),
FALSE, O_RDONLY, 0, NULL);
fp = IoIFP(io);
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 352ae42cb7..37a4d5dd7a 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -798,6 +798,13 @@ Weakening the first argument to an automatically-invoked C<DESTROY> method
could result in erroneous "DESTROY created new reference" errors or
crashes. Now it is an error to weaken a read-only reference.
+=item *
+
+Under miniperl (used to configure modules when perl itself is built),
+C<glob> now clears %ENV before calling csh, since the latter croaks on some
+systems if it does not like the contents of the LS_COLORS enviroment
+variable [perl #98662].
+
=back
=head1 Known Problems