use helper function to reduce duplication in mappings
authorSimon Ruderich <simon@ruderich.org>
Fri, 12 Feb 2016 00:11:54 +0000 (01:11 +0100)
committerSimon Ruderich <simon@ruderich.org>
Fri, 12 Feb 2016 00:11:54 +0000 (01:11 +0100)
bin/fcscs

index 582d194c7a47fd86011650f79eef9dd8046512c8..e0c8cb1a05d42eb6e38a678311972626c6b1c086 100755 (executable)
--- a/bin/fcscs
+++ b/bin/fcscs
@@ -682,54 +682,43 @@ sub extend_match {
 }
 
 
-sub mapping_paste {
-    my ($key, $screen, $config, $input) = @_;
+sub mapping_state_helper {
+    my ($name, $flags, $key, $screen, $config, $input) = @_;
 
-    $screen->debug('mapping_paste', 'started');
+    $screen->debug("mapping_$name", 'started');
 
-    $config->{state}{handler} = $config->{handler}{paste};
+    $config->{state}{handler} = $config->{handler}{$name};
 
-    $screen->prompt(flags => 'P'); # paste
+    $screen->prompt(flags => $flags);
     $screen->draw_prompt($config);
     $screen->refresh;
 
     return {};
 }
-sub mapping_paste_now {
-    my ($key, $screen, $config, $input) = @_;
+sub mapping_state_now_helper {
+    my ($name, $key, $screen, $config, $input) = @_;
 
-    $screen->debug('mapping_paste_now', 'started');
+    $screen->debug("mapping_${name}_now", 'started');
 
-    $config->{state}{handler} = $config->{handler}{paste};
+    $config->{state}{handler} = $config->{handler}{$name};
 
     return {
         select_match => 1,
     };
 }
 
-sub mapping_yank {
-    my ($key, $screen, $config, $input) = @_;
-
-    $screen->debug('mapping_yank', 'started');
-
-    $config->{state}{handler} = $config->{handler}{yank};
-
-    $screen->prompt(flags => 'Y'); # yank
-    $screen->draw_prompt($config);
-    $screen->refresh;
+sub mapping_paste {
+    return mapping_state_helper('paste', 'P', @_);
+}
+sub mapping_paste_now {
+    return mapping_state_now_helper('paste', @_);
+}
 
-    return {};
+sub mapping_yank {
+    return mapping_state_helper('yank', 'Y', @_);
 }
 sub mapping_yank_now {
-    my ($key, $screen, $config, $input) = @_;
-
-    $screen->debug('mapping_yank_now', 'started');
-
-    $config->{state}{handler} = $config->{handler}{yank};
-
-    return {
-        select_match => 1,
-    };
+    return mapping_state_now_helper('yank', @_);
 }