[Top][All Lists]
[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>
- CVS libidn/csharp, libidn-commit, 2007/03/13
- CVS libidn/csharp, libidn-commit, 2007/03/13
- CVS libidn/csharp, libidn-commit, 2007/03/13
- CVS libidn/csharp,
libidn-commit <=
- CVS libidn/csharp, libidn-commit, 2007/03/13
- CVS libidn/csharp, libidn-commit, 2007/03/13
- CVS libidn/csharp, libidn-commit, 2007/03/13
- CVS libidn/csharp, libidn-commit, 2007/03/13
- CVS libidn/csharp, libidn-commit, 2007/03/13