gitweb: use a hash to lookup the sub for an action

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Matthias Lederhofer 2006-07-31 23:46:25 +02:00 коммит произвёл Junio C Hamano
Родитель 717b831178
Коммит 8e85cdc4ef
1 изменённых файлов: 25 добавлений и 56 удалений

Просмотреть файл

@ -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