]> ruderich.org/simon Gitweb - fcscs/fcscs.git/blobdiff - bin/fcscs
use helper function to reduce duplication in mappings
[fcscs/fcscs.git] / bin / fcscs
index 0675def809dd771be3f7e1aee0eebb8e05bc95c8..582d194c7a47fd86011650f79eef9dd8046512c8 100755 (executable)
--- 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)