Răsfoiți Sursa

update nick tracking - fix possible error when using wildcards in another nick...

sbingner 25 ani în urmă
părinte
comite
29de5dc6a2
1 a modificat fișierele cu 12 adăugiri și 8 ștergeri
  1. 12 8
      pisg.pl

+ 12 - 8
pisg.pl

@@ -587,14 +587,18 @@ sub parse_file
                 } elsif (defined($newnick) && ($conf->{nicktracking} == 1)) {
                     my $lcnewnick = lc($newnick);
                     my $lcnick = lc($nick);
-                    unless (defined($alias{$lcnewnick})) {
-                        if (defined($alias{$lcnick}) && !defined($alias{$lcnewnick})) {
-                            $alias{$lcnewnick} = $alias{$lcnick};
-                        } elsif (defined($alias{$lcnewnick}) && !defined($alias{$lcnick})) {
-                            $alias{$lcnick} = $alias{$lcnewnick};
-                        } elsif ($nick =~ /Guest/) {
-                            $alias{$lcnick} = $newnick;
-                        } else {
+                    if ($lcnewnick eq lc(find_alias($newnick))) {
+                        if (!defined($alias{$lcnick})) {
+                            if (defined($alias{$lcnewnick})) {
+                                $alias{$lcnick} = $alias{$lcnewnick};
+                            } elsif ($nick =~ /Guest/) {
+                                $alias{$lcnick} = $newnick;
+                                $alias{$lcnewnick} = $newnick;
+                            } else {
+                                $alias{$lcnewnick} = $nick;
+                                $alias{$lcnick} = $nick;
+                            }
+                        } elsif (!defined($alias{$lcnewnick})) {
                             $alias{$lcnewnick} = $nick;
                         }
                     }