#LinuxGER

Re: sirc + farben

Matthias L Jugel (leo@mud.de)
Tue, 02 Dec 1997 22:55:54 -0100

Message-Id: <199712022155.WAA29339@tanis.first.gmd.de>
To: linuxger@infodrom.north.de
Subject: Re: sirc + farben
Date: Tue, 02 Dec 1997 22:55:54 -0100
From: Matthias L Jugel <leo@mud.de>

------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <29335.881099754.1@tanis.first.gmd.de>

Your message dated: Tue, 02 Dec 1997 19:51:45 +0100
>Hi...
>Wo wir gerade bei sirc-scripts sind, haette ich hier das passende
>Gegenstueck zu chancolor.pl von leo, nocolor.pl... fuer alle, die
>nocolor.irc von ircII vermissen :))
>Es sollte niemandem schwer fallen, das ding nachzuvollziehen...
>(wer ircII hat, aber nicht nocolor.irc hat, sollte es sich zulegen... es ist
>AEUSSERST praktisch ueberall, wo sich viele mIRC loser aufhalten.
>wer es nicht findet, dem kann ich es auch DCCen/FTPen/emailen...)
> -forcer

Meine vorige Mail ist wohl nur an forcer gegangen. Ich meinte,
dass seine Bemerkung richtig ist, von wegen color-spam.

Ich packe mal ne Version hinten dran, bei der noch ein bug
gefixed ist :-) und color-esc-codes werden rausgefiltert,
bevor ueberhaupt was mit den Meldungen vom Server gemacht
wird. Es geht halt wirklich nur darum auf lokaler Seite
eine Einfaerbung zu bekommen. Ich finds praktisch, ist aber
ne Geschmackssache.

Leo.

------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <29335.881099754.2@tanis.first.gmd.de>
Content-Description: Signature of Matthias L. Jugel

Matthias L. Jugel -- GMD FIRST Berlin Adlershof
Tel: +49 030 6392 1821 Email: leo@first.gmd.de
Es gibt zwei Arten von Narren. Der eine sagt: "Dies ist alt und
deshalb gut." Und der andere sagt: "Dies ist neu und deshalb besser."

------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <29335.881099754.3@tanis.first.gmd.de>
Content-Description: .sircrc.pl

# check for incoming spam (embedded esc-codes) and remove it
sub hook_raw {
local ($cmd, $args) = @_;
$_[1] =~ s/\[[^[]*m//g;
}
&addhook("raw_irc", "raw");

# allow for embedded colors, search for all color sequences before the
# expression (until we find ^[[0m or beginning of line) and return the
# resulting sequence.
sub pcolor {
local @line = reverse split /(\[[0-9]+m)/, shift;
local $str = "";
for (@line) {
last if /\[0m/;
$str = $_.$str if /\[[1-9]+m/;
}
return "$str";
}

# colorize a line splitted by an expression with the given color
sub colorize {
local ($str, $find, $subst, $color) = @_;
local @line = split(/($find)/i, $str);
return $str if $#line == 1;

$str = "";
local $prev = "";
for(@line) {
$_ =~ s/$subst/"$color$1".&pcolor($str)/ie;
$str .= $_;
}
return $str;
}

# colorize certain parts and respect underlying color
sub hook_expression {
&dostatus;
$_[0] = colorize($_[0], "[^]*", "([^]*)", "");
$_[0] = colorize($_[0], "[^]*", "([^]*)", "");
$_[0] = colorize($_[0], "[^]*", "([^]*)", "");
$_[0] = colorize($_[0], "$nick", "($nick)", "");
}
&addhook("print", "expression");

sub hook_self {
local ($nn, $msg) = @_;
if($nn =~ /$talkchannel/i) { $nn = ">"; }
else { $nn = "-> *$nn*"; }
&tell("$nn $msg");
$silent=1;
}
&addhook("send_text", "self");

sub hook_public {
local ($channel, $msg) = @_;
if($channel =~ /$talkchannel/i) {
&tell("<$who> $msg");
} else {
&tell("<$who:$channel> $msg");
}
$silent=1;
}
&addhook("public", "public");

sub hook_msg {
local $msg = shift;
&tell("*$who!$host* $msg");
$silent=1;
}
&addhook("msg", "msg");

------- =_aaaaaaaaaa0--


This archive was generated by hypermail 1.02.