--- plugins_base/Plus.py	2008-02-28 00:30:19.000000000 +0100
+++ plugins_base/Plus.py.patched	2008-02-28 00:31:28.000000000 +0100
@@ -37,10 +37,14 @@
 '000047','06502f','1c5300','544d05')
 
 colorCodesHex = re.compile('\[[cC]=#([0-9A-Fa-f]{6})\](.*?)\[/[cC]\]')
+colorCodesHexGradient = re.compile('\[[cC]=#([0-9A-Fa-f]{6})\](.*?)\[/[cC]=([0-9]{1,2}|#[0-9A-Fa-f]{6})\]')
 colorCodesCode = re.compile('\[[cC]=([0-9]{1,2})\](.*?)\[/[cC]\]')
+colorCodesCodeGradient = re.compile('\[[cC]=([0-9]{1,2})\](.*?)\[/[cC]=([0-9]{1,2}|#[0-9A-Fa-f]{6})\]')
 
 backColorCodesHex = re.compile('\[[aA]=#([0-9A-Fa-f]{6})\](.*?)\[/[aA]\]')
+backColorCodesHexGradient = re.compile('\[[aA]=#([0-9A-Fa-f]{6})\](.*?)\[/[aA]=([0-9]{1,2}|#[0-9A-Fa-f]{6})\]')
 backColorCodesCode = re.compile('\[[aA]=([0-9]{1,2})\](.*?)\[/[aA]\]')
+backColorCodesCodeGradient = re.compile('\[[aA]=([0-9]{1,2})\](.*?)\[/[aA]=([0-9]{1,2}|#[0-9A-Fa-f]{6})\]')
 
 #colorIrcCode = re.compile("\xc2\xb7\$([0-9]{1,2}),([0-9]{1,2})|·\$([0-9]{1,2}).*?")
 colorIrcCode = re.compile("\xc2\xb7\$([0-9]{1,2})?,?([0-9]{1,2})?")
@@ -65,7 +69,7 @@
 
 span = re.compile('(<span.*?>)|(</span>)')
 
-removeList = (colorCodesHex, colorCodesCode, backColorCodesHex, backColorCodesCode)
+removeList = (colorCodesHex, colorCodesHexGradient, colorCodesCode, colorCodesCodeGradient, backColorCodesHex, backColorCodesHexGradient, backColorCodesCode, backColorCodesCodeGradient)
 
 getTagDict = {
     'background': ('background="#%s" ','background-color: #%s; '),
@@ -120,10 +124,14 @@
             text = q(formatIrc, tag, text)
 
         text = re.sub( colorCodesHex, self.hexToTag, text )
+        text = re.sub( colorCodesHexGradient, self.hexToTag, text )
         text = re.sub( colorCodesCode, self.codeToTag, text )
+        text = re.sub( colorCodesCodeGradient, self.codeToTag, text )
 
         text = re.sub( backColorCodesHex, self.bHexToTag, text )
+        text = re.sub( backColorCodesHexGradient, self.bHexToTag, text )
         text = re.sub( backColorCodesCode, self.bCodeToTag, text )
+        text = re.sub( backColorCodesCodeGradient, self.bCodeToTag, text )
         
         text = re.sub( colorIrcCode, self.ircCodeToTag, text ) 
 
@@ -174,11 +182,13 @@
             return text
         
     def hexToTag( self, data ):
-        color, text = data.groups()
+        color = data.group(1)
+        text = data.group(2)
         return self.getTag({'foreground': color.lower()}, text)
   
     def codeToTag( self, data ):
-        code, text = data.groups()
+        code = data.group(1)
+        text = data.group(2)
         if int(code) <= len(colorCodes):
             hex = colorCodes[int(code)].lower()
             return self.getTag({'foreground': hex}, text)
@@ -186,11 +196,13 @@
             return text
             
     def bHexToTag( self, data ):
-        color, text = data.groups()
+        color = data.group(1)
+        text = data.group(2)
         return self.getTag({'background': color.lower()}, text) 
         
     def bCodeToTag( self, data ):
-        code, text = data.groups()
+        code = data.group(1)
+        text = data.group(2)
         if int(code) <= len(colorCodes):
             hex = colorCodes[int(code)].lower()
             return self.getTag({'background': hex}, text)
