Index: third_party/libxslt/libxslt/xsltutils.c |
=================================================================== |
--- third_party/libxslt/libxslt/xsltutils.c (revision 39981) |
+++ third_party/libxslt/libxslt/xsltutils.c (working copy) |
@@ -1039,6 +1039,12 @@ |
} |
} else { |
if (res->type == XPATH_STRING) { |
+ if (comp->locale != (xsltLocale)0) { |
+ xmlChar *str = res->stringval; |
+ res->stringval = (xmlChar *) xsltStrxfrm(comp->locale, str); |
+ xmlFree(str); |
+ } |
+ |
results[i] = res; |
} else { |
#ifdef WITH_XSLT_DEBUG_PROCESS |
@@ -1191,6 +1197,11 @@ |
results[j + incr]->floatval) |
tst = 1; |
else tst = -1; |
+ } else if(comp->locale != (xsltLocale)0) { |
+ tst = xsltLocaleStrcmp( |
+ comp->locale, |
+ (xsltLocaleChar *) results[j]->stringval, |
+ (xsltLocaleChar *) results[j + incr]->stringval); |
} else { |
tst = xmlStrcmp(results[j]->stringval, |
results[j + incr]->stringval); |
@@ -1245,6 +1256,11 @@ |
res[j + incr]->floatval) |
tst = 1; |
else tst = -1; |
+ } else if(comp->locale != (xsltLocale)0) { |
+ tst = xsltLocaleStrcmp( |
+ comp->locale, |
+ (xsltLocaleChar *) res[j]->stringval, |
+ (xsltLocaleChar *) res[j + incr]->stringval); |
} else { |
tst = xmlStrcmp(res[j]->stringval, |
res[j + incr]->stringval); |