Fixed my tab width, and made the code more readable
--- ./Kernel/Core/Foundation/Convert.cs.old	2008-01-11 11:44:25.000000000 -0500
+++ ./Kernel/Core/Foundation/Convert.cs	2008-01-11 11:41:49.000000000 -0500
@@ -2,8 +2,8 @@
 // (C) 2007 The SharpOS Project Team (http://www.sharpos.org)
 //
 // Authors:
-//	William Lahti <[EMAIL PROTECTED]>
-//	Bruce Markham <[EMAIL PROTECTED]>
+//        William Lahti <[EMAIL PROTECTED]>
+//        Bruce Markham <[EMAIL PROTECTED]>
 //
 // Licensed under the terms of the GNU GPL v3,
 //  with Classpath Linking Exception for Libraries
@@ -11,77 +11,223 @@
 
 using System;
 using SharpOS.Kernel.Foundation;
+using SharpOS.Kernel.ADC;
 
 namespace SharpOS.Kernel.Foundation {
-	public unsafe class Convert {
-		public unsafe static int ToByteString (string str, byte* buffer, int bufferLen, int offset)
-		{
-			if (offset + str.Length + 1 > bufferLen)
-				return -1;
+        public unsafe class Convert {
 
-			for (int x = 0; x < str.Length; ++x)
-				buffer [offset + x] = (byte) str [x];
-
-			return 0;
-		}
-
-		public unsafe static CString8* ToString (int value, bool hex)
-		{
-			byte* buffer = (byte*) ADC.MemoryManager.Allocate (64);
-
-			int l = ToString (value, hex, buffer, 64, 0);
-			CString8* result = ((CString8*)buffer)->Substring (0, l);
-
-			ADC.MemoryManager.Free ((void*) buffer);
-			return result;
-		}
-
-		public unsafe static int ToString (int value, bool hex, byte* buffer,
-						    int bufferLen, int offset)
-		{
-			uint uvalue = (uint) value;
-			ushort divisor = hex ? (ushort) 16 : (ushort) 10;
-			int length = 0;
-			int count = 0;
-			uint temp;
-			bool negative = false;
-
-			if (!hex && value < 0) {
-				count++;
-
-				uvalue = (uint) -value;
-			}
-
-			temp = uvalue;
-
-			do {
-				temp /= divisor;
-				count++;
-			}
-			while (temp != 0);
-
-			Diagnostics.Assert (offset + count < bufferLen, "Convert.ToString: buffer too small.");
-
-			length = count;
-
-			if (negative) {
-				buffer [offset++] = (byte) '-';
-				count--;
-			}
-
-			for (int i = 0; i < count; i++) {
-				uint remainder = uvalue % divisor;
-
-				if (remainder < 10)
-					buffer [offset + count - 1 - i] = (byte) ('0' + remainder);
-
-				else
-					buffer [offset + count - 1 - i] = (byte) ('A' + remainder - 10);
-
-				uvalue /= divisor;
-			}
-
-			return length;
-		}
-	}
+                
+                public unsafe static int ToByteString (string str, byte* buffer, int bufferLen, int offset)
+                {
+                        if (offset + str.Length + 1 > bufferLen)
+                                return -1;
+
+                        for (int x = 0; x < str.Length; ++x)
+                                buffer [offset + x] = (byte) str [x];
+
+                        return 0;
+                }
+
+                public unsafe static CString8* ToString (int value, bool hex)
+                {
+                        byte* buffer = (byte*) ADC.MemoryManager.Allocate (64);
+
+                        int l = ToString (value, hex, buffer, 64, 0);
+                        CString8* result = ((CString8*)buffer)->Substring (0, l);
+
+                        ADC.MemoryManager.Free ((void*) buffer);
+                        return result;
+                }
+
+                public unsafe static int ToString (int value, bool hex, byte* buffer,
+                                                    int bufferLen, int offset)
+                {
+                        uint uvalue = (uint) value;
+                        ushort divisor = hex ? (ushort) 16 : (ushort) 10;
+                        int length = 0;
+                        int count = 0;
+                        uint temp;
+                        bool negative = false;
+
+                        if (value < 0) {
+                                count++;
+                                uvalue = (uint) -value;
+                                negative = true;
+                        }
+
+                        temp = uvalue;
+
+                        do {
+                                temp /= divisor;
+                                count++;
+                        }
+                        while (temp != 0);
+
+                        Diagnostics.Assert (offset + count < bufferLen, "Convert.ToString: buffer too small.");
+
+                        length = count;
+
+                        if (negative) {
+                                buffer [offset++] = (byte) '-';
+                                count--;
+                        }
+
+                        for (int i = 0; i < count; i++) {
+                                uint remainder = uvalue % divisor;
+
+                                if (remainder < 10)
+                                        buffer [offset + count - 1 - i] = (byte) ('0' + remainder);
+
+                                else
+                                        buffer [offset + count - 1 - i] = (byte) ('A' + remainder - 10);
+
+                                uvalue /= divisor;
+                        }
+
+                        return length;
+                }
+
+#if LONG_ENABLED
+                public unsafe static int ToString (long value, bool hex, byte* buffer,
+                                                    int bufferLen, int offset)
+                {
+                        ulong uvalue = (ulong) value;
+                        ushort divisor = hex ? (ushort) 16 : (ushort) 10;
+                        int length = 0;
+                        int count = 0;
+                        ulong temp;
+                        bool negative = false;
+
+                        if (value < 0) {
+                                count++;
+                                uvalue = (ulong) -value;
+                                negative = true;
+                        }
+
+                        temp = uvalue;
+
+                        do {
+                                temp /= divisor;
+                                count++;
+                        }
+                        while (temp != 0);
+
+                        Diagnostics.Assert (offset + count < bufferLen, "Convert.ToString: buffer too small.");
+
+                        length = count;
+
+                        if (negative) {
+                                buffer [offset++] = (byte) '-';
+                                count--;
+                        }
+
+                        for (int i = 0; i < count; i++) {
+                                ulong remainder = uvalue % divisor;
+
+                                if (remainder < 10)
+                                        buffer [offset + count - 1 - i] = (byte) ('0' + remainder);
+
+                                else
+                                        buffer [offset + count - 1 - i] = (byte) ('A' + remainder - 10);
+
+                                uvalue /= divisor;
+                        }
+
+                        return length;
+                }
+
+                /// <summary>
+                /// Runs tests on the long to string conversions.
+                /// </summary>
+                public unsafe static void __Test2 ()
+                {
+                        long t1 = 105L;
+                        long t2 = -1805L;
+                        long t3 = 0x6FL;
+                        long t4 = -0x96AL;
+                        CString8* p1 = (CString8*)Stubs.CString("105"), p2 = (CString8*)Stubs.CString("-1805");
+                        CString8* p3 = (CString8*)Stubs.CString("6F"), p4 = (CString8*)Stubs.CString("-96A");
+
+                        
+                        if (!__StringComp(Convert.ToString(t1, false), p1))
+                                TextMode.WriteLine("Convert.ToString(long, bool) Failed Test:  105");
+
+                        if (!__StringComp(Convert.ToString(t2, false), p2))
+                                TextMode.WriteLine("Convert.ToString(long, bool) Failed Test:  -1805");
+
+                        if (!__StringComp(Convert.ToString(t3, true), p3))
+                                TextMode.WriteLine("Convert.ToString(long, bool) Failed Test:  0x6F");
+
+                        if (!__StringComp(Convert.ToString(t4, true), p4))
+                                TextMode.WriteLine("Convert.ToString(long, bool) Failed Test:  -0x96A");
+
+                }
+
+                public unsafe static CString8* ToString (long value, bool hex)
+                {
+                        byte* buffer = (byte*) ADC.MemoryManager.Allocate (128);
+
+                        int l = ToString (value, hex, buffer, 128, 0);
+                        CString8* result = ((CString8*)buffer)->Substring (0, l);
+
+                        ADC.MemoryManager.Free ((void*) buffer);
+                        return result;
+                }
+#else
+                public unsafe static void __Test2 ()
+                {
+                        TextMode.WriteLine("Convert.ToString(long, bool) Warning:  Long Is Not Enabled");
+                }
+#endif
+
+                internal unsafe static void __RunTests ()
+                {
+                        __Test1 ();
+                        __Test2 ();
+
+                }
+
+                /// <summary>
+                /// Runs tests on the int to string conversions.
+                /// </summary>
+                public unsafe static void __Test1 ()
+                {
+                        int t1 = 105;
+                        int t2 = -1805;
+                        int t3 = 0x6F;
+                        int t4 = -0x96A;
+                        CString8* p1 = (CString8*)Stubs.CString("105");
+                        CString8* p2 = (CString8*)Stubs.CString("-1805");
+                        CString8* p3 = (CString8*)Stubs.CString("6F")
+                        CString8* p4 = (CString8*)Stubs.CString("-96A");
+
+                        
+                        if (!__StringComp(Convert.ToString(t1, false), p1))
+                                TextMode.WriteLine("Convert.ToString(int, bool) Failed Test:  105");
+
+                        if (!__StringComp(Convert.ToString(t2, false), p2))
+                                TextMode.WriteLine("Convert.ToString(int, bool) Failed Test:  -1805");
+
+                        if (!__StringComp(Convert.ToString(t3, true), p3))
+                                TextMode.WriteLine("Convert.ToString(int, bool) Failed Test:  0x6F");
+
+                        if (!__StringComp(Convert.ToString(t4, true), p4))
+                                TextMode.WriteLine("Convert.ToString(int, bool) Failed Test:  -0x96A");
+
+                }
+
+
+                private unsafe static bool __StringComp(CString8* str1, CString8* str2)
+                {
+                        byte* s1 = (byte*)str1;
+                        byte* s2 = (byte*)str2;
+                        while (*s1 == *s2 && *s1 != 0 && *s2 != 0)
+                        {
+                                ++s1;
+                                ++s2;
+                        }
+
+                        return (*s1 == 0 & *s2 == 0);
+                }
+        }
 }
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
SharpOS-Developers mailing list
SharpOS-Developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

Reply via email to