From 76876bd5a95c3ce1ff6ccf3f633a6cce6fa4e5b2 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 29 Sep 2018 01:20:17 +0100 Subject: i18n: Source-level framework: call setlocale, provide __ and ___ This is the general plumbing for looking up translated messages - the consumer-side. No actual messages are flagged for translation yet. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 1 + Debian/Dgit/I18n.pm | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 Debian/Dgit/I18n.pm (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 91d4c71..6642917 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -33,6 +33,7 @@ use File::Path; use File::Basename; use Dpkg::Control::Hash; use Debian::Dgit::ExitStatus; +use Debian::Dgit::I18n; BEGIN { use Exporter (); diff --git a/Debian/Dgit/I18n.pm b/Debian/Dgit/I18n.pm new file mode 100644 index 0000000..c6f9e16 --- /dev/null +++ b/Debian/Dgit/I18n.pm @@ -0,0 +1,26 @@ +# -*- perl -*- + +package Debian::Dgit::I18n; + +# This module provides +# __ a function which is an alias for gettext +# ___ sprintf wrapper that gettexts the format +# +# In perl the sub `_' is a `superglobal', which means there +# is only one of it in the whole program and every reference +# is to the same one. So it's not really useable in modules. +# Hence __. + +use Locale::gettext; + +BEGIN { + use Exporter; + @ISA = qw(Exporter); + @EXPORT = qw(__ ___); +} + + +sub __ { gettext @_; } +sub ___ { my $f = shift @_; sprintf +(gettext $f), @_; } + +1; -- cgit v1.2.3 From b30764495d682a756d2b3bd13935c3be46a0d339 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 29 Sep 2018 01:24:24 +0100 Subject: i18n: Flag a handful of messages for translation This is just useful for testing the forthcoming machinery, so far. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 6642917..b1aa620 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -672,7 +672,7 @@ sub getfield ($$) { my ($dctrl,$field) = @_; my $v = $dctrl->{$field}; return $v if defined $v; - fail "missing field $field in ".$dctrl->get_option('name'); + fail ___ "missing field %s in %s", $field, $dctrl->get_option('name'); } sub parsechangelog_loop ($$$) { -- cgit v1.2.3 From 33f697e1ebf2ca4a68479c7769ecc93dd0ee28e3 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 29 Sep 2018 11:00:22 +0100 Subject: i18n: Rename ___ to f_ I have decided that's a better name. Not _f because, unlike printf (where f is done first, and then print), here the _ is done first and then f. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 2 +- Debian/Dgit/I18n.pm | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index b1aa620..4b340d9 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -672,7 +672,7 @@ sub getfield ($$) { my ($dctrl,$field) = @_; my $v = $dctrl->{$field}; return $v if defined $v; - fail ___ "missing field %s in %s", $field, $dctrl->get_option('name'); + fail f_ "missing field %s in %s", $field, $dctrl->get_option('name'); } sub parsechangelog_loop ($$$) { diff --git a/Debian/Dgit/I18n.pm b/Debian/Dgit/I18n.pm index c6f9e16..b86fec8 100644 --- a/Debian/Dgit/I18n.pm +++ b/Debian/Dgit/I18n.pm @@ -4,7 +4,7 @@ package Debian::Dgit::I18n; # This module provides # __ a function which is an alias for gettext -# ___ sprintf wrapper that gettexts the format +# f_ sprintf wrapper that gettexts the format # # In perl the sub `_' is a `superglobal', which means there # is only one of it in the whole program and every reference @@ -16,11 +16,11 @@ use Locale::gettext; BEGIN { use Exporter; @ISA = qw(Exporter); - @EXPORT = qw(__ ___); + @EXPORT = qw(__ f_); } sub __ { gettext @_; } -sub ___ { my $f = shift @_; sprintf +(gettext $f), @_; } +sub f_ { my $f = shift @_; sprintf +(gettext $f), @_; } 1; -- cgit v1.2.3 From d67cf3f6003716b138f00e813d6df2803a32bd72 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 29 Sep 2018 11:35:09 +0100 Subject: i18n: sub prototypes for __ and f_ Signed-off-by: Ian Jackson --- Debian/Dgit/I18n.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Debian') diff --git a/Debian/Dgit/I18n.pm b/Debian/Dgit/I18n.pm index b86fec8..9c474ee 100644 --- a/Debian/Dgit/I18n.pm +++ b/Debian/Dgit/I18n.pm @@ -20,7 +20,7 @@ BEGIN { } -sub __ { gettext @_; } -sub f_ { my $f = shift @_; sprintf +(gettext $f), @_; } +sub __ ($) { gettext @_; } +sub f_ ($$;@) { my $f = shift @_; sprintf +(gettext $f), @_; } 1; -- cgit v1.2.3 From f267017422adea03967b5cf66426e4229c3ff46b Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 29 Sep 2018 13:02:51 +0100 Subject: i18n: Provide i_ (identity function, tags for translation) Signed-off-by: Ian Jackson --- Debian/Dgit/I18n.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Debian') diff --git a/Debian/Dgit/I18n.pm b/Debian/Dgit/I18n.pm index 9c474ee..e8068ff 100644 --- a/Debian/Dgit/I18n.pm +++ b/Debian/Dgit/I18n.pm @@ -5,6 +5,7 @@ package Debian::Dgit::I18n; # This module provides # __ a function which is an alias for gettext # f_ sprintf wrapper that gettexts the format +# i_ identify function, but marks string for translation # # In perl the sub `_' is a `superglobal', which means there # is only one of it in the whole program and every reference @@ -16,11 +17,12 @@ use Locale::gettext; BEGIN { use Exporter; @ISA = qw(Exporter); - @EXPORT = qw(__ f_); + @EXPORT = qw(__ f_ i_); } sub __ ($) { gettext @_; } +sub i_ ($) { $_[0]; } sub f_ ($$;@) { my $f = shift @_; sprintf +(gettext $f), @_; } 1; -- cgit v1.2.3 From d947ba40da3e61e61829d3b2c744d07d609407d2 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 1 Oct 2018 15:18:31 +0100 Subject: Dgit.pm: Improve getcwd failure message Don't print the pointless line number in Dgit.pm. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 4b340d9..2e9fa64 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -312,7 +312,7 @@ sub ensuredir ($) { sub must_getcwd () { my $d = getcwd(); - defined $d or fail "getcwd failed: $!"; + defined $d or fail "getcwd failed: $!\n"; return $d; } -- cgit v1.2.3 From 503bed85ebdc51f2c6fc20ab13a44633e7b93355 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 1 Oct 2018 15:19:19 +0100 Subject: i18n: Dgit.pm: mark some of messages (1) Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 2e9fa64..8260e9f 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -198,7 +198,7 @@ sub messagequote ($) { sub shellquote { my @out; local $_; - defined or confess 'internal error' foreach @_; + defined or confess __ 'internal error' foreach @_; foreach my $a (@_) { $_ = $a; if (!length || m{[^-=_./:0-9a-z]}i) { @@ -292,7 +292,7 @@ sub _us () { } sub failmsg { - my $s = "error: @_\n"; + my $s = f_ "error: %s\n", "@_"; $s =~ s/\n\n$/\n/g; my $prefix = _us().": "; $s =~ s/^/$prefix/gm; @@ -312,7 +312,7 @@ sub ensuredir ($) { sub must_getcwd () { my $d = getcwd(); - defined $d or fail "getcwd failed: $!\n"; + defined $d or fail f_ "getcwd failed: %s\n", $!; return $d; } @@ -331,32 +331,32 @@ our @signames = split / /, $Config{sig_name}; sub waitstatusmsg () { if (!$?) { - return "terminated, reporting successful completion"; + return __ "terminated, reporting successful completion"; } elsif (!($? & 255)) { - return "failed with error exit status ".WEXITSTATUS($?); + return f_ "failed with error exit status %s", WEXITSTATUS($?); } elsif (WIFSIGNALED($?)) { my $signum=WTERMSIG($?); - return "died due to fatal signal ". + return f_ "died due to fatal signal %s", ($signames[$signum] // "number $signum"). ($? & 128 ? " (core dumped)" : ""); # POSIX(3pm) has no WCOREDUMP } else { - return "failed with unknown wait status ".$?; + return f_ "failed with unknown wait status %s", $?; } } sub failedcmd_report_cmd { my $intro = shift @_; - $intro //= "failed command"; + $intro //= __ "failed command"; { local ($!); printcmd \*STDERR, _us().": $intro:", @_ or die $!; }; } sub failedcmd_waitstatus { if ($? < 0) { - return "failed to fork/exec: $!"; + return f_ "failed to fork/exec: %s", $!; } elsif ($?) { - return "subprocess ".waitstatusmsg(); + return f_ "subprocess %s", waitstatusmsg(); } else { - return "subprocess produced invalid output"; + return __ "subprocess produced invalid output"; } } -- cgit v1.2.3 From f8202c5af8682e4e5779aefad8e1c1392f438e89 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 1 Oct 2018 15:24:18 +0100 Subject: Dgit.pm: Replace many die calls with confess As a rule of thumb, anything where we would end up printing the line number in Dgit.pm is wrong. Most of these are internal errors or unexpected syscall failures. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 92 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 8260e9f..d2484f9 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -148,18 +148,18 @@ sub setup_sigwarn () { sub initdebug ($) { ($debugprefix) = @_; - open DEBUG, ">/dev/null" or die $!; + open DEBUG, ">/dev/null" or confess $!; } sub enabledebug () { - open DEBUG, ">&STDERR" or die $!; + open DEBUG, ">&STDERR" or confess $!; DEBUG->autoflush(1); $debuglevel ||= 1; } sub enabledebuglevel ($) { my ($newlevel) = @_; # may be undef (eg from env var) - die if $debuglevel; + confess if $debuglevel; $newlevel //= 0; $newlevel += 0; return unless $newlevel; @@ -181,7 +181,7 @@ sub printdebug { print DEBUG $debugprefix unless $printdebug_noprefix; pop @_ while @_ and !length $_[-1]; return unless @_; - print DEBUG @_ or die $!; + print DEBUG @_ or confess $!; $printdebug_noprefix = $_[-1] !~ m{\n$}; } @@ -214,9 +214,9 @@ sub shellquote { sub printcmd { my $fh = shift @_; my $intro = shift @_; - print $fh $intro," " or die $!; - print $fh shellquote @_ or die $!; - print $fh "\n" or die $!; + print $fh $intro," " or confess $!; + print $fh shellquote @_ or confess $!; + print $fh "\n" or confess $!; } sub debugcmd { @@ -284,7 +284,7 @@ sub stat_exists ($) { my ($f) = @_; return 1 if stat $f; return 0 if $!==&ENOENT; - die "stat $f: $!"; + confess "stat $f: $!"; } sub _us () { @@ -307,7 +307,7 @@ sub ensuredir ($) { my ($dir) = @_; # does not create parents return if mkdir $dir; return if $! == EEXIST; - die "mkdir $dir: $!"; + confess "mkdir $dir: $!"; } sub must_getcwd () { @@ -347,7 +347,7 @@ sub waitstatusmsg () { sub failedcmd_report_cmd { my $intro = shift @_; $intro //= __ "failed command"; - { local ($!); printcmd \*STDERR, _us().": $intro:", @_ or die $!; }; + { local ($!); printcmd \*STDERR, _us().": $intro:", @_ or confess $!; }; } sub failedcmd_waitstatus { @@ -391,11 +391,11 @@ sub cmdoutput_errok { confess Dumper(\@_)." ?" if grep { !defined } @_; local $printdebug_when_debuglevel = $debugcmd_when_debuglevel; debugcmd "|",@_; - open P, "-|", @_ or die "$_[0] $!"; + open P, "-|", @_ or confess "$_[0] $!"; my $d; $!=0; $?=0; { local $/ = undef; $d =

; } - die $! if P->error; + confess $! if P->error; if (!close P) { printdebug "=>!$?\n"; return undef; } chomp $d; if ($debuglevel > 0) { @@ -455,18 +455,18 @@ sub git_cat_file ($;$) { if (!$gcf_pid) { my @cmd = qw(git cat-file --batch); debugcmd "GCF|", @cmd; - $gcf_pid = open2 $gcf_o, $gcf_i, @cmd or die $!; + $gcf_pid = open2 $gcf_o, $gcf_i, @cmd or confess $!; } printdebug "GCF>| ", $objname, "\n"; - print $gcf_i $objname, "\n" or die $!; + print $gcf_i $objname, "\n" or confess $!; my $x = <$gcf_o>; printdebug "GCF<| ", $x; if ($x =~ m/ (missing)$/) { return $chk->($1, undef); } - my ($type, $size) = $x =~ m/^.* (\w+) (\d+)\n/ or die "$objname ?"; + my ($type, $size) = $x =~ m/^.* (\w+) (\d+)\n/ or confess "$objname ?"; my $data; - (read $gcf_o, $data, $size) == $size or die "$objname $!"; + (read $gcf_o, $data, $size) == $size or confess "$objname $!"; $x = <$gcf_o>; - $x eq "\n" or die "$objname ($_) $!"; + $x eq "\n" or confess "$objname ($_) $!"; return $chk->($type, $data); } @@ -494,22 +494,22 @@ sub git_for_each_ref ($$;$) { if (defined $gitdir) { @cmd = ('sh','-ec','cd "$1"; shift; exec "$@"','x', $gitdir, @cmd); } - open GFER, "-|", @cmd or die $!; + open GFER, "-|", @cmd or confess $!; debugcmd "|", @cmd; while () { - chomp or die "$_ ?"; + chomp or confess "$_ ?"; printdebug "|> ", $_, "\n"; - m#^(\w+)\s+(\w+)\s+(refs/[^/]+/(\S+))$# or die "$_ ?"; + m#^(\w+)\s+(\w+)\s+(refs/[^/]+/(\S+))$# or confess "$_ ?"; $func->($1,$2,$3,$4); } - $!=0; $?=0; close GFER or die "$pattern $? $!"; + $!=0; $?=0; close GFER or confess "$pattern $? $!"; } sub git_get_ref ($) { # => '' if no such ref my ($refname) = @_; local $_ = $refname; - s{^refs/}{[r]efs/} or die "$refname $_ ?"; + s{^refs/}{[r]efs/} or confess "$refname $_ ?"; return cmdoutput qw(git for-each-ref --format=%(objectname)), $_; } @@ -592,11 +592,11 @@ sub git_slurp_config_src ($) { local $/="\0"; my $r = { }; - open GITS, "-|", @cmd or die $!; + open GITS, "-|", @cmd or confess $!; while () { - chomp or die; + chomp or confess; printdebug "=> ", (messagequote $_), "\n"; - m/\n/ or die "$_ ?"; + m/\n/ or confess "$_ ?"; push @{ $r->{$`} }, $'; #'; } $!=0; $?=0; @@ -636,7 +636,7 @@ sub parsecontrolfh ($$;$) { my $issigned= $c->get_option('is_pgp_signed'); if (!defined $issigned) { $dpkgcontrolhash_noissigned= 1; - seek $fh, 0,0 or die "seek $desc: $!"; + seek $fh, 0,0 or confess "seek $desc: $!"; } elsif ($issigned) { fail "control file $desc is (already) PGP-signed. ". " Note that dgit push needs to modify the .dsc and then". @@ -653,7 +653,7 @@ sub parsecontrol { my $fh = new IO::Handle; open $fh, '<', $file or die "$file: $!"; my $c = parsecontrolfh($fh,$desc,$allowsigned); - $fh->error and die $!; + $fh->error and confess $!; close $fh; return $c; } @@ -662,7 +662,7 @@ sub parsechangelog { my $c = Dpkg::Control::Hash->new(name => 'parsed changelog'); my $p = new IO::Handle; my @cmd = (qw(dpkg-parsechangelog), @_); - open $p, '-|', @cmd or die $!; + open $p, '-|', @cmd or confess $!; $c->parse($p); $?=0; $!=0; close $p or failedcmd @cmd; return $c; @@ -680,19 +680,19 @@ sub parsechangelog_loop ($$$) { # @$clogcmd is qw(dpkg-parsechangelog ...some...options...) # calls $fn->($thisstanza, $desc); debugcmd "|",@$clogcmd; - open CLOGS, "-|", @$clogcmd or die $!; + open CLOGS, "-|", @$clogcmd or confess $!; for (;;) { my $stanzatext = do { local $/=""; ; }; printdebug "clogp stanza ".Dumper($stanzatext) if $debuglevel>1; last if !defined $stanzatext; my $desc = "$descbase, entry no.$."; - open my $stanzafh, "<", \$stanzatext or die; + open my $stanzafh, "<", \$stanzatext or confess; my $thisstanza = parsecontrolfh $stanzafh, $desc, 1; $fn->($thisstanza, $desc); } - die $! if CLOGS->error; + confess $! if CLOGS->error; close CLOGS or $?==SIGPIPE or failedcmd @$clogcmd; } @@ -702,18 +702,18 @@ sub make_commit_text ($) { my @cmd = (qw(git hash-object -w -t commit --stdin)); debugcmd "|",@cmd; print Dumper($text) if $debuglevel > 1; - my $child = open2($out, $in, @cmd) or die $!; + my $child = open2($out, $in, @cmd) or confess $!; my $h; eval { - print $in $text or die $!; - close $in or die $!; + print $in $text or confess $!; + close $in or confess $!; $h = <$out>; - $h =~ m/^\w+$/ or die; + $h =~ m/^\w+$/ or confess; $h = $&; printdebug "=> $h\n"; }; close $out; - waitpid $child, 0 == $child or die "$child $!"; + waitpid $child, 0 == $child or confess "$child $!"; $? and failedcmd @cmd; return $h; } @@ -728,7 +728,7 @@ sub reflog_cache_insert ($$$) { my $parent = $ref; $parent =~ s{/[^/]+$}{}; ensuredir "$maindir_gitcommon/logs/$parent"; my $makelogfh = new IO::File "$maindir_gitcommon/logs/$ref", '>>' - or die $!; + or confess $!; my $oldcache = git_get_ref $ref; @@ -756,15 +756,15 @@ sub reflog_cache_lookup ($$) { # you must have called record_maindir my @cmd = (qw(git log -g), '--pretty=format:%H %gs', $ref); debugcmd "|(probably)",@cmd; - my $child = open GC, "-|"; defined $child or die $!; + my $child = open GC, "-|"; defined $child or confess $!; if (!$child) { - chdir $maindir or die $!; + chdir $maindir or confess $!; if (!stat "$maindir_gitcommon/logs/$ref") { - $! == ENOENT or die $!; + $! == ENOENT or confess $!; printdebug ">(no reflog)\n"; finish 0; } - exec @cmd; die $!; + exec @cmd; confess $!; } while () { chomp; @@ -773,7 +773,7 @@ sub reflog_cache_lookup ($$) { close GC; return $1; } - die $! if GC->error; + confess $! if GC->error; failedcmd unless close GC; return undef; } @@ -897,11 +897,11 @@ sub playtree_setup (;$) { # $maindir_gitdir contains our main working "dgit", HEAD, etc. # $maindir_gitcommon the shared stuff, including .objects rmtree('.git/objects'); - symlink "$maindir_gitcommon/objects",'.git/objects' or die $!; + symlink "$maindir_gitcommon/objects",'.git/objects' or confess $!; ensuredir '.git/info'; - open GA, "> .git/info/attributes" or die $!; - print GA "* $negate_harmful_gitattrs\n" or die $!; - close GA or die $!; + open GA, "> .git/info/attributes" or confess $!; + print GA "* $negate_harmful_gitattrs\n" or confess $!; + close GA or confess $!; } 1; -- cgit v1.2.3 From f7a2d017449c7877b095b5761aedef5e5b29c458 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 1 Oct 2018 15:27:56 +0100 Subject: Dgit.pm: Improve symlink failure message Use fail rather than die, and print a newline. This is used sometimes to link origs etc. Hopefully if this fails the user will know why. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index d2484f9..fc146a3 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -422,7 +422,7 @@ sub link_ltarget ($$) { } my $r = link $old, $new; $r = symlink $old, $new if !$r && $!==EXDEV; - $r or die "(sym)link $old $new: $!"; + $r or fail "(sym)link $old $new: $!\n"; } sub hashfile ($) { -- cgit v1.2.3 From 73806a4b22c2265bac6a269bd5ba8abc81f88ae1 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 1 Oct 2018 15:30:20 +0100 Subject: Dgit.pm: Improve message for control file parse failure Use fail rather than die. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index fc146a3..80b693b 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -630,7 +630,7 @@ sub parsecontrolfh ($$;$) { my %opts = ('name' => $desc); $opts{allow_pgp}= $allowsigned || !$dpkgcontrolhash_noissigned; $c = Dpkg::Control::Hash->new(%opts); - $c->parse($fh,$desc) or die "parsing of $desc failed"; + $c->parse($fh,$desc) or fail "parsing of $desc failed"; last if $allowsigned; last if $dpkgcontrolhash_noissigned; my $issigned= $c->get_option('is_pgp_signed'); -- cgit v1.2.3 From 59963a27a72cbe610c0b234df144a825ec8f0536 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 1 Oct 2018 15:32:47 +0100 Subject: Dgit.pm: Split here doc for reflog cache commit message (nfc) This will make the translation markup auditable. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 80b693b..941bcdc 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -737,12 +737,13 @@ sub reflog_cache_insert ($$$) { # git update-ref doesn't always update, in this case. *sigh* my $authline = (ucfirst _us()). ' <'._us().'@example.com> 1000000000 +0000'; - my $dummy = make_commit_text < Date: Mon, 1 Oct 2018 15:37:35 +0100 Subject: Dgit.pm: parsecontrol: Improve error message for failed open Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 941bcdc..5a13e0a 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -651,7 +651,7 @@ sub parsecontrolfh ($$;$) { sub parsecontrol { my ($file, $desc, $allowsigned) = @_; my $fh = new IO::Handle; - open $fh, '<', $file or die "$file: $!"; + open $fh, '<', $file or fail "open $file ($desc): $!"; my $c = parsecontrolfh($fh,$desc,$allowsigned); $fh->error and confess $!; close $fh; -- cgit v1.2.3 From 0ea97311cfdf6951ed31138fc1899ebde45d7223 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 1 Oct 2018 15:28:52 +0100 Subject: i18n: Dgit.pm: mark final batch of messages (2) Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 5a13e0a..004daeb 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -541,8 +541,8 @@ sub git_check_unmodified () { if ($?==256) { fail $cached - ? "git index contains changes (does not match HEAD)" - : "working tree is dirty (does not match HEAD)"; + ? __ "git index contains changes (does not match HEAD)" + : __ "working tree is dirty (does not match HEAD)"; } else { failedcmd @cmd; } @@ -613,8 +613,8 @@ sub gdr_ffq_prev_branchinfo ($) { # branch message is undef # weird-symref } no $symref, # notbranch } no $ffq_prev - return ('detached', 'detached HEAD') unless defined $symref; - return ('weird-symref', 'HEAD symref is not to refs/') + return ('detached', __ 'detached HEAD') unless defined $symref; + return ('weird-symref', __ 'HEAD symref is not to refs/') unless $symref =~ m{^refs/}; my $ffq_prev = "refs/$ffq_refprefix/$'"; my $gdrlast = "refs/$gdrlast_refprefix/$'"; @@ -630,7 +630,7 @@ sub parsecontrolfh ($$;$) { my %opts = ('name' => $desc); $opts{allow_pgp}= $allowsigned || !$dpkgcontrolhash_noissigned; $c = Dpkg::Control::Hash->new(%opts); - $c->parse($fh,$desc) or fail "parsing of $desc failed"; + $c->parse($fh,$desc) or fail f_ "parsing of %s failed", $desc; last if $allowsigned; last if $dpkgcontrolhash_noissigned; my $issigned= $c->get_option('is_pgp_signed'); @@ -638,9 +638,11 @@ sub parsecontrolfh ($$;$) { $dpkgcontrolhash_noissigned= 1; seek $fh, 0,0 or confess "seek $desc: $!"; } elsif ($issigned) { - fail "control file $desc is (already) PGP-signed. ". + fail f_ + "control file %s is (already) PGP-signed. ". " Note that dgit push needs to modify the .dsc and then". - " do the signature itself"; + " do the signature itself", + $desc; } else { last; } @@ -651,7 +653,7 @@ sub parsecontrolfh ($$;$) { sub parsecontrol { my ($file, $desc, $allowsigned) = @_; my $fh = new IO::Handle; - open $fh, '<', $file or fail "open $file ($desc): $!"; + open $fh, '<', $file or fail f_ "open %s (%s): %s", $file, $desc, $!; my $c = parsecontrolfh($fh,$desc,$allowsigned); $fh->error and confess $!; close $fh; @@ -737,7 +739,7 @@ sub reflog_cache_insert ($$$) { # git update-ref doesn't always update, in this case. *sigh* my $authline = (ucfirst _us()). ' <'._us().'@example.com> 1000000000 +0000'; - my $dummy = make_commit_text < Date: Tue, 2 Oct 2018 13:31:16 +0100 Subject: Dgit.pm: reflog_cache_lookup: Replace `confess' with `die' after exec With `confess' after `exec', perl complains Statement unlikely to be reached at /usr/share/perl5/Debian/Dgit.pm line 770. (Maybe you meant system() when you said exec()?) The error message's suggestion is not right here - what is wrong is that confess is not really appropriate in the child in this way. Replace it with die, using a better error string. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Debian') diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 004daeb..39c4598 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -767,7 +767,7 @@ sub reflog_cache_lookup ($$) { printdebug ">(no reflog)\n"; finish 0; } - exec @cmd; confess $!; + exec @cmd; die f_ "exec %s: %s\n", $cmd[0], $!; } while () { chomp; -- cgit v1.2.3