aboutsummaryrefslogtreecommitdiff
path: root/reselect
diff options
context:
space:
mode:
Diffstat (limited to 'reselect')
-rw-r--r--reselect19
1 files changed, 11 insertions, 8 deletions
diff --git a/reselect b/reselect
index fd2193d..1a7d8e2 100644
--- a/reselect
+++ b/reselect
@@ -97,14 +97,8 @@ sub build_overlays {
sub on_action {
my ($self, $cmd) = @_;
- my $pattern;
- if ($cmd eq 'url') {
- $pattern = $re_url;
- } elsif ($cmd eq 'git_hash') {
- $pattern = $re_git_hash;
- } elsif ($cmd eq 'message_id') {
- $pattern = $re_message_id;
- } else {
+ my $pattern = $self->{patterns}->{$cmd};
+ if (!defined($pattern)) {
return;
}
@@ -277,4 +271,13 @@ sub on_start {
$self->{launchsingle} = ($self->my_resource("launchsingle") ne "false");
$self->{descending} = ($self->my_resource("order") eq "descending");
$self->{url_picker} = ();
+
+ my $patterns = {
+ url => $re_url,
+ git_hash => $re_git_hash,
+ message_id => $re_message_id,
+ };
+
+ $self->{patterns} = $patterns;
+
}