summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/printer/printerdrake.pm24
1 files changed, 3 insertions, 21 deletions
diff --git a/perl-install/printer/printerdrake.pm b/perl-install/printer/printerdrake.pm
index 04464b1bd..bca7ae3ff 100644
--- a/perl-install/printer/printerdrake.pm
+++ b/perl-install/printer/printerdrake.pm
@@ -637,26 +637,14 @@ sub setup_local_autoscan {
$printer->{currentqueue}{connect} =~ m/^file:/) {
# Non-HP or HP print-only device (HPOJ not used)
$device = $printer->{currentqueue}{connect};
- $device =~ s/^file://;
- foreach my $p (keys %{$menuentries}) {
- if ($device eq $menuentries->{$p}) {
- $menuchoice = $p;
- last;
- }
- }
+ $menuchoice = { reverse %$menuentries }->{$device}
} elsif ($printer->{configured}{$queue} &&
$printer->{currentqueue}{connect} =~ m!^ptal:/mlc:!) {
# HP multi-function device (controlled by HPOJ)
my $ptaldevice = $printer->{currentqueue}{connect};
$ptaldevice =~ s!^ptal:/mlc:!!;
if ($ptaldevice =~ /^par:(\d+)$/) {
- $device = "/dev/lp$1";
- foreach my $p (keys %{$menuentries}) {
- if ($device eq $menuentries->{$p}) {
- $menuchoice = $p;
- last;
- }
- }
+ $menuchoice = { reverse %$menuentries }->{"/dev/lp$1"}
} else {
my $make = lc($printer->{currentqueue}{make});
my $model = lc($printer->{currentqueue}{model});
@@ -674,13 +662,7 @@ sub setup_local_autoscan {
} elsif ($printer->{configured}{$queue} &&
$printer->{currentqueue}{connect} =~ m!^(socket|smb):/!) {
# Ethernet-(TCP/Socket)-connected printer or printer on Windows server
- $device = $printer->{currentqueue}{connect};
- foreach my $p (keys %{$menuentries}) {
- if ($device eq $menuentries->{$p}) {
- $menuchoice = $p;
- last;
- }
- }
+ $menuchoice = { reverse %$menuentries }->{$printer->{currentqueue}{connect}}
} else { $device = "" }
if ($menuchoice eq "" && @menuentrieslist > -1) {
$menuchoice = $menuentrieslist[0];