summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2014-08-04 01:03:57 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2014-08-04 01:05:00 +0100
commita3522f3c05881c36b5630fc6aaa21dde22b5dd06 (patch)
tree328395a1134be2459ed25c13fe37af50bb6f5f17
parent8b67402e788511056cae31748a1ffafdabb4a9fb (diff)
Print better message for unknown operations.
-rw-r--r--debian/changelog1
-rwxr-xr-xdgit5
2 files changed, 5 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog
index e6764a4..8695a5f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -29,6 +29,7 @@ dgit (0.22~experimental1) experimental; urgency=low
* Fix a manpage reference to `--dget=' where `--dgit=' was intended.
* Provide t-archive-process-incoming and t-archive-query subroutines for
regression test scripts to use.
+ * Print better message for unknown operations.
Major new feature, currently stalled awaiting server infrastructure:
* dgit-repos-server: New program for receiving signed-tag-based
diff --git a/dgit b/dgit
index 4125c37..2852e13 100755
--- a/dgit
+++ b/dgit
@@ -2218,4 +2218,7 @@ if (!@ARGV) {
}
my $cmd = shift @ARGV;
$cmd =~ y/-/_/;
-{ no strict qw(refs); &{"cmd_$cmd"}(); }
+
+my $fn = ${*::}{"cmd_$cmd"};
+$fn or badusage "unknown operation $cmd";
+$fn->();