]> Lady’s Gitweb - Gitweb/commitdiff
gitweb: use a hash to lookup the sub for an action
authorMatthias Lederhofer <redacted>
Mon, 31 Jul 2006 21:46:25 +0000 (23:46 +0200)
committerLady <redacted>
Mon, 6 Apr 2026 04:05:46 +0000 (00:05 -0400)
Signed-off-by: Matthias Lederhofer <redacted>
Signed-off-by: Junio C Hamano <redacted>
gitweb.cgi

index 9ef28821e4b4262746d23a96dd23e6b58716271d05c636ac12a5a4238649f649..fc724cebe7ba5f767bdd5ad92b4f13a53028b94c1c2436e09395a6cd9b7d91c7 100755 (executable)
@@ -161,65 +161,34 @@ if (defined $searchtext) {
 }
 
 # dispatch
-if (!defined $action || $action eq "summary") {
-       git_summary();
-       exit;
-} elsif ($action eq "heads") {
-       git_heads();
-       exit;
-} elsif ($action eq "tags") {
-       git_tags();
-       exit;
-} elsif ($action eq "blob") {
-       git_blob();
-       exit;
-} elsif ($action eq "blob_plain") {
-       git_blob_plain();
-       exit;
-} elsif ($action eq "tree") {
-       git_tree();
-       exit;
-} elsif ($action eq "rss") {
-       git_rss();
-       exit;
-} elsif ($action eq "commit") {
-       git_commit();
-       exit;
-} elsif ($action eq "log") {
-       git_log();
-       exit;
-} elsif ($action eq "blobdiff") {
-       git_blobdiff();
-       exit;
-} elsif ($action eq "blobdiff_plain") {
-       git_blobdiff_plain();
-       exit;
-} elsif ($action eq "commitdiff") {
-       git_commitdiff();
-       exit;
-} elsif ($action eq "commitdiff_plain") {
-       git_commitdiff_plain();
-       exit;
-} elsif ($action eq "history") {
-       git_history();
-       exit;
-} elsif ($action eq "search") {
-       git_search();
-       exit;
-} elsif ($action eq "shortlog") {
-       git_shortlog();
-       exit;
-} elsif ($action eq "tag") {
-       git_tag();
-       exit;
-} elsif ($action eq "blame") {
-       git_blame2();
-       exit;
-} else {
+my %actions = (
+       "blame" => \&git_blame2,
+       "blobdiff" => \&git_blobdiff,
+       "blobdiff_plain" => \&git_blobdiff_plain,
+       "blob" => \&git_blob,
+       "blob_plain" => \&git_blob_plain,
+       "commitdiff" => \&git_commitdiff,
+       "commitdiff_plain" => \&git_commitdiff_plain,
+       "commit" => \&git_commit,
+       "heads" => \&git_heads,
+       "history" => \&git_history,
+       "log" => \&git_log,
+       "rss" => \&git_rss,
+       "search" => \&git_search,
+       "shortlog" => \&git_shortlog,
+       "summary" => \&git_summary,
+       "tag" => \&git_tag,
+       "tags" => \&git_tags,
+       "tree" => \&git_tree,
+);
+
+$action = 'summary' if (!defined($action));
+if (!defined($actions{$action})) {
        undef $action;
        die_error(undef, "Unknown action.");
-       exit;
 }
+$actions{$action}->();
+exit;
 
 ## ======================================================================
 ## validation, quoting/unquoting and escaping
This page took 0.258553 seconds and 4 git commands to generate.