summaryrefslogtreecommitdiffstats
path: root/scripts/tab_stop.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/tab_stop.pl')
-rw-r--r--scripts/tab_stop.pl59
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', " ");
+