From 86557c9811d800c38d24ad1f5c944e75260a57ad Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Fri, 12 Feb 2016 01:11:54 +0100 Subject: [PATCH] use helper function to reduce duplication in mappings --- bin/fcscs | 47 ++++++++++++++++++----------------------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/bin/fcscs b/bin/fcscs index 582d194..e0c8cb1 100755 --- 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', @_); } -- 2.45.2