+2007-02-23 Nagappan A <anagappan@novell.com>
+
+ * Comparison.cs (Compare): Extra space characters issue when using
+ System.Data.DataTable.Select. Fixes bug # 79695.
+
2006-12-07 Nagappan A <anagappan@novell.com>
* Parser.jay (ColumnName): Fix Invalid DataColumn Expression, bug
}
+ // certain trailing whitespace chars (including space) are ignored by .NET when comparing strings. See bug #79695.
+ private static readonly char[] IgnoredTrailingChars = { (char) 0x20, (char) 0x3000, (char) 0xFEFF };
+
internal static int Compare (IComparable o1, IComparable o2, bool caseSensitive)
{
//TODO: turn this "conversion pipeline" into something nicer
throw new EvaluateException (String.Format ("Cannot perform compare operation on {0} and {1}.", o1.GetType(), o2.GetType()));
}
- if (o1 is string && o2 is string && !caseSensitive) {
- o1 = ((string)o1).ToLower();
- o2 = ((string)o2).ToLower();
+ if (o1 is string && o2 is string) {
+ o1 = ((string) o1).TrimEnd (IgnoredTrailingChars);
+ o2 = ((string) o2).TrimEnd (IgnoredTrailingChars);
+ if (!caseSensitive) {
+ o1 = ((string) o1).ToLower ();
+ o2 = ((string) o2).ToLower ();
+ }
}
if (o1.GetType () != o2.GetType ())