aboutsummaryrefslogtreecommitdiff
path: root/i3-dmenu-desktop
diff options
context:
space:
mode:
authorMichael Stapelberg <michael@stapelberg.de>2014-05-15 22:52:18 +0200
committerMichael Stapelberg <michael@stapelberg.de>2014-05-15 22:52:35 +0200
commit0d50658fa79582cca6df15058bb966d5da30296a (patch)
tree7dd58b47444cf4eaf5eb55b96ca5b89afea96c7c /i3-dmenu-desktop
parentb69b3fc572ac91ad93b635938d871126cdd5b349 (diff)
downloadi3-0d50658fa79582cca6df15058bb966d5da30296a.tar.gz
i3-0d50658fa79582cca6df15058bb966d5da30296a.zip
i3-dmenu-desktop: don’t use smartmatch (it’s experimental)
This commit should not change functionality at all (famous last words).
Diffstat (limited to 'i3-dmenu-desktop')
-rwxr-xr-xi3-dmenu-desktop20
1 files changed, 12 insertions, 8 deletions
diff --git a/i3-dmenu-desktop b/i3-dmenu-desktop
index 1b66ed41..4a2371e2 100755
--- a/i3-dmenu-desktop
+++ b/i3-dmenu-desktop
@@ -1,7 +1,7 @@
#!/usr/bin/env perl
# vim:ts=4:sw=4:expandtab
#
-# © 2012-2013 Michael Stapelberg
+# © 2012-2014 Michael Stapelberg
#
# No dependencies except for perl ≥ v5.10
@@ -55,8 +55,12 @@ my $result = GetOptions(
die "Could not parse command line options" unless $result;
# Filter entry types and set default type(s) if none selected
-my @valid_types = ('name', 'command', 'filename');
-@entry_types = grep { $_ ~~ @valid_types } @entry_types;
+my $valid_types = {
+ name => 1,
+ command => 1,
+ filename => 1,
+};
+@entry_types = grep { exists($valid_types->{$_}) } @entry_types;
@entry_types = ('name', 'command') unless @entry_types;
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
@@ -257,7 +261,7 @@ for my $app (keys %apps) {
}
}
- if ('name' ~~ @entry_types) {
+ if ((scalar grep { $_ eq 'name' } @entry_types) > 0) {
if (exists($choices{$name})) {
# There are two .desktop files which contain the same “Name” value.
# I’m not sure if that is allowed to happen, but we disambiguate the
@@ -273,22 +277,22 @@ for my $app (keys %apps) {
$choices{$name} = $app;
}
- if ('command' ~~ @entry_types) {
+ if ((scalar grep { $_ eq 'command' } @entry_types) > 0) {
my ($command) = split(' ', $apps{$app}->{Exec});
# Don’t add “geany” if “Geany” is already present.
my @keys = map { lc } keys %choices;
- next if lc(basename($command)) ~~ @keys;
+ next if (scalar grep { $_ eq lc(basename($command)) } @keys) > 0;
$choices{basename($command)} = $app;
}
- if ('filename' ~~ @entry_types) {
+ if ((scalar grep { $_ eq 'filename' } @entry_types) > 0) {
my $filename = basename($app, '.desktop');
# Don’t add “geany” if “Geany” is already present.
my @keys = map { lc } keys %choices;
- next if lc($filename) ~~ @keys;
+ next if (scalar grep { $_ eq lc($filename) } @keys) > 0;
$choices{$filename} = $app;
}