Fix and simplify QBasedComparer.
Make parsing of qvalues independent from a system's language setting and ensure that the comparison adheres to a descending order.0.7.1-dev
parent
c169a62f55
commit
19d3792278
|
@ -29,6 +29,7 @@ using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Security;
|
using System.Net.Security;
|
||||||
|
@ -557,34 +558,27 @@ namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
float qx = GetQ(x);
|
float qx = GetQ(x);
|
||||||
float qy = GetQ(y);
|
float qy = GetQ(y);
|
||||||
if (qx < qy)
|
return qy.CompareTo(qx); // descending order
|
||||||
return -1;
|
|
||||||
if (qx == qy)
|
|
||||||
return 0;
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private float GetQ(Object o)
|
private float GetQ(Object o)
|
||||||
{
|
{
|
||||||
// Example: image/png;q=0.9
|
// Example: image/png;q=0.9
|
||||||
|
|
||||||
|
float qvalue = 1F;
|
||||||
if (o is String)
|
if (o is String)
|
||||||
{
|
{
|
||||||
string mime = (string)o;
|
string mime = (string)o;
|
||||||
string[] parts = mime.Split(new char[] { ';' });
|
string[] parts = mime.Split(';');
|
||||||
if (parts.Length > 1)
|
if (parts.Length > 1)
|
||||||
{
|
{
|
||||||
string[] kvp = parts[1].Split(new char[] { '=' });
|
string[] kvp = parts[1].Split('=');
|
||||||
if (kvp.Length == 2 && kvp[0] == "q")
|
if (kvp.Length == 2 && kvp[0] == "q")
|
||||||
{
|
float.TryParse(kvp[1], NumberStyles.Number, CultureInfo.InvariantCulture, out qvalue);
|
||||||
float qvalue = 1F;
|
|
||||||
float.TryParse(kvp[1], out qvalue);
|
|
||||||
return qvalue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1F;
|
return qvalue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue