Author: atsushi
Date: 2005-03-27 19:52:31 -0500 (Sun, 27 Mar 2005)
New Revision: 42298

Modified:
   trunk/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Rnc/ChangeLog
   trunk/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Rnc/RncTokenizer.cs
Log:
2005-03-28  Atsushi Enomoto <[EMAIL PROTECTED]>

        * RncTokenizer.cs : oops, so stupid hex computation.



Modified: trunk/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Rnc/ChangeLog
===================================================================
--- trunk/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Rnc/ChangeLog       
2005-03-28 00:44:44 UTC (rev 42297)
+++ trunk/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Rnc/ChangeLog       
2005-03-28 00:52:31 UTC (rev 42298)
@@ -1,5 +1,9 @@
 2005-03-28  Atsushi Enomoto <[EMAIL PROTECTED]>
 
+       * RncTokenizer.cs : oops, so stupid hex computation.
+
+2005-03-28  Atsushi Enomoto <[EMAIL PROTECTED]>
+
        * RncTokenizer.cs :
          Handle hexadecimal escaping (\x{...}) and triple-quot/apos literals.
          Quote literal didn't handle '...' as expected.

Modified: 
trunk/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Rnc/RncTokenizer.cs
===================================================================
--- trunk/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Rnc/RncTokenizer.cs 
2005-03-28 00:44:44 UTC (rev 42297)
+++ trunk/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Rnc/RncTokenizer.cs 
2005-03-28 00:52:31 UTC (rev 42298)
@@ -93,7 +93,7 @@
 
                // private methods
 
-               private int ReadEscapedHexNumber ()
+               private int ReadEscapedHexNumber (int current)
                {
                        int i = source.Read ();
                        switch (i) {
@@ -107,24 +107,27 @@
                        case '7':
                        case '8':
                        case '9':
-                               return (i - '0') * 16 + ReadEscapedHexNumber ();
+                               current = current * 16 + (i - '0');
+                               return ReadEscapedHexNumber (current);
                        case 'A':
                        case 'B':
                        case 'C':
                        case 'D':
                        case 'E':
                        case 'F':
-                               return (i - 'A' + 10) * 16 + 
ReadEscapedHexNumber ();
+                               current = current * 16 + (i - 'A') + 10;
+                               return ReadEscapedHexNumber (current);
                        case 'a':
                        case 'b':
                        case 'c':
                        case 'd':
                        case 'e':
                        case 'f':
-                               return (i - 'a' + 10) * 16 + 
ReadEscapedHexNumber ();
+                               current = current * 16 + (i - 'a' + 10);
+                               return ReadEscapedHexNumber (current);
                        }
                        peekChar = i;
-                       return 0;
+                       return current;
                }
 
                private int ReadFromStream ()
@@ -149,7 +152,7 @@
                                                peekString += (char) tmp;
                                        return '\\';
                                }
-                               ret = ReadEscapedHexNumber ();
+                               ret = ReadEscapedHexNumber (0);
                                if (peekChar != '}')
                                        break;
                                peekChar = 0;

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to