libidn-commit
[Top][All Lists]
Advanced

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

CVS libidn/csharp


From: libidn-commit
Subject: CVS libidn/csharp
Date: Tue, 13 Mar 2007 11:06:44 +0100

Update of /home/jas/self/public-cvs/libidn/csharp
In directory mocca:/home/jas/self/src/libidn/csharp

Modified Files:
        IDNA.cs IDNAException.cs NFKC.cs Punycode.cs 
        PunycodeException.cs Stringprep.cs StringprepException.cs 
        libidn.csproj libidn.csproj.user libidn.sln libidn.suo 
        libidn_PPC.suo 
Added Files:
        libidn.cmbx libidn.prjx 
Log Message:
Update, from Alexander Gnauck <address@hidden>.

--- /home/jas/self/public-cvs/libidn/csharp/IDNA.cs     2007/01/04 09:37:57     
1.3
+++ /home/jas/self/public-cvs/libidn/csharp/IDNA.cs     2007/03/13 10:06:44     
1.4
@@ -1,321 +1,305 @@
-/// <summary>
-/// Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-/// *
-/// Author: Alexander Gnauck AG-Software
-/// *
-/// This file is part of GNU Libidn.
-/// *
-/// This program is free software; you can redistribute it and/or
-/// modify it under the terms of the GNU General Public License as
-/// published by the Free Software Foundation; either version 2 of the
-/// License, or (at your option) any later version.
-/// *
-/// This program is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-/// General Public License for more details.
-/// *
-/// You should have received a copy of the GNU General Public License
-/// along with this program; if not, write to the Free Software
-/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-/// 02111-1307 USA.
-/// </summary>
-
-using System;
-
-namespace gnu.inet.encoding
-{
-       
-       public class IDNA
-       {
-               public const System.String ACE_PREFIX = "xn--";
-               
-               /// <summary> Converts a Unicode string to ASCII using the 
procedure in RFC3490
-               /// section 4.1. Unassigned characters are not allowed and STD3 
ASCII
-               /// rules are enforced. The input string may be a domain name
-               /// containing dots.
-               /// *
-               /// </summary>
-               /// <param name="input">Unicode string.
-               /// </param>
-               /// <returns> Encoded string.
-               /// 
-               /// </returns>
-               public static System.String toASCII(System.String input)
-               {
-                       System.Text.StringBuilder o = new 
System.Text.StringBuilder();
-                       System.Text.StringBuilder h = new 
System.Text.StringBuilder();
-                       
-                       for (int i = 0; i < input.Length; i++)
-                       {
-                               char c = input[i];
-                               if (c == '.' || c == '\u3002' || c == '\uff0e' 
|| c == '\uff61')
-                               {
-                                       o.Append(toASCII(h.ToString(), false, 
true));
-                                       o.Append(c);
-                                       h = new System.Text.StringBuilder();
-                               }
-                               else
-                               {
-                                       h.Append(c);
-                               }
-                       }
-                       o.Append(toASCII(h.ToString(), false, true));
-                       return o.ToString();
-               }
-               
-               /// <summary> Converts a Unicode string to ASCII using the 
procedure in RFC3490
-               /// section 4.1. Unassigned characters are not allowed and STD3 
ASCII
-               /// rules are enforced.
-               /// *
-               /// </summary>
-               /// <param name="input">Unicode string.
-               /// </param>
-               /// <param name="allowUnassigned">Unassigned characters, 
allowed or not?
-               /// </param>
-               /// <param name="useSTD3ASCIIRules">STD3 ASCII rules, enforced 
or not?
-               /// </param>
-               /// <returns> Encoded string.
-               /// 
-               /// </returns>
-               public static System.String toASCII(System.String input, bool 
allowUnassigned, bool useSTD3ASCIIRules)
-               {
-                       // Step 1: Check if the string contains code points 
outside
-                       //         the ASCII range 0..0x7c.
-                       
-                       bool nonASCII = false;
-                       
-                       for (int i = 0; i < input.Length; i++)
-                       {
-                               int c = input[i];
-                               if (c > 0x7f)
-                               {
-                                       nonASCII = true;
-                                       break;
-                               }
-                       }
-                       
-                       // Step 2: Perform the nameprep operation.
-                       
-                       if (nonASCII)
-                       {
-                               try
-                               {
-                                       input = Stringprep.nameprep(input, 
allowUnassigned);
-                               }
-                               catch (StringprepException e)
-                               {
-                                       // TODO 
-                                       throw new IDNAException(e);
-                               }
-                       }
-                       
-                       // Step 3: - Verify the absence of non-LDH ASCII code 
points
-                       //    (char) 0..0x2c, 0x2e..0x2f, 0x3a..0x40, 
0x5b..0x60,
-                       //    (char) 0x7b..0x7f
-                       //         - Verify the absence of leading and trailing
-                       //           hyphen-minus
-                       
-                       if (useSTD3ASCIIRules)
-                       {
-                               for (int i = 0; i < input.Length; i++)
-                               {
-                                       int c = input[i];
-                                       if ((c <= 0x2c) || (c >= 0x2e && c <= 
0x2f) || (c >= 0x3a && c <= 0x40) || (c >= 0x5b && c <= 0x60) || (c >= 0x7b && 
c <= 0x7f))
-                                       {
-                                               throw new 
IDNAException(IDNAException.CONTAINS_NON_LDH);
-                                       }
-                               }
-                               
-                               if (input.StartsWith("-") || 
input.EndsWith("-"))
-                               {
-                                       throw new 
IDNAException(IDNAException.CONTAINS_HYPHEN);
-                               }
-                       }
-                       
-                       // Step 4: If all code points are inside 0..0x7f, skip 
to step 8
-                       
-                       nonASCII = false;
-                       
-                       for (int i = 0; i < input.Length; i++)
-                       {
-                               int c = input[i];
-                               if (c > 0x7f)
-                               {
-                                       nonASCII = true;
-                                       break;
-                               }
-                       }
-                       
-                       System.String output = input;
-                       
-                       if (nonASCII)
-                       {
-                               
-                               // Step 5: Verify that the sequence does not 
begin with the ACE prefix.
-                               
-                               if (input.StartsWith(ACE_PREFIX))
-                               {
-                                       throw new 
IDNAException(IDNAException.CONTAINS_ACE_PREFIX);
-                               }
-                               
-                               // Step 6: Punycode
-                               
-                               try
-                               {
-                                       output = Punycode.encode(input);
-                               }
-                               catch (PunycodeException e)
-                               {
-                                       // TODO
-                                       throw new IDNAException(e);
-                               }
-                               
-                               // Step 7: Prepend the ACE prefix.
-                               
-                               output = ACE_PREFIX + output;
-                       }
-                       
-                       // Step 8: Check that the length is inside 1..63.
-                       
-                       if (output.Length < 1 || output.Length > 63)
-                       {
-                               throw new IDNAException(IDNAException.TOO_LONG);
-                       }
-                       
-                       return output;
-               }
-               
-               /// <summary> Converts an ASCII-encoded string to Unicode. 
Unassigned
-               /// characters are not allowed and STD3 hostnames are enforced. 
Input
-               /// may be domain name containing dots.
-               /// *
-               /// </summary>
-               /// <param name="input">ASCII input string.
-               /// </param>
-               /// <returns> Unicode string.
-               /// 
-               /// </returns>
-               public static System.String toUnicode(System.String input)
-               {
-                       System.Text.StringBuilder o = new 
System.Text.StringBuilder();
-                       System.Text.StringBuilder h = new 
System.Text.StringBuilder();
-                       
-                       for (int i = 0; i < input.Length; i++)
-                       {
-                               char c = input[i];
-                               if (c == '.' || c == '\u3002' || c == '\uff0e' 
|| c == '\uff61')
-                               {
-                                       o.Append(toUnicode(h.ToString(), false, 
true));
-                                       o.Append(c);
-                                       h = new System.Text.StringBuilder();
-                               }
-                               else
-                               {
-                                       h.Append(c);
-                               }
-                       }
-                       o.Append(toUnicode(h.ToString(), false, true));
-                       return o.ToString();
-               }
-               
-               /// <summary> Converts an ASCII-encoded string to Unicode.
-               /// *
-               /// </summary>
-               /// <param name="input">ASCII input string.
-               /// </param>
-               /// <param name="allowUnassigned">Allow unassigned Unicode 
characters.
-               /// </param>
-               /// <param name="useSTD3ASCIIRules">Check that the output 
conforms to STD3.
-               /// </param>
-               /// <returns> Unicode string.
-               /// 
-               /// </returns>
-               public static System.String toUnicode(System.String input, bool 
allowUnassigned, bool useSTD3ASCIIRules)
-               {
-                       System.String original = input;
-                       bool nonASCII = false;
-                       
-                       // Step 1: If all code points are inside 0..0x7f, skip 
to step 3.
-                       
-                       for (int i = 0; i < input.Length; i++)
-                       {
-                               int c = input[i];
-                               if (c > 0x7f)
-                               {
-                                       nonASCII = true;
-                                       break;
-                               }
-                       }
-                       
-                       // Step 2: Perform the Nameprep operation.
-                       
-                       if (nonASCII)
-                       {
-                               try
-                               {
-                                       input = Stringprep.nameprep(input, 
allowUnassigned);
-                               }
-                               catch (StringprepException e)
-                               {
-                                       // ToUnicode never fails!
-                                       return original;
-                               }
-                       }
-                       
-                       // Step 3: Verify the sequence starts with the ACE 
prefix.
-                       
-                       if (!input.StartsWith(ACE_PREFIX))
-                       {
-                               // ToUnicode never fails!
-                               return original;
-                       }
-                       
-                       System.String stored = input;
-                       
-                       // Step 4: Remove the ACE prefix.
-                       
-                       input = input.Substring(ACE_PREFIX.Length);
-                       
-                       // Step 5: Decode using punycode
-                       
-                       System.String output;
-                       
-                       try
-                       {
-                               output = Punycode.decode(input);
-                       }
-                       catch (PunycodeException e)
-                       {
-                               // ToUnicode never fails!
-                               return original;
-                       }
-                       
-                       // Step 6: Apply toASCII
-                       
-                       System.String ascii;
-                       
-                       try
-                       {
-                               ascii = toASCII(output, allowUnassigned, 
useSTD3ASCIIRules);
-                       }
-                       catch (IDNAException e)
-                       {
-                               // ToUnicode never fails!
-                               return original;
-                       }
-                       
-                       // Step 7: Compare case-insensitively.
-                       
-                       if (!ascii.ToUpper().Equals(stored.ToUpper()))
-                       {
-                               // ToUnicode never fails!
-                               return original;
-                       }
-                       
-                       // Step 8: Return the result.
-                       
-                       return output;
-               }
-       }
+/// <summary>
+/// *
+/// Author: Alexander Gnauck AG-Software, mailto:address@hidden
+/// *
+/// This file is part of GNU Libidn.
+/// *
+/// This library is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU Lesser General Public License
+/// as published by the Free Software Foundation; either version 2.1 of
+/// the License, or (at your option) any later version.
+/// *
+/// This library is distributed in the hope that it will be useful, but
+/// WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+/// Lesser General Public License for more details.
+/// *
+/// You should have received a copy of the GNU Lesser General Public
+/// License along with this library; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+/// USA
+/// </summary>
+
+using System;
+using System.Text;
+
+namespace Gnu.Inet.Encoding
+{      
+       public class IDNA
+       {
+               public const string ACE_PREFIX = "xn--";
+               
+               /// <summary>
+        /// Converts a Unicode string to ASCII using the procedure in RFC3490
+               /// section 4.1. Unassigned characters are not allowed and STD3 
ASCII
+               /// rules are enforced. The input string may be a domain name
+               /// containing dots.
+               /// </summary>
+               /// <param name="input">Unicode string.</param>
+               /// <returns> Encoded string.</returns>
+               public static string ToASCII(string input)
+               {
+                       StringBuilder o = new StringBuilder();
+                       StringBuilder h = new StringBuilder();
+                       
+                       for (int i = 0; i < input.Length; i++)
+                       {
+                               char c = input[i];
+                               if (c == '.' || c == '\u3002' || c == '\uff0e' 
|| c == '\uff61')
+                               {
+                                       o.Append(ToASCII(h.ToString(), false, 
true));
+                    o.Append('.');
+                                       h = new StringBuilder();
+                               }
+                               else
+                               {
+                                       h.Append(c);
+                               }
+                       }
+                       o.Append(ToASCII(h.ToString(), false, true));
+                       return o.ToString();
+               }
+               
+               /// <summary>
+        /// Converts a Unicode string to ASCII using the procedure in RFC3490
+               /// section 4.1. Unassigned characters are not allowed and STD3 
ASCII
+               /// rules are enforced.
+        /// </summary>
+               /// <param name="input">Unicode string.</param>
+               /// <param name="allowUnassigned">Unassigned characters, 
allowed or not?</param>
+               /// <param name="useSTD3ASCIIRules">STD3 ASCII rules, enforced 
or not?</param>
+               /// <returns> Encoded string.</returns>
+               public static string ToASCII(string input, bool 
allowUnassigned, bool useSTD3ASCIIRules)
+               {
+                       // Step 1: Check if the string contains code points 
outside
+                       //         the ASCII range 0..0x7c.
+                       
+                       bool nonASCII = false;

[229 lines skipped]
--- /home/jas/self/public-cvs/libidn/csharp/IDNAException.cs    2007/01/04 
09:37:57     1.3
+++ /home/jas/self/public-cvs/libidn/csharp/IDNAException.cs    2007/03/13 
10:06:44     1.4
@@ -1,50 +1,48 @@
-/// <summary>
-/// Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-/// *
-/// Author: Alexander Gnauck AG-Software
-/// *
-/// This file is part of GNU Libidn.
-/// *
-/// This program is free software; you can redistribute it and/or
-/// modify it under the terms of the GNU General Public License as
-/// published by the Free Software Foundation; either version 2 of the
-/// License, or (at your option) any later version.
-/// *
-/// This program is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-/// General Public License for more details.
-/// *
-/// You should have received a copy of the GNU General Public License
-/// along with this program; if not, write to the Free Software
-/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-/// 02111-1307 USA.
-/// </summary>
-
-using System;
-
-namespace gnu.inet.encoding
-{      
-       
-       public class IDNAException : System.Exception
-       {
-               public static string CONTAINS_NON_LDH           = "Contains 
non-LDH characters.";
-               public static string CONTAINS_HYPHEN            = "Leading or 
trailing hyphen not allowed.";
-               public static string CONTAINS_ACE_PREFIX        = "ACE prefix 
(xn--) not allowed.";
-               public static string TOO_LONG                           = 
"String too long.";
-               
-               public IDNAException(string m) : base(m)
-               {
-               
-               }
-
-               // TODO
-               public IDNAException(StringprepException e) :base( "", e)
-               {
-               }
-               
-               public IDNAException(PunycodeException e) : base( "", e)
-               {
-               }
-       }
+/// <summary>
+/// *
+/// Author: Alexander Gnauck AG-Software, mailto:address@hidden
+/// *
+/// This file is part of GNU Libidn.
+/// *
+/// This library is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU Lesser General Public License
+/// as published by the Free Software Foundation; either version 2.1 of
+/// the License, or (at your option) any later version.
+/// *
+/// This library is distributed in the hope that it will be useful, but
+/// WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+/// Lesser General Public License for more details.
+/// *
+/// You should have received a copy of the GNU Lesser General Public
+/// License along with this library; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+/// USA
+/// </summary>
+
+using System;
+
+namespace Gnu.Inet.Encoding
+{              
+       public class IDNAException : System.Exception
+       {
+               public static string CONTAINS_NON_LDH           = "Contains 
non-LDH characters.";
+               public static string CONTAINS_HYPHEN            = "Leading or 
trailing hyphen not allowed.";
+               public static string CONTAINS_ACE_PREFIX        = "ACE prefix 
(xn--) not allowed.";
+               public static string TOO_LONG                           = 
"String too long.";
+               
+               public IDNAException(string m) : base(m)
+               {
+               
+               }
+
+               // TODO
+               public IDNAException(StringprepException e) :base( "", e)
+               {
+               }
+               
+               public IDNAException(PunycodeException e) : base( "", e)
+               {
+               }
+       }
 }
\ No newline at end of file
--- /home/jas/self/public-cvs/libidn/csharp/NFKC.cs     2007/01/04 09:37:57     
1.3
+++ /home/jas/self/public-cvs/libidn/csharp/NFKC.cs     2007/03/13 10:06:44     
1.4
@@ -1,401 +1,373 @@
-/// <summary>
-/// Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-/// *
-/// Author: Alexander Gnauck AG-Software
-/// *
-/// This file is part of GNU Libidn.
-/// *
-/// This program is free software; you can redistribute it and/or
-/// modify it under the terms of the GNU General Public License as
-/// published by the Free Software Foundation; either version 2 of the
-/// License, or (at your option) any later version.
-/// *
-/// This program is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-/// General Public License for more details.
-/// *
-/// You should have received a copy of the GNU General Public License
-/// along with this program; if not, write to the Free Software
-/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-/// 02111-1307 USA.
-/// </summary>
-
-using System;
-
-namespace gnu.inet.encoding
-{      
-       
-       public class NFKC
-       {
-               /// <summary> Applies NFKC normalization to a string.
-               /// *
-               /// </summary>
-               /// <param name="in">The string to normalize.
-               /// </param>
-               /// <returns> An NFKC normalized string.
-               /// 
-               /// </returns>
-               public static System.String normalizeNFKC(System.String sbIn)
-               {
-                       System.Text.StringBuilder sbOut = new 
System.Text.StringBuilder();
-                       
-                       for (int i = 0; i < sbIn.Length; i++)
-                       {
-                               char code = sbIn[i];
-                               
-                               // In Unicode 3.0, Hangul was defined as the 
block from U+AC00
-                               // to U+D7A3, however, since Unicode 3.2 the 
block extends until
-                               // U+D7AF. The decomposeHangul function only 
decomposes until
-                               // U+D7A3. Should this be changed?
-                               if (code >= 0xAC00 && code <= 0xD7AF)
-                               {
-                                       sbOut.Append(decomposeHangul(code));
-                               }
-                               else
-                               {
-                                       int index = decomposeIndex(code);
-                                       if (index == - 1)
-                                       {
-                                               sbOut.Append(code);
-                                       }
-                                       else
-                                       {
-                                               
sbOut.Append(DecompositionMappings.m[index]);
-                                       }
-                               }
-                       }
-                       
-                       // Bring the stringbuffer into canonical order.
-                       canonicalOrdering(sbOut);
-                       
-                       // Do the canonical composition.
-                       int last_cc = 0;
-                       int last_start = 0;
-                       
-                       for (int i = 0; i < sbOut.Length; i++)
-                       {
-                               int cc = combiningClass(sbOut[i]);
-                               
-                               if (i > 0 && (last_cc == 0 || last_cc != cc))
-                               {
-                                       // Try to combine characters
-                                       char a = sbOut[last_start];
-                                       char b = sbOut[i];
-                                       
-                                       int c = compose(a, b);
-                                       
-                                       if (c != - 1)
-                                       {
-                                               sbOut[last_start] = (char) c;
-                                               //sbOut.deleteCharAt(i);
-                                               sbOut.Remove(i, 1);
-                                               i--;
-                                               
-                                               if (i == last_start)
-                                               {
-                                                       last_cc = 0;
-                                               }
-                                               else
-                                               {
-                                                       last_cc = 
combiningClass(sbOut[i - 1]);
-                                               }
-                                               continue;
-                                       }
-                               }
-                               
-                               if (cc == 0)
-                               {
-                                       last_start = i;
-                               }
-                               
-                               last_cc = cc;
-                       }
-                       
-                       return sbOut.ToString();
-               }
-               
-               
-               /// <summary> Returns the index inside the decomposition table, 
implemented
-               /// using a binary search.
-               /// *
-               /// </summary>
-               /// <param name="c">Character to look up.
-               /// </param>
-               /// <returns> Index if found, -1 otherwise.
-               /// 
-               /// </returns>
-               internal static int decomposeIndex(char c)
-               {
-                       int start = 0;
-                       int end = DecompositionKeys.k.Length / 2;
-                       
-                       while (true)
-                       {
-                               int half = (start + end) / 2;
-                               int code = DecompositionKeys.k[half * 2];
-                               
-                               if (c == code)
-                               {
-                                       return DecompositionKeys.k[half * 2 + 
1];
-                               }
-                               if (half == start)
-                               {
-                                       // Character not found
-                                       return - 1;
-                               }
-                               else if (c > code)
-                               {
-                                       start = half;
-                               }
-                               else
-                               {
-                                       end = half;
-                               }
-                       }
-               }
-               
-               /// <summary> Returns the combining class of a given character.
-               /// *
-               /// </summary>
-               /// <param name="c">The character.
-               /// </param>
-               /// <returns> The combining class.
-               /// 
-               /// </returns>
-               internal static int combiningClass(char c)
-               {
-                       int h = c >> 8;
-                       int l = c & 0xff;
-                       
-                       int i = CombiningClass.i[h];
-                       if (i > - 1)
-                       {
-                               return CombiningClass.c[i][l];
-                       }
-                       else
-                       {
-                               return 0;
-                       }
-               }
-               
-               /// <summary> Rearranges characters in a stringbuffer in order 
to respect the
-               /// canonical ordering properties.
-               /// *
-               /// </summary>
-               /// <param name="The">StringBuffer to rearrange.
-               /// 
-               /// </param>
-               internal static void  
canonicalOrdering(System.Text.StringBuilder sbIn)
-               {
-                       bool isOrdered = false;
-                       
-                       while (!isOrdered)
-                       {
-                               isOrdered = true;
-                               
-
-                               // 24.10.2005
-                               int lastCC = 0;
-                               if (sbIn.Length > 0)
-                                       lastCC = combiningClass(sbIn[0]);
-                               
-                               for (int i = 0; i < sbIn.Length - 1; i++)
-                               {
-                                       int nextCC = combiningClass(sbIn[i + 
1]);
-                                       if (nextCC != 0 && lastCC > nextCC)
-                                       {
-                                               for (int j = i + 1; j > 0; j--)
-                                               {
-                                                       if 
(combiningClass(sbIn[j - 1]) <= nextCC)
-                                                       {
-                                                               break;
-                                                       }
-                                                       char t = sbIn[j];
-                                                       sbIn[j] = sbIn[j - 1];
-                                                       sbIn[j - 1] = t;
-                                                       isOrdered = false;
-                                               }
-                                               nextCC = lastCC;
-                                       }
-                                       lastCC = nextCC;
-                               }
-                       }
-               }
-               
-               /// <summary> Returns the index inside the composition table.
-               /// *
-               /// </summary>
-               /// <param name="a">Character to look up.
-               /// </param>
-               /// <returns> Index if found, -1 otherwise.
-               /// 
-               /// </returns>
-               internal static int composeIndex(char a)
-               {
-                       if (a >> 8 >= Composition.composePage.Length)
-                       {
-                               return - 1;
-                       }
-                       int ap = Composition.composePage[a >> 8];
-                       if (ap == - 1)
-                       {
-                               return - 1;
-                       }
-                       return Composition.composeData[ap][a & 0xff];
-               }
-               
-               /// <summary> Tries to compose two characters canonically.
-               /// *
-               /// </summary>
-               /// <param name="a">First character.
-               /// </param>
-               /// <param name="b">Second character.
-               /// </param>
-               /// <returns> The composed character or -1 if no composition 
could be
-               /// found.
-               /// 
-               /// </returns>
-               internal static int compose(char a, char b)
-               {
-                       int h = composeHangul(a, b);
-                       if (h != - 1)
-                       {
-                               return h;
-                       }
-                       
-                       int ai = composeIndex(a);
-                       
-                       if (ai >= Composition.singleFirstStart && ai < 
Composition.singleSecondStart)
-                       {
-                               if (b == Composition.singleFirst[ai - 
Composition.singleFirstStart][0])
-                               {
-                                       return Composition.singleFirst[ai - 
Composition.singleFirstStart][1];
-                               }
-                               else
-                               {
-                                       return - 1;
-                               }
-                       }
-                       
-                       int bi = composeIndex(b);
-                       
-                       if (bi >= Composition.singleSecondStart)
-                       {
-                               if (a == Composition.singleSecond[bi - 
Composition.singleSecondStart][0])
-                               {
-                                       return Composition.singleSecond[bi - 
Composition.singleSecondStart][1];
-                               }
-                               else
-                               {
-                                       return - 1;
-                               }
-                       }
-                       
-                       if (ai >= 0 && ai < Composition.multiSecondStart && bi 
>= Composition.multiSecondStart && bi < Composition.singleFirstStart)
-                       {
-                               char[] f = Composition.multiFirst[ai];
-                               
-                               if (bi - Composition.multiSecondStart < 
f.Length)
-                               {
-                                       char r = f[bi - 
Composition.multiSecondStart];
-                                       if (r == 0)
-                                       {
-                                               return - 1;
-                                       }
-                                       else
-                                       {
-                                               return r;
-                                       }
-                               }
-                       }
-                       
-                       
-                       return - 1;
-               }
-               
-               /// <summary> Entire hangul code copied from:
-               /// http://www.unicode.org/unicode/reports/tr15/
-               /// *
-               /// Several hangul specific constants
-               /// </summary>
-               internal const int SBase = 0xAC00;
-               internal const int LBase = 0x1100;
-               internal const int VBase = 0x1161;
-               internal const int TBase = 0x11A7;
-               internal const int LCount = 19;
-               internal const int VCount = 21;
-               internal const int TCount = 28;
-               
-               internal static readonly int NCount = VCount * TCount;
-               
-               internal static readonly int SCount = LCount * NCount;
-               
-               /// <summary> Decomposes a hangul character.
-               /// *
-               /// </summary>
-               /// <param name="s">A character to decompose.
-               /// </param>
-               /// <returns> A string containing the hangul decomposition of 
the input
-               /// character. If no hangul decomposition can be found, a string
-               /// containing the character itself is returned.
-               /// 
-               /// </returns>
-               internal static System.String decomposeHangul(char s)
-               {
-                       int SIndex = s - SBase;
-                       if (SIndex < 0 || SIndex >= SCount)
-                       {
-                               return s.ToString();
-                       }
-                       System.Text.StringBuilder result = new 
System.Text.StringBuilder();
-                       int L = LBase + SIndex / NCount;
-                       int V = VBase + (SIndex % NCount) / TCount;
-                       int T = TBase + SIndex % TCount;
-                       result.Append((char) L);
-                       result.Append((char) V);
-                       if (T != TBase)
-                               result.Append((char) T);
-                       return result.ToString();
-               }
-               
-               /// <summary> Composes two hangul characters.
-               /// *
-               /// </summary>
-               /// <param name="a">First character.
-               /// </param>
-               /// <param name="b">Second character.
-               /// </param>
-               /// <returns> Returns the composed character or -1 if the two
-               /// characters cannot be composed.
-               /// 
-               /// </returns>
-               internal static int composeHangul(char a, char b)
-               {
-                       // 1. check to see if two current characters are L and V
-                       int LIndex = a - LBase;
-                       if (0 <= LIndex && LIndex < LCount)
-                       {
-                               int VIndex = b - VBase;
-                               if (0 <= VIndex && VIndex < VCount)
-                               {
-                                       // make syllable of form LV
-                                       return SBase + (LIndex * VCount + 
VIndex) * TCount;
-                               }
-                       }
-                       
-                       // 2. check to see if two current characters are LV and 
T
-                       int SIndex = a - SBase;
-                       if (0 <= SIndex && SIndex < SCount && (SIndex % TCount) 
== 0)
-                       {
-                               int TIndex = b - TBase;
-                               if (0 <= TIndex && TIndex <= TCount)
-                               {
-                                       // make syllable of form LVT
-                                       return a + TIndex;
-                               }
-                       }

[377 lines skipped]
--- /home/jas/self/public-cvs/libidn/csharp/Punycode.cs 2007/01/04 09:37:57     
1.3
+++ /home/jas/self/public-cvs/libidn/csharp/Punycode.cs 2007/03/13 10:06:44     
1.4
@@ -1,304 +1,298 @@
-/// <summary>
-/// Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-/// *
-/// Author: Alexander Gnauck AG-Software
-/// *
-/// This file is part of GNU Libidn.
-/// *
-/// This program is free software; you can redistribute it and/or
-/// modify it under the terms of the GNU General Public License as
-/// published by the Free Software Foundation; either version 2 of the
-/// License, or (at your option) any later version.
-/// *
-/// This program is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-/// General Public License for more details.
-/// *
-/// You should have received a copy of the GNU General Public License
-/// along with this program; if not, write to the Free Software
-/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-/// 02111-1307 USA.
-/// </summary>
-
-using System;
-
-namespace gnu.inet.encoding
-{      
-       
-       public class Punycode
-       {
-               /* Punycode parameters */
-               internal const int TMIN = 1;
-               internal const int TMAX = 26;
-               internal const int BASE = 36;
-               internal const int INITIAL_N = 128;
-               internal const int INITIAL_BIAS = 72;
-               internal const int DAMP = 700;
-               internal const int SKEW = 38;
-               internal const char DELIMITER = '-';
-               
-               /// <summary> Punycodes a unicode string.
-               /// *
-               /// </summary>
-               /// <param name="input">Unicode string.
-               /// </param>
-               /// <returns> Punycoded string.
-               /// 
-               /// </returns>
-               public static System.String encode(System.String input)
-               {
-                       int n = INITIAL_N;
-                       int delta = 0;
-                       int bias = INITIAL_BIAS;
-                       System.Text.StringBuilder output = new 
System.Text.StringBuilder();
-                       
-                       // Copy all basic code points to the output
-                       int b = 0;
-                       for (int i = 0; i < input.Length; i++)
-                       {
-                               char c = input[i];
-                               if (isBasic(c))
-                               {
-                                       output.Append(c);
-                                       b++;
-                               }
-                       }
-                       
-                       // Append delimiter
-                       if (b > 0)
-                       {
-                               output.Append(DELIMITER);
-                       }
-                       
-                       int h = b;
-                       while (h < input.Length)
-                       {
-                               int m = System.Int32.MaxValue;
-                               
-                               // Find the minimum code point >= n
-                               for (int i = 0; i < input.Length; i++)
-                               {
-                                       int c = input[i];
-                                       if (c >= n && c < m)
-                                       {
-                                               m = c;
-                                       }
-                               }
-                               
-                               if (m - n > (System.Int32.MaxValue - delta) / 
(h + 1))
-                               {
-                                       throw new 
PunycodeException(PunycodeException.OVERFLOW);
-                               }
-                               delta = delta + (m - n) * (h + 1);
-                               n = m;
-                               
-                               for (int j = 0; j < input.Length; j++)
-                               {
-                                       int c = input[j];
-                                       if (c < n)
-                                       {
-                                               delta++;
-                                               if (0 == delta)
-                                               {
-                                                       throw new 
PunycodeException(PunycodeException.OVERFLOW);
-                                               }
-                                       }
-                                       if (c == n)
-                                       {
-                                               int q = delta;
-                                               
-                                               for (int k = BASE; ; k += BASE)
-                                               {
-                                                       int t;
-                                                       if (k <= bias)
-                                                       {
-                                                               t = TMIN;
-                                                       }
-                                                       else if (k >= bias + 
TMAX)
-                                                       {
-                                                               t = TMAX;
-                                                       }
-                                                       else
-                                                       {
-                                                               t = k - bias;
-                                                       }
-                                                       if (q < t)
-                                                       {
-                                                               break;
-                                                       }
-                                                       output.Append((char) 
digit2codepoint(t + (q - t) % (BASE - t)));
-                                                       q = (q - t) / (BASE - 
t);
-                                               }
-                                               
-                                               output.Append((char) 
digit2codepoint(q));
-                                               bias = adapt(delta, h + 1, h == 
b);
-                                               delta = 0;
-                                               h++;
-                                       }
-                               }
-                               
-                               delta++;
-                               n++;
-                       }
-                       
-                       return output.ToString();
-               }
-               
-               /// <summary> Decode a punycoded string.
-               /// *
-               /// </summary>
-               /// <param name="input">Punycode string
-               /// </param>
-               /// <returns> Unicode string.
-               /// 
-               /// </returns>
-               public static System.String decode(System.String input)
-               {
-                       int n = INITIAL_N;
-                       int i = 0;
-                       int bias = INITIAL_BIAS;
-                       System.Text.StringBuilder output = new 
System.Text.StringBuilder();
-                       
-                       int d = input.LastIndexOf((System.Char) DELIMITER);
-                       if (d > 0)
-                       {
-                               for (int j = 0; j < d; j++)
-                               {
-                                       char c = input[j];
-                                       if (!isBasic(c))
-                                       {
-                                               throw new 
PunycodeException(PunycodeException.BAD_INPUT);
-                                       }
-                                       output.Append(c);
-                               }
-                               d++;
-                       }
-                       else
-                       {
-                               d = 0;
-                       }
-                       
-                       while (d < input.Length)
-                       {
-                               int oldi = i;
-                               int w = 1;
-                               
-                               for (int k = BASE; ; k += BASE)
-                               {
-                                       if (d == input.Length)
-                                       {
-                                               throw new 
PunycodeException(PunycodeException.BAD_INPUT);
-                                       }
-                                       int c = input[d++];
-                                       int digit = codepoint2digit(c);
-                                       if (digit > (System.Int32.MaxValue - i) 
/ w)
-                                       {
-                                               throw new 
PunycodeException(PunycodeException.OVERFLOW);
-                                       }
-                                       
-                                       i = i + digit * w;
-                                       
-                                       int t;
-                                       if (k <= bias)
-                                       {
-                                               t = TMIN;
-                                       }
-                                       else if (k >= bias + TMAX)
-                                       {
-                                               t = TMAX;
-                                       }
-                                       else
-                                       {
-                                               t = k - bias;
-                                       }
-                                       if (digit < t)
-                                       {
-                                               break;
-                                       }
-                                       w = w * (BASE - t);
-                               }
-                               
-                               bias = adapt(i - oldi, output.Length + 1, oldi 
== 0);
-                               
-                               if (i / (output.Length + 1) > 
System.Int32.MaxValue - n)
-                               {
-                                       throw new 
PunycodeException(PunycodeException.OVERFLOW);
-                               }
-                               
-                               n = n + i / (output.Length + 1);
-                               i = i % (output.Length + 1);
-                               // following overload is not supported on CF
-                               //output.Insert(i,(char) n);
-                               output.Insert(i, new char[1] { (char) n });
-                               i++;
-                       }
-                       
-                       return output.ToString();
-               }
-               
-               public static int adapt(int delta, int numpoints, bool first)
-               {
-                       if (first)
-                       {
-                               delta = delta / DAMP;
-                       }
-                       else
-                       {
-                               delta = delta / 2;
-                       }
-                       
-                       delta = delta + (delta / numpoints);
-                       
-                       int k = 0;
-                       while (delta > ((BASE - TMIN) * TMAX) / 2)
-                       {
-                               delta = delta / (BASE - TMIN);
-                               k = k + BASE;
-                       }
-                       
-                       return k + ((BASE - TMIN + 1) * delta) / (delta + SKEW);
-               }
-               
-               public static bool isBasic(char c)
-               {
-                       return c < 0x80;
-               }
-               
-               public static int digit2codepoint(int d)
-               {
-                       if (d < 26)
-                       {
-                               // 0..25 : 'a'..'z'
-                               return d + 'a';
-                       }
-                       else if (d < 36)
-                       {
-                               // 26..35 : '0'..'9';
-                               return d - 26 + '0';
-                       }
-                       else
-                       {
-                               throw new 
PunycodeException(PunycodeException.BAD_INPUT);
-                       }
-               }
-               
-               public static int codepoint2digit(int c)
-               {
-                       if (c - '0' < 10)
-                       {
-                               // '0'..'9' : 26..35
-                               return c - '0' + 26;
-                       }
-                       else if (c - 'a' < 26)
-                       {
-                               // 'a'..'z' : 0..25
-                               return c - 'a';
-                       }
-                       else
-                       {
-                               throw new 
PunycodeException(PunycodeException.BAD_INPUT);
-                       }
-               }
-       }
+/// <summary>
+/// *
+/// Author: Alexander Gnauck AG-Software, mailto:address@hidden
+/// *
+/// This file is part of GNU Libidn.
+/// *
+/// This library is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU Lesser General Public License
+/// as published by the Free Software Foundation; either version 2.1 of
+/// the License, or (at your option) any later version.
+/// *
+/// This library is distributed in the hope that it will be useful, but
+/// WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+/// Lesser General Public License for more details.
+/// *
+/// You should have received a copy of the GNU Lesser General Public
+/// License along with this library; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+/// USA
+/// </summary>
+
+using System;
+using System.Text;
+
+namespace Gnu.Inet.Encoding
+{      
+       
+       public class Punycode
+       {
+               /* Punycode parameters */
+               internal const int TMIN = 1;
+               internal const int TMAX = 26;
+               internal const int BASE = 36;
+               internal const int INITIAL_N = 128;
+               internal const int INITIAL_BIAS = 72;
+               internal const int DAMP = 700;
+               internal const int SKEW = 38;
+               internal const char DELIMITER = '-';
+               
+               /// <summary>
+        /// Punycodes a unicode string.
+               /// </summary>
+               /// <param name="input">Unicode string.</param>
+               /// <returns> Punycoded string.</returns>
+               public static string Encode(string input)
+               {
+                       int n = INITIAL_N;
+                       int delta = 0;
+                       int bias = INITIAL_BIAS;
+                       StringBuilder output = new StringBuilder();
+                       
+                       // Copy all basic code points to the output
+                       int b = 0;
+                       for (int i = 0; i < input.Length; i++)
+                       {
+                               char c = input[i];
+                               if (IsBasic(c))
+                               {
+                                       output.Append(c);
+                                       b++;
+                               }
+                       }
+                       
+                       // Append delimiter
+                       if (b > 0)
+                       {
+                               output.Append(DELIMITER);
+                       }
+                       
+                       int h = b;
+                       while (h < input.Length)
+                       {
+                               int m = System.Int32.MaxValue;
+                               
+                               // Find the minimum code point >= n
+                               for (int i = 0; i < input.Length; i++)
+                               {
+                                       int c = input[i];
+                                       if (c >= n && c < m)
+                                       {
+                                               m = c;
+                                       }
+                               }
+                               
+                               if (m - n > (System.Int32.MaxValue - delta) / 
(h + 1))
+                               {
+                                       throw new 
PunycodeException(PunycodeException.OVERFLOW);
+                               }
+                               delta = delta + (m - n) * (h + 1);
+                               n = m;
+                               
+                               for (int j = 0; j < input.Length; j++)
+                               {

[205 lines skipped]
--- /home/jas/self/public-cvs/libidn/csharp/PunycodeException.cs        
2007/01/04 09:37:57     1.3
+++ /home/jas/self/public-cvs/libidn/csharp/PunycodeException.cs        
2007/03/13 10:06:44     1.4
@@ -1,42 +1,41 @@
-/// <summary>
-/// Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-/// *
-/// Author: Alexander Gnauck AG-Software
-/// *
-/// This file is part of GNU Libidn.
-/// *
-/// This program is free software; you can redistribute it and/or
-/// modify it under the terms of the GNU General Public License as
-/// published by the Free Software Foundation; either version 2 of the
-/// License, or (at your option) any later version.
-/// *
-/// This program is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-/// General Public License for more details.
-/// *
-/// You should have received a copy of the GNU General Public License
-/// along with this program; if not, write to the Free Software
-/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-/// 02111-1307 USA.
-/// </summary>
-namespace gnu.inet.encoding
-{
-       using System;
-       
-       public class PunycodeException:System.Exception
-       {
-               public static System.String OVERFLOW = "Overflow.";
-               public static System.String BAD_INPUT = "Bad input.";
-               
-               /// <summary> Creates a new PunycodeException.
-               /// *
-               /// </summary>
-               /// <param name="m">message.
-               /// 
-               /// </param>
-               public PunycodeException(System.String m):base(m)
-               {
-               }
-       }
+/// <summary>
+/// *
+/// Author: Alexander Gnauck AG-Software, mailto:address@hidden
+/// *
+/// This file is part of GNU Libidn.
+/// *
+/// This library is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU Lesser General Public License
+/// as published by the Free Software Foundation; either version 2.1 of
+/// the License, or (at your option) any later version.
+/// *
+/// This library is distributed in the hope that it will be useful, but
+/// WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+/// Lesser General Public License for more details.
+/// *
+/// You should have received a copy of the GNU Lesser General Public
+/// License along with this library; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+/// USA
+/// </summary>
+
+using System;
+
+namespace Gnu.Inet.Encoding
+{
+       
+       public class PunycodeException : Exception
+       {
+               public static string OVERFLOW   = "Overflow.";
+               public static string BAD_INPUT  = "Bad input.";
+               
+               /// <summary>
+        /// Creates a new PunycodeException.
+               /// </summary>
+        /// <param name="message">message</param>
+               public PunycodeException(string message) : base(message)
+               {
+               }
+       }
 }
\ No newline at end of file
--- /home/jas/self/public-cvs/libidn/csharp/Stringprep.cs       2007/01/04 
09:37:57     1.3
+++ /home/jas/self/public-cvs/libidn/csharp/Stringprep.cs       2007/03/13 
10:06:44     1.4
@@ -1,463 +1,463 @@
-/// <summary>
-/// Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-/// *
-/// Author: Alexander Gnauck AG-Software
-/// *
-/// This file is part of GNU Libidn.
-/// *
-/// This program is free software; you can redistribute it and/or
-/// modify it under the terms of the GNU General Public License as
-/// published by the Free Software Foundation; either version 2 of the
-/// License, or (at your option) any later version.
-/// *
-/// This program is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-/// General Public License for more details.
-/// *
-/// You should have received a copy of the GNU General Public License
-/// along with this program; if not, write to the Free Software
-/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-/// 02111-1307 USA.
-/// </summary>
-
-using System;
-
-namespace gnu.inet.encoding
-{      
-       /// <summary> This class offers static methods for preparing 
internationalized
-       /// strings. It supports the following stringprep profiles:
-       /// <ul>
-       /// <li>RFC3491 nameprep
-       /// <li>RFC3920 XMPP nodeprep and resourceprep
-       /// </ul>
-       /// Note that this implementation only supports 16-bit Unicode code
-       /// points.
-       /// </summary>
-       public class Stringprep
-       {
-               /// <summary> Preps a name according to the Stringprep profile 
defined in
-               /// RFC3491. Unassigned code points are not allowed.
-               /// *
-               /// </summary>
-               /// <param name="input">the name to prep.
-               /// </param>
-               /// <returns> the prepped name.
-               /// @throws StringprepException If the name cannot be prepped 
with
-               /// this profile.
-               /// @throws NullPointerException If the name is null.
-               /// 
-               /// </returns>
-               public static System.String nameprep(System.String input)
-               {
-                       return nameprep(input, false);
-               }
-               
-               /// <summary> Preps a name according to the Stringprep profile 
defined in
-               /// RFC3491.
-               /// *
-               /// </summary>
-               /// <param name="input">the name to prep.
-               /// </param>
-               /// <param name="allowUnassigned">true if the name may contain 
unassigned
-               /// code points.
-               /// </param>
-               /// <returns> the prepped name.
-               /// @throws StringprepException If the name cannot be prepped 
with
-               /// this profile.
-               /// @throws NullPointerException If the name is null.
-               /// 
-               /// </returns>
-               public static System.String nameprep(System.String input, bool 
allowUnassigned)
-               {
-                       if (input == null)
-                       {
-                               throw new System.NullReferenceException();
-                       }
-                       
-                       System.Text.StringBuilder s = new 
System.Text.StringBuilder(input);
-                       
-                       if (!allowUnassigned && contains(s, RFC3454.A1))
-                       {
-                               throw new 
StringprepException(StringprepException.CONTAINS_UNASSIGNED);
-                       }
-                       
-                       filter(s, RFC3454.B1);
-                       map(s, RFC3454.B2search, RFC3454.B2replace);
-                       
-                       s = new 
System.Text.StringBuilder(NFKC.normalizeNFKC(s.ToString()));
-                       // B.3 is only needed if NFKC is not used, right?
-                       // map(s, RFC3454.B3search, RFC3454.B3replace);
-                       
-                       if (contains(s, RFC3454.C12) || contains(s, 
RFC3454.C22) || contains(s, RFC3454.C3) || contains(s, RFC3454.C4) || 
contains(s, RFC3454.C5) || contains(s, RFC3454.C6) || contains(s, RFC3454.C7) 
|| contains(s, RFC3454.C8))
-                       {
-                               // Table C.9 only contains code points > 0xFFFF 
which Java
-                               // doesn't handle
-                               throw new 
StringprepException(StringprepException.CONTAINS_PROHIBITED);
-                       }
-                       
-                       // Bidi handling
-                       bool r = contains(s, RFC3454.D1);
-                       bool l = contains(s, RFC3454.D2);
-                       
-                       // RFC 3454, section 6, requirement 1: already handled 
above (table C.8)
-                       
-                       // RFC 3454, section 6, requirement 2
-                       if (r && l)
-                       {
-                               throw new 
StringprepException(StringprepException.BIDI_BOTHRAL);
-                       }
-                       
-                       // RFC 3454, section 6, requirement 3
-                       if (r)
-                       {
-                               if (!contains(s[0], RFC3454.D1) || 
!contains(s[s.Length - 1], RFC3454.D1))
-                               {
-                                       throw new 
StringprepException(StringprepException.BIDI_LTRAL);
-                               }
-                       }
-                       
-                       return s.ToString();
-               }
-               
-               /**
-               * Characters prohibited by RFC3920 nodeprep that aren't defined 
as
-               * part of the RFC3454 tables.
-               */
-               private static char [] RFC3920_NODEPREP_PROHIBIT = new char [] {
-                                '\u0022', '\u0026', '\'',     '\u002F',
-                                '\u003A', '\u003C', '\u003E', '\u0040'
-                };
-               
-               /// <summary> Preps a node name according to the Stringprep 
profile defined in
-               /// RFC3920. Unassigned code points are not allowed.
-               /// *
-               /// </summary>
-               /// <param name="input">the node name to prep.
-               /// </param>
-               /// <returns> the prepped node name.
-               /// @throws StringprepException If the node name cannot be 
prepped
-               /// with this profile.
-               /// @throws NullPointerException If the node name is null.
-               /// 
-               /// </returns>
-               public static System.String nodeprep(System.String input)
-               {
-                       return nodeprep(input, false);
-               }
-               
-               /// <summary> Preps a node name according to the Stringprep 
profile defined in
-               /// RFC3920.
-               /// *
-               /// </summary>
-               /// <param name="input">the node name to prep.
-               /// </param>
-               /// <param name="allowUnassigned">true if the node name may 
contain
-               /// unassigned code points.
-               /// </param>
-               /// <returns> the prepped node name.
-               /// @throws StringprepException If the node name cannot be 
prepped
-               /// with this profile.
-               /// @throws NullPointerException If the node name is null.
-               /// 
-               /// </returns>
-               public static System.String nodeprep(System.String input, bool 
allowUnassigned)
-               {
-                       if (input == null)
-                       {
-                               throw new System.NullReferenceException();
-                       }
-                       
-                       System.Text.StringBuilder s = new 
System.Text.StringBuilder(input);
-                       
-                       if (!allowUnassigned && contains(s, RFC3454.A1))
-                       {
-                               throw new 
StringprepException(StringprepException.CONTAINS_UNASSIGNED);
-                       }
-                       
-                       filter(s, RFC3454.B1);
-                       map(s, RFC3454.B2search, RFC3454.B2replace);
-                       
-                       s = new 
System.Text.StringBuilder(NFKC.normalizeNFKC(s.ToString()));
-                       
-                       if (contains(s, RFC3454.C11) || contains(s, 
RFC3454.C12) || contains(s, RFC3454.C21) || contains(s, RFC3454.C22) || 
contains(s, RFC3454.C3) || contains(s, RFC3454.C4) || contains(s, RFC3454.C5) 
|| contains(s, RFC3454.C6) || contains(s, RFC3454.C7) || contains(s, 
RFC3454.C8) || contains(s, RFC3920_NODEPREP_PROHIBIT))
-                       {
-                               // Table C.9 only contains code points > 0xFFFF 
which Java
-                               // doesn't handle
-                               throw new 
StringprepException(StringprepException.CONTAINS_PROHIBITED);
-                       }
-                       
-                       // Bidi handling
-                       bool r = contains(s, RFC3454.D1);
-                       bool l = contains(s, RFC3454.D2);
-                       
-                       // RFC 3454, section 6, requirement 1: already handled 
above (table C.8)
-                       
-                       // RFC 3454, section 6, requirement 2
-                       if (r && l)
-                       {
-                               throw new 
StringprepException(StringprepException.BIDI_BOTHRAL);
-                       }
-                       
-                       // RFC 3454, section 6, requirement 3
-                       if (r)
-                       {
-                               if (!contains(s[0], RFC3454.D1) || 
!contains(s[s.Length - 1], RFC3454.D1))
-                               {
-                                       throw new 
StringprepException(StringprepException.BIDI_LTRAL);
-                               }
-                       }
-                       
-                       return s.ToString();
-               }
-               
-               /// <summary> Preps a resource name according to the Stringprep 
profile defined
-               /// in RFC3920. Unassigned code points are not allowed.
-               /// *
-               /// </summary>
-               /// <param name="input">the resource name to prep.
-               /// </param>
-               /// <returns> the prepped node name.
-               /// @throws StringprepException If the resource name cannot be 
prepped
-               /// with this profile.
-               /// @throws NullPointerException If the resource name is null.
-               /// 
-               /// </returns>
-               public static System.String resourceprep(System.String input)
-               {
-                       return resourceprep(input, false);
-               }
-               
-               /// <summary> Preps a resource name according to the Stringprep 
profile defined
-               /// in RFC3920.
-               /// *
-               /// </summary>
-               /// <param name="input">the resource name to prep.
-               /// </param>
-               /// <param name="allowUnassigned">true if the resource name may 
contain
-               /// unassigned code points.
-               /// </param>
-               /// <returns> the prepped node name.
-               /// @throws StringprepException If the resource name cannot be 
prepped
-               /// with this profile.
-               /// @throws NullPointerException If the resource name is null.
-               /// 
-               /// </returns>
-               public static System.String resourceprep(System.String input, 
bool allowUnassigned)
-               {
-                       if (input == null)
-                       {
-                               throw new System.NullReferenceException();
-                       }
-                       
-                       System.Text.StringBuilder s = new 
System.Text.StringBuilder(input);
-                       
-                       if (!allowUnassigned && contains(s, RFC3454.A1))
-                       {
-                               throw new 
StringprepException(StringprepException.CONTAINS_UNASSIGNED);
-                       }
-                       
-                       filter(s, RFC3454.B1);
-                       
-                       s = new 
System.Text.StringBuilder(NFKC.normalizeNFKC(s.ToString()));
-                       
-                       if (contains(s, RFC3454.C12) || contains(s, 
RFC3454.C21) || contains(s, RFC3454.C22) || contains(s, RFC3454.C3) || 
contains(s, RFC3454.C4) || contains(s, RFC3454.C5) || contains(s, RFC3454.C6) 
|| contains(s, RFC3454.C7) || contains(s, RFC3454.C8))
-                       {
-                               // Table C.9 only contains code points > 0xFFFF 
which Java
-                               // doesn't handle
-                               throw new 
StringprepException(StringprepException.CONTAINS_PROHIBITED);
-                       }
-                       
-                       // Bidi handling
-                       bool r = contains(s, RFC3454.D1);
-                       bool l = contains(s, RFC3454.D2);
-                       
-                       // RFC 3454, section 6, requirement 1: already handled 
above (table C.8)
-                       
-                       // RFC 3454, section 6, requirement 2
-                       if (r && l)
-                       {
-                               throw new 
StringprepException(StringprepException.BIDI_BOTHRAL);
-                       }
-                       
-                       // RFC 3454, section 6, requirement 3
-                       if (r)
-                       {
-                               if (!contains(s[0], RFC3454.D1) || 
!contains(s[s.Length - 1], RFC3454.D1))
-                               {
-                                       throw new 
StringprepException(StringprepException.BIDI_LTRAL);
-                               }
-                       }
-                       
-                       return s.ToString();
-               }
-               
-               internal static bool contains(System.Text.StringBuilder s, 
char[] p)
-               {
-                       for (int i = 0; i < p.Length; i++)
-                       {
-                               char c = p[i];
-                               for (int j = 0; j < s.Length; j++)
-                               {
-                                       if (c == s[j])
-                                       {
-                                               return true;
-                                       }
-                               }
-                       }
-                       return false;
-               }
-               
-               internal static bool contains(System.Text.StringBuilder s, 
char[][] p)
-               {
-                       for (int i = 0; i < p.Length; i++)
-                       {
-                               char[] r = p[i];
-                               if (1 == r.Length)
-                               {
-                                       char c = r[0];
-                                       for (int j = 0; j < s.Length; j++)
-                                       {
-                                               if (c == s[j])
-                                               {
-                                                       return true;
-                                               }
-                                       }
-                               }
-                               else if (2 == r.Length)
-                               {
-                                       char f = r[0];
-                                       char t = r[1];
-                                       for (int j = 0; j < s.Length; j++)
-                                       {
-                                               if (f <= s[j] && t >= s[j])
-                                               {
-                                                       return true;
-                                               }
-                                       }
-                               }
-                       }
-                       return false;
-               }
-               
-               internal static bool contains(char c, char[][] p)
-               {
-                       for (int i = 0; i < p.Length; i++)
-                       {
-                               char[] r = p[i];
-                               if (1 == r.Length)
-                               {
-                                       if (c == r[0])
-                                       {
-                                               return true;
-                                       }
-                               }
-                               else if (2 == r.Length)
-                               {
-                                       char f = r[0];
-                                       char t = r[1];
-                                       if (f <= c && t >= c)
-                                       {
-                                               return true;
-                                       }
-                               }
-                       }
-                       return false;
-               }
-               
-               internal static void  filter(System.Text.StringBuilder s, 
char[] f)
-               {
-                       for (int i = 0; i < f.Length; i++)
-                       {
-                               char c = f[i];
-                               
-                               int j = 0;
-                               while (j < s.Length)
-                               {
-                                       if (c == s[j])
-                                       {
-                                               //s.deleteCharAt(j);
-                                               s.Remove(j, 1);
-                                       }
-                                       else
-                                       {
-                                               j++;
-                                       }
-                               }
-                       }
-               }
-               
-               internal static void  filter(System.Text.StringBuilder s, 
char[][] f)
-               {
-                       for (int i = 0; i < f.Length; i++)
-                       {
-                               char[] r = f[i];
-                               
-                               if (1 == r.Length)
-                               {

[529 lines skipped]
--- /home/jas/self/public-cvs/libidn/csharp/StringprepException.cs      
2007/01/04 09:37:57     1.3
+++ /home/jas/self/public-cvs/libidn/csharp/StringprepException.cs      
2007/03/13 10:06:44     1.4
@@ -1,39 +1,38 @@
-/// <summary>
-/// Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-/// *
-/// Author: Alexander Gnauck AG-Software
-/// *
-/// This file is part of GNU Libidn.
-/// *
-/// This program is free software; you can redistribute it and/or
-/// modify it under the terms of the GNU General Public License as
-/// published by the Free Software Foundation; either version 2 of the
-/// License, or (at your option) any later version.
-/// *
-/// This program is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-/// General Public License for more details.
-/// *
-/// You should have received a copy of the GNU General Public License
-/// along with this program; if not, write to the Free Software
-/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-/// 02111-1307 USA.
-/// </summary>
-
-using System;
-
-namespace gnu.inet.encoding
-{      
-       public class StringprepException:System.Exception
-       {
-               public static System.String CONTAINS_UNASSIGNED = "Contains 
unassigned code points.";
-               public static System.String CONTAINS_PROHIBITED = "Contains 
prohibited code points.";
-               public static System.String BIDI_BOTHRAL = "Contains both R and 
AL code points.";
-               public static System.String BIDI_LTRAL = "Leading and trailing 
code points not both R or AL.";
-               
-               public StringprepException(System.String m) : base(m)
-               {
-               }
-       }
+/// <summary>
+/// *
+/// Author: Alexander Gnauck AG-Software, mailto:address@hidden
+/// *
+/// This file is part of GNU Libidn.
+/// *
+/// This library is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU Lesser General Public License
+/// as published by the Free Software Foundation; either version 2.1 of
+/// the License, or (at your option) any later version.
+/// *
+/// This library is distributed in the hope that it will be useful, but
+/// WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+/// Lesser General Public License for more details.
+/// *
+/// You should have received a copy of the GNU Lesser General Public
+/// License along with this library; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+/// USA
+/// </summary>
+
+using System;
+
+namespace Gnu.Inet.Encoding
+{      
+       public class StringprepException : Exception
+       {
+               public static string CONTAINS_UNASSIGNED    = "Contains 
unassigned code points.";
+               public static string CONTAINS_PROHIBITED    = "Contains 
prohibited code points.";
+               public static string BIDI_BOTHRAL           = "Contains both R 
and AL code points.";
+               public static string BIDI_LTRAL             = "Leading and 
trailing code points not both R or AL.";
+
+        public StringprepException(string message) : base(message)
+               {
+               }
+       }
 }
\ No newline at end of file
--- /home/jas/self/public-cvs/libidn/csharp/libidn.csproj       2005/12/01 
23:34:14     1.1
+++ /home/jas/self/public-cvs/libidn/csharp/libidn.csproj       2007/03/13 
10:06:44     1.2
@@ -1,172 +1,59 @@
-<VisualStudioProject>
-    <CSHARP
-        ProjectType = "Local"
-        ProductVersion = "7.10.3077"
-        SchemaVersion = "2.0"
-        ProjectGuid = "{C1B5E659-780A-4EE1-A1A7-777131FAC43C}"
-    >
-        <Build>
-            <Settings
-                ApplicationIcon = ""
-                AssemblyKeyContainerName = ""
-                AssemblyName = "libidn"
-                AssemblyOriginatorKeyFile = ""
-                DefaultClientScript = "JScript"
-                DefaultHTMLPageLayout = "Grid"
-                DefaultTargetSchema = "IE50"
-                DelaySign = "false"
-                OutputType = "Library"
-                PreBuildEvent = ""
-                PostBuildEvent = ""
-                RootNamespace = ""
-                RunPostBuildEvent = "OnBuildSuccess"
-                StartupObject = ""
-            >
-                <Config
-                    Name = "Debug"
-                    AllowUnsafeBlocks = "false"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = ""
-                    DocumentationFile = ""
-                    DebugSymbols = "true"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "true"
-                    NoStdLib = "false"
-                    NoWarn = ""
-                    Optimize = "false"
-                    OutputPath = "bin\Debug\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "1"
-                />
-                <Config
-                    Name = "Release"
-                    AllowUnsafeBlocks = "false"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = ""
-                    DocumentationFile = ""
-                    DebugSymbols = "false"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "true"
-                    NoStdLib = "false"
-                    NoWarn = ""
-                    Optimize = "false"
-                    OutputPath = "bin\Release\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "1"
-                />
-            </Settings>
-            <References>
-                <Reference
-                    Name = "System"
-                    AssemblyName = "System"
-                />
-                <Reference
-                    Name = "System.Data"
-                    AssemblyName = "System.Data"
-                />
-                <Reference
-                    Name = "System.Drawing"
-                    AssemblyName = "System.Drawing"
-                />
-                <Reference
-                    Name = "System.Management"
-                    AssemblyName = "System.Management"
-                />
-                <Reference
-                    Name = "System.Windows.Forms"
-                    AssemblyName = "System.Windows.Forms"
-                />
-                <Reference
-                    Name = "System.Design"
-                    AssemblyName = "System.Design"
-                />
-                <Reference
-                    Name = "System.XML"
-                    AssemblyName = "System.Xml"
-                />
-                <Reference
-                    Name = "mscorlib"
-                    AssemblyName = "mscorlib"
-                />
-            </References>
-        </Build>
-        <Files>
-            <Include>
-                <File
-                    RelPath = "AssemblyInfo.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "CombiningClass.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "Composition.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "DecompositionKeys.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "DecompositionMappings.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "IDNA.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "IDNAException.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "NFKC.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "Punycode.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "PunycodeException.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "RFC3454.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "Stringprep.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "StringprepException.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-            </Include>
-        </Files>
-    </CSHARP>
-</VisualStudioProject>
-
+<Project DefaultTargets="Build" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"; 
xmlns:Conversion="urn:Conversion">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{BED43666-B1A2-486D-871C-A65A2A925764}</ProjectGuid>
+    <RootNamespace />
+    <AssemblyName>libidn</AssemblyName>
+    <OutputType>Library</OutputType>
+    <ApplicationIcon />
+    <WarningLevel>1</WarningLevel>
+    <NoWarn />
+    <StartupObject />
+    <NoStdLib>False</NoStdLib>
+    <NoConfig>False</NoConfig>
+    <RunPostBuildEvent>OnSuccessfulBuild</RunPostBuildEvent>
+    <PreBuildEvent />
+    <PostBuildEvent />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' 
">
+    <DebugSymbols>True</DebugSymbols>
+    <Optimize>False</Optimize>
+    <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
+    <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
+    <DefineConstants />
+    <OutputPath>bin\Debug\</OutputPath>
+    <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 
'Release|AnyCPU' ">
+    <DebugSymbols>False</DebugSymbols>
+    <Optimize>False</Optimize>
+    <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
+    <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
+    <DefineConstants />
+    <OutputPath>bin\Release\</OutputPath>
+    <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="AssemblyInfo.cs" />
+    <Compile Include="CombiningClass.cs" />
+    <Compile Include="Composition.cs" />
+    <Compile Include="DecompositionKeys.cs" />
+    <Compile Include="DecompositionMappings.cs" />
+    <Compile Include="IDNA.cs" />
+    <Compile Include="IDNAException.cs" />
+    <Compile Include="NFKC.cs" />
+    <Compile Include="Punycode.cs" />
+    <Compile Include="PunycodeException.cs" />
+    <Compile Include="RFC3454.cs" />
+    <Compile Include="Stringprep.cs" />
+    <Compile Include="StringprepException.cs" />
+  </ItemGroup>
+  <ItemGroup />
+  <ItemGroup />
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
+</Project>
\ No newline at end of file
--- /home/jas/self/public-cvs/libidn/csharp/libidn.csproj.user  2005/12/01 
23:34:14     1.1
+++ /home/jas/self/public-cvs/libidn/csharp/libidn.csproj.user  2007/03/13 
10:06:44     1.2
@@ -1,48 +1,10 @@
-<VisualStudioProject>
-    <CSHARP LastOpenVersion = "7.10.3077" >
-        <Build>
-            <Settings ReferencePath = "" >
-                <Config
-                    Name = "Debug"
-                    EnableASPDebugging = "false"
-                    EnableASPXDebugging = "false"
-                    EnableUnmanagedDebugging = "false"
-                    EnableSQLServerDebugging = "false"
-                    RemoteDebugEnabled = "false"
-                    RemoteDebugMachine = ""
-                    StartAction = "Project"
-                    StartArguments = ""
-                    StartPage = ""
-                    StartProgram = ""
-                    StartURL = ""
-                    StartWorkingDirectory = ""
-                    StartWithIE = "false"
-                />
-                <Config
-                    Name = "Release"
-                    EnableASPDebugging = "false"
-                    EnableASPXDebugging = "false"
-                    EnableUnmanagedDebugging = "false"
-                    EnableSQLServerDebugging = "false"
-                    RemoteDebugEnabled = "false"
-                    RemoteDebugMachine = ""
-                    StartAction = "Project"
-                    StartArguments = ""
-                    StartPage = ""
-                    StartProgram = ""
-                    StartURL = ""
-                    StartWorkingDirectory = ""
-                    StartWithIE = "true"
-                />
-            </Settings>
-        </Build>
-        <OtherProjectSettings
-            CopyProjectDestinationFolder = ""
-            CopyProjectUncPath = ""
-            CopyProjectOption = "0"
-            ProjectView = "ProjectFiles"
-            ProjectTrust = "0"
-        />
-    </CSHARP>
-</VisualStudioProject>
-
+<Project DefaultTargets="Build" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"; 
xmlns:Conversion="urn:Conversion">
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' 
">
+    <StartProgram />
+    <StartArguments />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 
'Release|AnyCPU' ">
+    <StartProgram />
+    <StartArguments />
+  </PropertyGroup>
+</Project>
\ No newline at end of file
--- /home/jas/self/public-cvs/libidn/csharp/libidn.sln  2005/12/01 23:34:14     
1.1
+++ /home/jas/self/public-cvs/libidn/csharp/libidn.sln  2007/03/13 10:06:44     
1.2
@@ -1,45 +1,18 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libidn", "libidn.csproj", 
"{C1B5E659-780A-4EE1-A1A7-777131FAC43C}"
-       ProjectSection(ProjectDependencies) = postProject
-       EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", 
"..\Tests\Tests.csproj", "{3160C7C4-1076-44FC-B28D-BE25A3E01722}"
-       ProjectSection(ProjectDependencies) = postProject
-       EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleTest", 
"..\ConsoleTest\ConsoleTest.csproj", "{906DFAD1-82AE-4A86-A6E3-449142B4CAC2}"
-       ProjectSection(ProjectDependencies) = postProject
-       EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IDNATest", 
"..\IDNATest\IDNATest.csproj", "{70359C49-71E8-4AD1-BA56-2590E339D9A9}"
-       ProjectSection(ProjectDependencies) = postProject
-       EndProjectSection
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+# SharpDevelop 2.1.0.2376
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libidn", "libidn.csproj", 
"{BED43666-B1A2-486D-871C-A65A2A925764}"
 EndProject
 Global
-       GlobalSection(SolutionConfiguration) = preSolution
-               Debug = Debug
-               Release = Release
-       EndGlobalSection
-       GlobalSection(ProjectConfiguration) = postSolution
-               {C1B5E659-780A-4EE1-A1A7-777131FAC43C}.Debug.ActiveCfg = 
Debug|.NET
-               {C1B5E659-780A-4EE1-A1A7-777131FAC43C}.Debug.Build.0 = 
Debug|.NET
-               {C1B5E659-780A-4EE1-A1A7-777131FAC43C}.Release.ActiveCfg = 
Release|.NET
-               {C1B5E659-780A-4EE1-A1A7-777131FAC43C}.Release.Build.0 = 
Release|.NET
-               {3160C7C4-1076-44FC-B28D-BE25A3E01722}.Debug.ActiveCfg = 
Debug|.NET
-               {3160C7C4-1076-44FC-B28D-BE25A3E01722}.Debug.Build.0 = 
Debug|.NET
-               {3160C7C4-1076-44FC-B28D-BE25A3E01722}.Release.ActiveCfg = 
Release|.NET
-               {3160C7C4-1076-44FC-B28D-BE25A3E01722}.Release.Build.0 = 
Release|.NET
-               {906DFAD1-82AE-4A86-A6E3-449142B4CAC2}.Debug.ActiveCfg = 
Debug|.NET
-               {906DFAD1-82AE-4A86-A6E3-449142B4CAC2}.Debug.Build.0 = 
Debug|.NET
-               {906DFAD1-82AE-4A86-A6E3-449142B4CAC2}.Release.ActiveCfg = 
Release|.NET
-               {906DFAD1-82AE-4A86-A6E3-449142B4CAC2}.Release.Build.0 = 
Release|.NET
-               {70359C49-71E8-4AD1-BA56-2590E339D9A9}.Debug.ActiveCfg = 
Debug|.NET
-               {70359C49-71E8-4AD1-BA56-2590E339D9A9}.Debug.Build.0 = 
Debug|.NET
-               {70359C49-71E8-4AD1-BA56-2590E339D9A9}.Release.ActiveCfg = 
Release|.NET
-               {70359C49-71E8-4AD1-BA56-2590E339D9A9}.Release.Build.0 = 
Release|.NET
-       EndGlobalSection
-       GlobalSection(ExtensibilityGlobals) = postSolution
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Any CPU = Debug|Any CPU
+               Release|Any CPU = Release|Any CPU
        EndGlobalSection
-       GlobalSection(ExtensibilityAddIns) = postSolution
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {BED43666-B1A2-486D-871C-A65A2A925764}.Debug|Any CPU.Build.0 = 
Debug|Any CPU
+               {BED43666-B1A2-486D-871C-A65A2A925764}.Debug|Any CPU.ActiveCfg 
= Debug|Any CPU
+               {BED43666-B1A2-486D-871C-A65A2A925764}.Release|Any CPU.Build.0 
= Release|Any CPU
+               {BED43666-B1A2-486D-871C-A65A2A925764}.Release|Any 
CPU.ActiveCfg = Release|Any CPU
        EndGlobalSection
 EndGlobal
Binary files /home/jas/self/public-cvs/libidn/csharp/libidn.suo 2005/12/01 
23:34:14     1.1 and /home/jas/self/public-cvs/libidn/csharp/libidn.suo      
2007/03/13 10:06:44     1.2 differ
Binary files /home/jas/self/public-cvs/libidn/csharp/libidn_PPC.suo     
2005/12/01 23:34:14     1.1 and 
/home/jas/self/public-cvs/libidn/csharp/libidn_PPC.suo  2007/03/13 10:06:44     
1.2 differ

--- /home/jas/self/public-cvs/libidn/csharp/libidn.cmbx 2007/03/13 10:06:45     
NONE
+++ /home/jas/self/public-cvs/libidn/csharp/libidn.cmbx 2007/03/13 10:06:45     
1.1
<Combine fileversion="1.0" name="libidn" description="">
  <StartMode startupentry="libidn" single="True">
    <Execute entry="libidn" type="None" />
  </StartMode>
  <Entries>
    <Entry filename=".\libidn.prjx" />
  </Entries>
  <Configurations active="Debug">
    <Configuration name="Release">
      <Entry name="libidn" configurationname="Debug" build="False" />
    </Configuration>
    <Configuration name="Debug">
      <Entry name="libidn" configurationname="Debug" build="False" />
    </Configuration>
  </Configurations>
</Combine>--- /home/jas/self/public-cvs/libidn/csharp/libidn.prjx       
2007/03/13 10:06:45     NONE
+++ /home/jas/self/public-cvs/libidn/csharp/libidn.prjx 2007/03/13 10:06:45     
1.1
<Project name="libidn" standardNamespace="" description="" newfilesearch="None" 
enableviewstate="True" version="1.1" projecttype="C#">
  <Contents>
    <File name=".\AssemblyInfo.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\CombiningClass.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\Composition.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\DecompositionKeys.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\DecompositionMappings.cs" subtype="Code" 
buildaction="Compile" dependson="" data="" />
    <File name=".\IDNA.cs" subtype="Code" buildaction="Compile" dependson="" 
data="" />
    <File name=".\IDNAException.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\NFKC.cs" subtype="Code" buildaction="Compile" dependson="" 
data="" />
    <File name=".\Punycode.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\PunycodeException.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\RFC3454.cs" subtype="Code" buildaction="Compile" dependson="" 
data="" />
    <File name=".\Stringprep.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\StringprepException.cs" subtype="Code" buildaction="Compile" 
dependson="" data="" />
    <File name=".\libidn.build" subtype="Code" buildaction="Nothing" 
dependson="" data="" />
  </Contents>
  <References />
  <DeploymentInformation target="" script="" strategy="File" />
  <Configuration runwithwarnings="True" name="Debug">
    <CodeGeneration runtime="Mono" compiler="Mcs" compilerversion="Standard" 
warninglevel="1" nowarn="" includedebuginformation="True" optimize="False" 
unsafecodeallowed="False" generateoverflowchecks="False" mainclass="" 
target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" 
noconfig="False" nostdlib="False" />
    <Execution commandlineparameters="" consolepause="True" />
    <Output directory=".\bin\Debug" assembly="libidn" executeScript="" 
executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" 
executeAfterBuildArguments="" />
  </Configuration>
  <Configurations active="Debug">
    <Configuration runwithwarnings="True" name="Debug">
      <CodeGeneration runtime="Mono" compiler="Mcs" compilerversion="Standard" 
warninglevel="1" nowarn="" includedebuginformation="True" optimize="False" 
unsafecodeallowed="False" generateoverflowchecks="False" mainclass="" 
target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" 
noconfig="False" nostdlib="False" />
      <Execution commandlineparameters="" consolepause="True" />
      <Output directory=".\bin\Debug" assembly="libidn" executeScript="" 
executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" 
executeAfterBuildArguments="" />
    </Configuration>
    <Configuration runwithwarnings="True" name="Release">
      <CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" 
warninglevel="1" nowarn="" includedebuginformation="False" optimize="False" 
unsafecodeallowed="False" generateoverflowchecks="False" mainclass="" 
target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" 
noconfig="False" nostdlib="False" />
      <Execution commandlineparameters="" consolepause="True" />
      <Output directory=".\bin\Release" assembly="libidn" executeScript="" 
executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" 
executeAfterBuildArguments="" />
    </Configuration>
  </Configurations>
</Project>




reply via email to

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