diff options
Diffstat (limited to 'scripts/tab_stop.pl')
| -rw-r--r-- | scripts/tab_stop.pl | 59 | 
1 files changed, 59 insertions, 0 deletions
| diff --git a/scripts/tab_stop.pl b/scripts/tab_stop.pl new file mode 100644 index 0000000..8039a34 --- /dev/null +++ b/scripts/tab_stop.pl @@ -0,0 +1,59 @@ +#!/usr/bin/perl +# +# Created by Stefan "tommie" Tomanek [stefan@kann-nix.org] +# to free the world from  the evil inverted I +# +# 23.02.2002 +# *First release +# +# 01.03.200 +# *Changed to GPL + +use strict; +use vars qw($VERSION %IRSSI); +use Irssi; + +$VERSION = "2002123102"; +%IRSSI = ( +    authors     => "Stefan 'tommie' Tomanek", +    contact     => "stefan\@pico.ruhr.de", +    name        => "tab_stop", +    description => "This script replaces the evil inverted 'I' with a configurable number of whitespaces ", +    license     => "GPLv2", +    changed     => "$VERSION", +); + +sub event_server_incoming { +    my ($server, $data) = @_; +    my $newdata; +    if (has_tab($data)) { +	$newdata = replace_tabs($data); +	Irssi::signal_continue($server, $newdata); +    } +} + +# FIXME Experimental! +sub sig_gui_print_text { +    my ($win, $fg, $bg, $flags, $text, $dest) = @_; +    return unless $text =~ /\t/; +    my $newtext = replace_tabs($text); +    Irssi::signal_continue($win, $fg, $bg, $flags, $newtext, $dest); +} + +sub has_tab { +    my ($text) = @_; +    return $text =~ /\t/; +} + +sub replace_tabs { +    my ($text) = @_; +    my $replacement = Irssi::settings_get_str('tabstop_replacement'); +    $text =~ s/\t/$replacement/g; +    return($text); +} + +#Irssi::signal_add('gui print text', \&sig_gui_print_text); +Irssi::signal_add_first('server incoming', \&event_server_incoming); + +Irssi::settings_add_str('misc', 'tabstop_replacement', "    "); + | 
