From: Simon Ruderich Date: Fri, 12 Feb 2016 00:11:54 +0000 (+0100) Subject: use helper function to reduce duplication in mappings X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;h=86557c9811d800c38d24ad1f5c944e75260a57ad;p=fcscs%2Ffcscs.git use helper function to reduce duplication in mappings --- 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', @_); }