From: Simon Ruderich Date: Fri, 12 Feb 2016 00:06:14 +0000 (+0100) Subject: use helper function to reduce duplication in mappings X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;h=8f48f9a3b5c110341dec7fd65a488b92b6d8093a;p=fcscs%2Ffcscs.git use helper function to reduce duplication in mappings --- diff --git a/bin/fcscs b/bin/fcscs index 0675def..582d194 100755 --- a/bin/fcscs +++ b/bin/fcscs @@ -753,29 +753,23 @@ The following normal modes are available: =back =cut -sub mapping_mode_path { - my ($key, $screen, $config, $input) = @_; +sub mapping_mode_helper { + my ($name, $select, $key, $screen, $config, $input) = @_; - $screen->debug('mapping_mode_path', 'started'); + $screen->debug("mapping_mode_$name", 'started'); - my @matches = get_regex_matches($input, $config->{regex}{path}); + my @matches = get_regex_matches($input, $config->{regex}{$name}); return { - select => 'path select', + select => $select, matches => \@matches, - handler => $config->{handler}{path}, + handler => $config->{handler}{$name}, }; } +sub mapping_mode_path { + return mapping_mode_helper('path', 'path select', @_); +} sub mapping_mode_url { - my ($key, $screen, $config, $input) = @_; - - $screen->debug('mapping_mode_url', 'started'); - - my @matches = get_regex_matches($input, $config->{regex}{url}); - return { - select => 'url select', - matches => \@matches, - handler => $config->{handler}{url}, - }; + return mapping_mode_helper('url', 'url select', @_); } sub mapping_mode_ip { my ($key, $screen, $config, $input) = @_; @@ -791,16 +785,7 @@ sub mapping_mode_ip { }; } sub mapping_mode_checksum { - my ($key, $screen, $config, $input) = @_; - - $screen->debug('mapping_mode_checksum', 'started'); - - my @matches = get_regex_matches($input, $config->{regex}{checksum}); - return { - select => 'checksum select', - matches => \@matches, - handler => $config->{handler}{checksum}, - }; + return mapping_mode_helper('checksum', 'checksum select', @_); } =head2 SEARCH MODE (AND EXTEND MODE)