diff options
| author | Teddy Wing | 2017-12-16 21:14:55 +0100 |
|---|---|---|
| committer | Teddy Wing | 2017-12-16 21:14:55 +0100 |
| commit | 471af2ce8aa3e152336761b2c618f673f2c0adf8 (patch) | |
| tree | daa99e31ae1ddcbca8375b753ac564a4c14e7d39 | |
| parent | 944625d9a600d1f70ce5026437856b7eb97b2074 (diff) | |
| download | irssi-vimput-471af2ce8aa3e152336761b2c618f673f2c0adf8.tar.bz2 | |
Use separate `Irssi::input_add` handlers for command & input
Instead of handling both commands and text input in the same subroutine,
use separate ones so we can keep the code more isolated and handle the
subseqent actions differently.
| -rw-r--r-- | vimput.pl | 24 |
1 files changed, 17 insertions, 7 deletions
@@ -241,7 +241,7 @@ else { $p2 = Irssi::input_add( fileno $fuckface, Irssi::INPUT_READ, - \&pipe_input, + \&pipe_open_tmux_split, \@ar2, ); } @@ -254,12 +254,22 @@ sub pipe_input { my $input = <$read_handle>; - if (index($input, VIMPUT_IPC_COMMAND_PREFIX) == 0) { - print substr $input, length(VIMPUT_IPC_COMMAND_PREFIX); - } - else { - print 'I: ' . $input; - } + print 'I: ' . $input; + + # TODO: Add $forked to not spawn more than one children unnecessarily + + close $read_handle; + Irssi::input_remove($$pipe_tag); +} + + +sub pipe_open_tmux_split { + my ($args) = @_; + my ($read_handle, $pipe_tag) = @$args; + + my $input = <$read_handle>; + + print 'C: ' . $input; # TODO: Add $forked to not spawn more than one children unnecessarily |
