45 lines
1.6 KiB
Diff
45 lines
1.6 KiB
Diff
From e2ce0950e5e4b86c6fcbc488c37dd61d082b3e0d Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
|
Date: Fri, 21 Nov 2014 10:48:51 +0100
|
|
Subject: [PATCH] Report inaccesible file on failed require
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Commit 2433d39e6 (require should die if a file exists but can't be
|
|
read) made first failed opened file fatal as request in
|
|
[perl #113422]. However error message produced in that case is not
|
|
much helpful in identifying which file ound not been accessed:
|
|
|
|
$ LANG=C perl -I/root -e 'require strict'
|
|
Can't locate strict.pm: Permission denied at -e line 1.
|
|
|
|
This patch adds the name of the failed file to the message to help
|
|
identify which @INC directory is erroneous:
|
|
|
|
$ LANG=C ./perl -I/root -I./lib -e 'require strict'
|
|
Can't locate strict.pm: /root/strict.pm: Permission denied at -e line 1.
|
|
|
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|
---
|
|
pp_ctl.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/pp_ctl.c b/pp_ctl.c
|
|
index 4b16e14..4f1c480 100644
|
|
--- a/pp_ctl.c
|
|
+++ b/pp_ctl.c
|
|
@@ -4048,7 +4048,8 @@ PP(pp_require)
|
|
if (PL_op->op_type == OP_REQUIRE) {
|
|
if(saved_errno == EMFILE || saved_errno == EACCES) {
|
|
/* diag_listed_as: Can't locate %s */
|
|
- DIE(aTHX_ "Can't locate %s: %s", name, Strerror(saved_errno));
|
|
+ DIE(aTHX_ "Can't locate %s: %s: %s",
|
|
+ name, tryname, Strerror(saved_errno));
|
|
} else {
|
|
if (namesv) { /* did we lookup @INC? */
|
|
AV * const ar = GvAVn(PL_incgv);
|
|
--
|
|
1.9.3
|
|
|