html/tab_stop.pl
1 #!/usr/bin/perl
2 #
3 # Created by Stefan "tommie" Tomanek [stefan@kann-nix.org]
4 # to free the world from the evil inverted I
5 #
6 # 23.02.2002
7 # *First release
8 #
9 # 01.03.200
10 # *Changed to GPL
11
12 use strict;
13 use vars qw($VERSION %IRSSI);
14 use Irssi;
15
16 $VERSION = "2002123102";
17 %IRSSI = (
18 authors => "Stefan 'tommie' Tomanek",
19 contact => "stefan\@pico.ruhr.de",
20 name => "tab_stop",
21 description => "This script replaces the evil inverted 'I' with a configurable number of whitespaces ",
22 license => "GPLv2",
23 changed => "$VERSION",
24 );
25
26 sub event_server_incoming {
27 my ($server, $data) = @_;
28 my $newdata;
29 if (has_tab($data)) {
30 $newdata = replace_tabs($data);
31 Irssi::signal_continue($server, $newdata);
32 }
33 }
34
35 # FIXME Experimental!
36 sub sig_gui_print_text {
37 my ($win, $fg, $bg, $flags, $text, $dest) = @_;
38 return unless $text =~ /\t/;
39 my $newtext = replace_tabs($text);
40 Irssi::signal_continue($win, $fg, $bg, $flags, $newtext, $dest);
41 }
42
43 sub has_tab {
44 my ($text) = @_;
45 return $text =~ /\t/;
46 }
47
48 sub replace_tabs {
49 my ($text) = @_;
50 my $replacement = Irssi::settings_get_str('tabstop_replacement');
51 $text =~ s/\t/$replacement/g;
52 return($text);
53 }
54
55 #Irssi::signal_add('gui print text', \&sig_gui_print_text);
56 Irssi::signal_add_first('server incoming', \&event_server_incoming);
57
58 Irssi::settings_add_str('misc', 'tabstop_replacement', " ");
59