diff options
author | doy <doy@tozt.net> | 2009-01-05 20:19:13 -0500 |
---|---|---|
committer | doy <doy@tozt.net> | 2009-01-05 20:19:13 -0500 |
commit | 4d1988514edca781d5772113b51a81fd1132b7bd (patch) | |
tree | 6a6479fe7bc2d4ddd2abc971f045cc12c73867b3 /irssi | |
parent | be232b96227af0831a4bddf07885079c3e50590a (diff) | |
download | conf-4d1988514edca781d5772113b51a81fd1132b7bd.tar.gz conf-4d1988514edca781d5772113b51a81fd1132b7bd.zip |
add /trackbar command to irssi to scroll back to the trackbar position (thanks billnye)
Diffstat (limited to 'irssi')
-rw-r--r-- | irssi/scripts/trackbar.pl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/irssi/scripts/trackbar.pl b/irssi/scripts/trackbar.pl index 7123330..1a2ad8f 100644 --- a/irssi/scripts/trackbar.pl +++ b/irssi/scripts/trackbar.pl @@ -81,6 +81,7 @@ use strict; use 5.6.1; use Irssi; use Irssi::TextUI; +use POSIX qw(strftime); my $VERSION = "1.4"; @@ -176,6 +177,18 @@ Irssi::signal_add_first( 'session save' => sub { } ); +sub goto_trackbar { + + my $window = Irssi::active_win(); + my $line = $window->view()->get_bookmark('trackbar'); + + if ($line) { + $window->command("scrollback goto ". strftime("%d %H:%M:%S", localtime($line->{'info'}->{'time'}))); + } else { + $window->printformat(MSGLEVEL_CLIENTCRAP, 'trackbar_not_found'); + } +} + sub cmd_mark { my $window = Irssi::active_win(); # return unless defined $window; @@ -186,4 +199,17 @@ sub cmd_mark { Irssi::command("redraw"); } +sub trackbar_runsub { + + my ($data, $server, $item) = @_; + $data =~ s/\s+$//g; + + if ($data) { + Irssi::command_runsub('trackbar', $data, $server, $item); + } else { + goto_trackbar(); + } +} + +Irssi::command_bind('trackbar', 'trackbar_runsub'); Irssi::command_bind('mark', 'cmd_mark'); |