]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
Fix server casemap handling
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sat, 5 Aug 2006 11:33:29 +0000 (11:33 +0000)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sat, 5 Aug 2006 11:33:29 +0000 (11:33 +0000)
lib/rbot/irc.rb

index 6ef84eb0d64e1ed8e0603b9ee1d6a7d8e16cbcae..21c7226415e8519ddfd1aab2e2e8f07ac922f024 100644 (file)
@@ -176,14 +176,18 @@ module Irc
     # @server (if possible) or at the @casemap otherwise\r
     #\r
     def casemap\r
-      @server.casemap rescue @casemap\r
+      return @server.casemap if defined?(@server) and @server\r
+      return @casemap\r
     end\r
 \r
     # Returns a hash with the current @server and @casemap as values of\r
     # :server and :casemap\r
     #\r
     def server_and_casemap\r
-      {:server => @server, :casemap => @casemap}\r
+      h = {}\r
+      h[:server] = @server if defined?(@server) and @server\r
+      h[:casemap] = @casemap if defined?(@casemap) and @casemap\r
+      return h\r
     end\r
 \r
     # We allow up/downcasing with a different casemap\r
@@ -531,7 +535,7 @@ module Irc
     #\r
     def inspect\r
       str = "<#{self.class}:#{'0x%x' % self.object_id}:"\r
-      str << " @server=#{@server}" if @server\r
+      str << " @server=#{@server}" if defined?(@server) and @server\r
       str << " @nick=#{@nick.inspect} @user=#{@user.inspect}"\r
       str << " @host=#{@host.inspect} casemap=#{casemap.inspect}"\r
       str << ">"\r
@@ -1176,7 +1180,7 @@ module Irc
     #\r
     def reset_capabilities\r
       @supports = {\r
-        :casemapping => 'rfc1459',\r
+        :casemapping => 'rfc1459'.to_irc_casemap,\r
         :chanlimit => {},\r
         :chanmodes => {\r
           :typea => nil, # Type A: address lists\r
@@ -1269,9 +1273,9 @@ module Irc
           key = prekey.downcase.to_sym\r
         end\r
         case key\r
-        when :casemapping, :network\r
+        when :casemapping\r
           noval_warn(key, val) {\r
-            @supports[key] = val\r
+            @supports[key] = val.to_irc_casemap\r
           }\r
         when :chanlimit, :idchan, :maxlist, :targmax\r
           noval_warn(key, val) {\r
@@ -1281,15 +1285,6 @@ module Irc
               @supports[key][k] = v.to_i\r
             }\r
           }\r
-        when :maxchannels\r
-          noval_warn(key, val) {\r
-            reparse += "CHANLIMIT=(chantypes):#{val} "\r
-          }\r
-        when :maxtargets\r
-          noval_warn(key, val) {\r
-            @supports[key]['PRIVMSG'] = val.to_i\r
-            @supports[key]['NOTICE'] = val.to_i\r
-          }\r
         when :chanmodes\r
           noval_warn(key, val) {\r
             groups = val.split(',')\r
@@ -1312,6 +1307,19 @@ module Irc
         when :invex\r
           val ||= 'I'\r
           @supports[key] = val\r
+        when :maxchannels\r
+          noval_warn(key, val) {\r
+            reparse += "CHANLIMIT=(chantypes):#{val} "\r
+          }\r
+        when :maxtargets\r
+          noval_warn(key, val) {\r
+            @supports[key]['PRIVMSG'] = val.to_i\r
+            @supports[key]['NOTICE'] = val.to_i\r
+          }\r
+        when :network\r
+          noval_warn(key, val) {\r
+            @supports[key] = val\r
+          }\r
         when :nicklen\r
           noval_warn(key, val) {\r
             @supports[key] = val.to_i\r