dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnetlib/System.Xml XmlConvert.cs,1.3,1.4 Xml


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/System.Xml XmlConvert.cs,1.3,1.4 XmlTextWriter.cs,1.15,1.16
Date: Fri, 14 Feb 2003 00:57:44 -0500

Update of /cvsroot/dotgnu-pnet/pnetlib/System.Xml
In directory subversions:/tmp/cvs-serv746/System.Xml

Modified Files:
        XmlConvert.cs XmlTextWriter.cs 
Log Message:


Fix some problems with the ECMA-compatible build.


Index: XmlConvert.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/System.Xml/XmlConvert.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** XmlConvert.cs       2 Dec 2002 03:14:31 -0000       1.3
--- XmlConvert.cs       14 Feb 2003 05:57:41 -0000      1.4
***************
*** 689,692 ****
--- 689,752 ----
                        }
  
+       // Characters to use to encode 6-bit values in base64.
+       internal const String base64Chars =
+               
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ 
+       // Convert a byte buffer into a base64 string.
+       internal static String ToBase64String
+                               (byte[] inArray, int offset, int length)
+                       {
+                               // Validate the parameters.
+                               if(inArray == null)
+                               {
+                                       throw new 
ArgumentNullException("inArray");
+                               }
+                               if(offset < 0 || offset > inArray.Length)
+                               {
+                                       throw new ArgumentOutOfRangeException
+                                               ("offset", 
S._("ArgRange_Array"));
+                               }
+                               if(length < 0 || length > (inArray.Length - 
offset))
+                               {
+                                       throw new ArgumentOutOfRangeException
+                                               ("length", 
S._("ArgRange_Array"));
+                               }
+ 
+                               // Convert the bytes.
+                               StringBuilder builder =
+                                       new StringBuilder
+                                               ((int)(((((long)length) + 2L) * 
4L) / 3L));
+                               int bits = 0;
+                               int numBits = 0;
+                               String base64 = base64Chars;
+                               int size = length;
+                               while(size > 0)
+                               {
+                                       bits = (bits << 8) + inArray[offset++];
+                                       numBits += 8;
+                                       --size;
+                                       while(numBits >= 6)
+                                       {
+                                               numBits -= 6;
+                                               builder.Append(base64[bits >> 
numBits]);
+                                               bits &= ((1 << numBits) - 1);
+                                       }
+                               }
+                               length %= 3;
+                               if(length == 1)
+                               {
+                                       builder.Append(base64[bits << (6 - 
numBits)]);
+                                       builder.Append('=');
+                                       builder.Append('=');
+                               }
+                               else if(length == 2)
+                               {
+                                       builder.Append(base64[bits << (6 - 
numBits)]);
+                                       builder.Append('=');
+                               }
+ 
+                               // Finished.
+                               return builder.ToString();
+                       }
  }; // class XmlConvert
  

Index: XmlTextWriter.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/System.Xml/XmlTextWriter.cs,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -r1.15 -r1.16
*** XmlTextWriter.cs    18 Jan 2003 15:46:22 -0000      1.15
--- XmlTextWriter.cs    14 Feb 2003 05:57:41 -0000      1.16
***************
*** 362,366 ****
                                }
                
!                               WriteRaw(Convert.ToBase64String(buffer));
                        }
        
--- 362,366 ----
                                }
                
!                               WriteRaw(XmlConvert.ToBase64String(buffer, 
index, count));
                        }
        





reply via email to

[Prev in Thread] Current Thread [Next in Thread]