aboutsummaryrefslogtreecommitdiffstats
path: root/vim-mode
diff options
context:
space:
mode:
Diffstat (limited to 'vim-mode')
-rw-r--r--vim-mode/vim_mode.pl27
1 files changed, 25 insertions, 2 deletions
diff --git a/vim-mode/vim_mode.pl b/vim-mode/vim_mode.pl
index 58f402b..a8e1cbb 100644
--- a/vim-mode/vim_mode.pl
+++ b/vim-mode/vim_mode.pl
@@ -1100,13 +1100,36 @@ sub _commit_line {
return unless length $line; # ignore empty lines
+ my $server = Irssi::active_server();
+ my $win = Irssi::active_win();
+ my $witem = ref $win ? $win->{active} : undef;
+
+ my $context;
+ if (defined $witem) {
+ $context = $witem;
+ } elsif (defined $win) {
+ $context = $win;
+ } elsif (defined $server) {
+ $context = $server;
+ } else {
+ $context = undef;
+ }
+
if ($line =~ /^[\Q$cmdchars\E]/) {
print "Committing line as command" if DEBUG;
- Irssi::command($line);
+ if (defined $context) {
+ $context->command($line);
+ } else {
+ Irssi::command($line);
+ }
} else {
print "Committing line as text" if DEBUG;
- Irssi::command("/say $line");
+ if (defined $context) {
+ $context->command("/say $line");
+ } else {
+ Irssi::command("/say $line");
+ }
}
}