[lintian] 01/02: FrontendUtil: Work around a bug in autodie
This is an automated email from the git hooks/post-receive script.
nthykier pushed a commit to branch master
in repository lintian.
commit 2dbb5716ee3ce29f8983ced56b14f10e4fe78f97
Author: Niels Thykier <niels@thykier.net>
Date: Sat Jan 31 21:29:24 2015 +0100
FrontendUtil: Work around a bug in autodie
---
debian/changelog | 3 +++
lib/Lintian/Internal/FrontendUtil.pm | 15 +++++++++++----
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 1c0628d..e853935 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -96,6 +96,9 @@ lintian (2.5.31) UNRELEASED; urgency=medium
* lib/Lintian/Command.pm:
+ [NT] Use croak() rather than L::Util's fail() on errors.
The issues are generally not "internal errors".
+ * lib/Lintian/Internal/FrontendUtil.pm:
+ + [NT] Work around a bug in autodie, where an fdopen of a
+ file-descriptor always failed with "bad file descriptor".
* lib/Lintian/Util.pm:
+ [NT] Prefer dpkg-deb --ctrl-tarfile to "ar p" when dpkg
is recent enough.
diff --git a/lib/Lintian/Internal/FrontendUtil.pm b/lib/Lintian/Internal/FrontendUtil.pm
index 5051ac7..601b13b 100644
--- a/lib/Lintian/Internal/FrontendUtil.pm
+++ b/lib/Lintian/Internal/FrontendUtil.pm
@@ -188,22 +188,29 @@ sub default_parallel {
sub open_file_or_fd {
my ($to_open, $mode) = @_;
my $fd;
+ # autodie trips this for some reasons (possibly fixed
+ # in v2.26)
+ no autodie qw(open);
if ($mode eq '<') {
if ($to_open eq '-' or $to_open eq '&0') {
$fd = \*STDIN;
} elsif ($to_open =~ m/^\&\d+$/) {
- open($fd, '<&=', substr($to_open, 1));
+ open($fd, '<&=', substr($to_open, 1))
+ or die("fdopen $to_open for reading: $!\n");
} else {
- open($fd, '<', $to_open);
+ open($fd, '<', $to_open)
+ or die("open $to_open for reading: $!\n");
}
} elsif ($mode eq '>') {
if ($to_open eq '-' or $to_open eq '&1') {
$fd = \*STDOUT;
} elsif ($to_open =~ m/^\&\d+$/) {
- open($fd, '>>&=', substr($to_open, 1));
+ open($fd, '>&=', substr($to_open, 1))
+ or die("fdopen $to_open for writing: $!\n");
} else {
$mode = ">$mode" if $to_open =~ s/^\+//;
- open($fd, $mode, $to_open);
+ open($fd, $mode, $to_open)
+ or die("open $to_open for write/append ($mode): $!\n");
}
} else {
croak("Invalid mode \"$mode\" for open_file_or_fd");
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git
Reply to: