summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NetIRC.patch145
1 files changed, 145 insertions, 0 deletions
diff --git a/NetIRC.patch b/NetIRC.patch
new file mode 100644
index 0000000..579bdb9
--- /dev/null
+++ b/NetIRC.patch
@@ -0,0 +1,145 @@
+diff -Naur Net_old/IRC/Connection.pm Net/IRC/Connection.pm
+--- Net_old/IRC/Connection.pm 2003-12-05 01:50:16.000000000 +0300
++++ Net/IRC/Connection.pm 2012-08-21 11:20:55.000000000 +0400
+@@ -866,6 +866,7 @@
+
+ print STDERR "<<< $line\n" if $self->{_debug};
+
++ $::lastline = $line; #this is so __WARN__ can print the last line received on IRC.
+ # Like the RFC says: "respond as quickly as possible..."
+ if ($line =~ /^PING/) {
+ $ev = (Net::IRC::Event->new( "ping",
+@@ -908,7 +909,12 @@
+ $type = lc $type;
+ # This should be fairly intuitive... (cperl-mode sucks, though)
+
+- if (defined $line and index($line, "\001") >= 0) {
++ # The order of this was changed by AfterDeath because a \x01 in a geco fucked shit up
++ if ($type eq "join" or $type eq "part" or
++ $type eq "mode" or $type eq "topic" or
++ $type eq "kick") {
++ $itype = "channel";
++ } elsif (defined $line and index($line, "\001") >= 0) {
+ $itype = "ctcp";
+ unless ($type eq "notice") {
+ $type = (($stuff[0] =~ tr/\#\&//) ? "public" : "msg");
+@@ -917,16 +923,12 @@
+ $itype = $type = (($stuff[0] =~ tr/\#\&//) ? "public" : "msg");
+ } elsif ($type eq "notice") {
+ $itype = "notice";
+- } elsif ($type eq "join" or $type eq "part" or
+- $type eq "mode" or $type eq "topic" or
+- $type eq "kick") {
+- $itype = "channel";
+ } elsif ($type eq "nick") {
+ $itype = "nick";
+ } else {
+ $itype = "other";
+ }
+-
++
+ # This goes through the list of ignored addresses for this message
+ # type and drops out of the sub if it's from an ignored hostmask.
+
+@@ -992,6 +994,24 @@
+ '',
+ $type,
+ $line);
++ } elsif ($type eq "account") { #these next 3 event hooks added by AfterDeath
++ $ev = Net::IRC::Event->new($type,
++ $from,
++ '',
++ $type,
++ @stuff);
++ } elsif ($type eq "cap") {
++ $ev = Net::IRC::Event->new($type,
++ $from,
++ '',
++ $type,
++ @stuff);
++ } elsif ($type eq "pong") {
++ $ev = Net::IRC::Event->new($type,
++ $from,
++ $self->{nick},
++ 'server',
++ $stuff[1]);
+ } else {
+ carp "Unknown event type: $type";
+ }
+@@ -1183,7 +1203,7 @@
+ }
+
+ my $buf = CORE::join '', @_;
+- my $length = $self->{_maxlinelen} - 11 - length($to);
++ my $length = $self->{_maxlinelen} - 80 - length($to);
+ my $line;
+
+ if (ref($to) =~ /^(GLOB|IO::Socket)/) {
+diff -Naur Net_old/IRC/Event.pm Net/IRC/Event.pm
+--- Net_old/IRC/Event.pm 2003-09-24 10:33:40.000000000 +0400
++++ Net/IRC/Event.pm 2012-08-21 11:03:42.000000000 +0400
+@@ -189,6 +189,16 @@
+ return $self->{'userhost'};
+ }
+
++#added by AfterDeath. Use this to reply to channel messages in channel, but private messages to the nick that sent it.
++sub replyto {
++ my $self = shift;
++ if ($self->{to}->[0] =~ /^#/) {
++ return $self->{to}->[0];
++ } else {
++ return $self->{nick};
++ }
++}
++
+ # Simple sub for translating server numerics to their appropriate names.
+ # Takes one arg: the number to be translated.
+ sub trans {
+@@ -266,6 +276,7 @@
+ 259 => "adminemail",
+ 261 => "tracelog",
+ 262 => "endoftrace", # 1997-11-24 -- archon
++ 263 => "rpl_tryagain",
+ 265 => "n_local", # 1997-10-16 -- tkil
+ 266 => "n_global", # 1997-10-16 -- tkil
+ 271 => "silelist", # Undernet Extension, Kajetan@Hinner.com, 17/10/98
+@@ -305,6 +316,7 @@
+ 322 => "list",
+ 323 => "listend",
+ 324 => "channelmodeis",
++ 328 => "channelurlis",
+ 329 => "channelcreate", # 1997-11-24 -- archon
+ 331 => "notopic",
+ 332 => "topic",
+@@ -353,6 +365,7 @@
+ 393 => "users",
+ 394 => "endofusers",
+ 395 => "nousers",
++ 396 => "hosthidden",
+
+ 401 => "nosuchnick",
+ 402 => "nosuchserver",
+@@ -451,8 +464,10 @@
+ 641 => "rpl_dumprpl", # UnrealIrcd, Hendrik Frenzel
+ 642 => "rpl_eodump", # UnrealIrcd, Hendrik Frenzel
+
++ 728 => "quietlist",
++ 729 => "quietlistend",
+ 999 => "numericerror", # Bahamut IRCD
+-
++ 'pong' => "pong",
+ );
+
+
+diff -Naur Net_old/IRC.pm Net/IRC.pm
+--- Net_old/IRC.pm 2009-12-27 04:57:24.000000000 +0300
++++ Net/IRC.pm 2012-08-21 11:14:27.000000000 +0400
+@@ -33,7 +33,7 @@
+ use strict;
+ use vars qw($VERSION);
+
+-$VERSION = "0.79";
++$VERSION = "0.80";
+
+ sub new {
+ my $proto = shift;