diff --git a/mozilla/content/html/style/src/nsCSSStyleSheet.cpp b/mozilla/content/html/style/src/nsCSSStyleSheet.cpp
index c14fc1c3afb..e056f4315e8 100644
--- a/mozilla/content/html/style/src/nsCSSStyleSheet.cpp
+++ b/mozilla/content/html/style/src/nsCSSStyleSheet.cpp
@@ -885,12 +885,13 @@ nsresult CSSStyleSheetImpl::QueryInterface(const nsIID& aIID,
static const PRUnichar kNullCh = PRUnichar('\0');
-static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
+static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue, PRBool aCaseSensitive)
{
nsAutoString valueList(aValueList);
valueList.Append(kNullCh); // put an extra null at the end
+ PRUnichar* value = (PRUnichar*)aValue;
PRUnichar* start = (PRUnichar*)valueList;
PRUnichar* end = start;
@@ -905,8 +906,17 @@ static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
}
*end = kNullCh; // end string here
- if ((start < end) && (aValue == start)) {
- return PR_TRUE;
+ if (start < end) {
+ if (aCaseSensitive) {
+ if (aValue.Equals(value, start)) {
+ return PR_TRUE;
+ }
+ }
+ else {
+ if (aValue.EqualsIgnoreCase(value, start)) {
+ return PR_TRUE;
+ }
+ }
}
start = ++end;
@@ -916,12 +926,13 @@ static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
static const PRUnichar kDashCh = PRUnichar('-');
-static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue)
+static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue, PRBool aCaseSensitive)
{
nsAutoString valueList(aValueList);
valueList.Append(kNullCh); // put an extra null at the end
+ PRUnichar* value = (PRUnichar*)aValue;
PRUnichar* start = (PRUnichar*)valueList;
PRUnichar* end = start;
@@ -936,8 +947,17 @@ static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue)
}
*end = kNullCh; // end string here
- if ((start < end) && (aValue == start)) {
- return PR_TRUE;
+ if (start < end) {
+ if (aCaseSensitive) {
+ if (aValue.Equals(value, start)) {
+ return PR_TRUE;
+ }
+ }
+ else {
+ if (aValue.EqualsIgnoreCase(value, start)) {
+ return PR_TRUE;
+ }
+ }
}
}
return PR_FALSE;
@@ -977,16 +997,10 @@ static PRBool SelectorMatches(nsIPresContext* aPresContext,
}
break;
case NS_ATTR_FUNC_INCLUDES:
- if (PR_FALSE == attr->mCaseSensitive) {
- value.ToUpperCase();
- }
- result = ValueIncludes(value, attr->mValue);
+ result = ValueIncludes(value, attr->mValue, attr->mCaseSensitive);
break;
case NS_ATTR_FUNC_DASHMATCH:
- if (PR_FALSE == attr->mCaseSensitive) {
- value.ToUpperCase();
- }
- result = ValueDashMatch(value, attr->mValue);
+ result = ValueDashMatch(value, attr->mValue, attr->mCaseSensitive);
break;
}
}
diff --git a/mozilla/layout/html/style/src/nsCSSStyleSheet.cpp b/mozilla/layout/html/style/src/nsCSSStyleSheet.cpp
index c14fc1c3afb..e056f4315e8 100644
--- a/mozilla/layout/html/style/src/nsCSSStyleSheet.cpp
+++ b/mozilla/layout/html/style/src/nsCSSStyleSheet.cpp
@@ -885,12 +885,13 @@ nsresult CSSStyleSheetImpl::QueryInterface(const nsIID& aIID,
static const PRUnichar kNullCh = PRUnichar('\0');
-static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
+static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue, PRBool aCaseSensitive)
{
nsAutoString valueList(aValueList);
valueList.Append(kNullCh); // put an extra null at the end
+ PRUnichar* value = (PRUnichar*)aValue;
PRUnichar* start = (PRUnichar*)valueList;
PRUnichar* end = start;
@@ -905,8 +906,17 @@ static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
}
*end = kNullCh; // end string here
- if ((start < end) && (aValue == start)) {
- return PR_TRUE;
+ if (start < end) {
+ if (aCaseSensitive) {
+ if (aValue.Equals(value, start)) {
+ return PR_TRUE;
+ }
+ }
+ else {
+ if (aValue.EqualsIgnoreCase(value, start)) {
+ return PR_TRUE;
+ }
+ }
}
start = ++end;
@@ -916,12 +926,13 @@ static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
static const PRUnichar kDashCh = PRUnichar('-');
-static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue)
+static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue, PRBool aCaseSensitive)
{
nsAutoString valueList(aValueList);
valueList.Append(kNullCh); // put an extra null at the end
+ PRUnichar* value = (PRUnichar*)aValue;
PRUnichar* start = (PRUnichar*)valueList;
PRUnichar* end = start;
@@ -936,8 +947,17 @@ static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue)
}
*end = kNullCh; // end string here
- if ((start < end) && (aValue == start)) {
- return PR_TRUE;
+ if (start < end) {
+ if (aCaseSensitive) {
+ if (aValue.Equals(value, start)) {
+ return PR_TRUE;
+ }
+ }
+ else {
+ if (aValue.EqualsIgnoreCase(value, start)) {
+ return PR_TRUE;
+ }
+ }
}
}
return PR_FALSE;
@@ -977,16 +997,10 @@ static PRBool SelectorMatches(nsIPresContext* aPresContext,
}
break;
case NS_ATTR_FUNC_INCLUDES:
- if (PR_FALSE == attr->mCaseSensitive) {
- value.ToUpperCase();
- }
- result = ValueIncludes(value, attr->mValue);
+ result = ValueIncludes(value, attr->mValue, attr->mCaseSensitive);
break;
case NS_ATTR_FUNC_DASHMATCH:
- if (PR_FALSE == attr->mCaseSensitive) {
- value.ToUpperCase();
- }
- result = ValueDashMatch(value, attr->mValue);
+ result = ValueDashMatch(value, attr->mValue, attr->mCaseSensitive);
break;
}
}
diff --git a/mozilla/layout/style/nsCSSStyleSheet.cpp b/mozilla/layout/style/nsCSSStyleSheet.cpp
index c14fc1c3afb..e056f4315e8 100644
--- a/mozilla/layout/style/nsCSSStyleSheet.cpp
+++ b/mozilla/layout/style/nsCSSStyleSheet.cpp
@@ -885,12 +885,13 @@ nsresult CSSStyleSheetImpl::QueryInterface(const nsIID& aIID,
static const PRUnichar kNullCh = PRUnichar('\0');
-static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
+static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue, PRBool aCaseSensitive)
{
nsAutoString valueList(aValueList);
valueList.Append(kNullCh); // put an extra null at the end
+ PRUnichar* value = (PRUnichar*)aValue;
PRUnichar* start = (PRUnichar*)valueList;
PRUnichar* end = start;
@@ -905,8 +906,17 @@ static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
}
*end = kNullCh; // end string here
- if ((start < end) && (aValue == start)) {
- return PR_TRUE;
+ if (start < end) {
+ if (aCaseSensitive) {
+ if (aValue.Equals(value, start)) {
+ return PR_TRUE;
+ }
+ }
+ else {
+ if (aValue.EqualsIgnoreCase(value, start)) {
+ return PR_TRUE;
+ }
+ }
}
start = ++end;
@@ -916,12 +926,13 @@ static PRBool ValueIncludes(const nsString& aValueList, const nsString& aValue)
static const PRUnichar kDashCh = PRUnichar('-');
-static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue)
+static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue, PRBool aCaseSensitive)
{
nsAutoString valueList(aValueList);
valueList.Append(kNullCh); // put an extra null at the end
+ PRUnichar* value = (PRUnichar*)aValue;
PRUnichar* start = (PRUnichar*)valueList;
PRUnichar* end = start;
@@ -936,8 +947,17 @@ static PRBool ValueDashMatch(const nsString& aValueList, const nsString& aValue)
}
*end = kNullCh; // end string here
- if ((start < end) && (aValue == start)) {
- return PR_TRUE;
+ if (start < end) {
+ if (aCaseSensitive) {
+ if (aValue.Equals(value, start)) {
+ return PR_TRUE;
+ }
+ }
+ else {
+ if (aValue.EqualsIgnoreCase(value, start)) {
+ return PR_TRUE;
+ }
+ }
}
}
return PR_FALSE;
@@ -977,16 +997,10 @@ static PRBool SelectorMatches(nsIPresContext* aPresContext,
}
break;
case NS_ATTR_FUNC_INCLUDES:
- if (PR_FALSE == attr->mCaseSensitive) {
- value.ToUpperCase();
- }
- result = ValueIncludes(value, attr->mValue);
+ result = ValueIncludes(value, attr->mValue, attr->mCaseSensitive);
break;
case NS_ATTR_FUNC_DASHMATCH:
- if (PR_FALSE == attr->mCaseSensitive) {
- value.ToUpperCase();
- }
- result = ValueDashMatch(value, attr->mValue);
+ result = ValueDashMatch(value, attr->mValue, attr->mCaseSensitive);
break;
}
}