Skip to content
Snippets Groups Projects
Commit adffd24cfbe4 authored by William M. Brack's avatar William M. Brack
Browse files

modified the 'tokenize' routine to work with UTF8 chars in both string and

* libexslt/strings.c: modified the 'tokenize' routine to work with
  UTF8 chars in both string and tokens (Bug 136183)
parent 61b586a2faf6
Branches
No related tags found
No related merge requests found
Wed Mar 10 17:14:13 HKT 2004 William Brack <wbrack@mmm.com.hk>
* libexslt/strings.c: modified the 'tokenize' routine to work with
UTF8 chars in both string and tokens (Bug 136183)
Tue Mar 9 23:44:31 HKT 2004 William Brack <wbrack@mmm.com.hk>
* libxslt/attrvt.c: added coding to allow growing the
......
......@@ -38,6 +38,7 @@
xmlNodePtr node;
xmlDocPtr container;
xmlXPathObjectPtr ret = NULL;
int clen, tlen;
if ((nargs < 1) || (nargs > 2)) {
xmlXPathSetArityError(ctxt);
......@@ -74,8 +75,10 @@
ret = xmlXPathNewNodeSet(NULL);
if (ret != NULL) {
ret->boolval = 0; /* Freeing is not handled there anymore */
for (cur = str, token = str; *cur != 0; cur++) {
for (delimiter = delimiters; *delimiter != 0; delimiter++) {
if (*cur == *delimiter) {
for (cur = str, token = str; *cur != 0; cur += clen) {
clen = xmlUTF8Size(cur);
for (delimiter = delimiters; *delimiter != 0;
delimiter += tlen) {
if (!xmlUTF8Charcmp(cur, delimiter)) {
if (cur == token) {
/* discard empty tokens */
......@@ -80,5 +83,5 @@
if (cur == token) {
/* discard empty tokens */
token = cur + 1;
token = cur + clen;
break;
}
......@@ -83,7 +86,7 @@
break;
}
*cur = 0;
*cur = 0; /* terminate the token */
node = xmlNewDocRawNode(container, NULL,
(const xmlChar *) "token", token);
xmlAddChild((xmlNodePtr) container, node);
xmlXPathNodeSetAddUnique(ret->nodesetval, node);
......@@ -86,8 +89,8 @@
node = xmlNewDocRawNode(container, NULL,
(const xmlChar *) "token", token);
xmlAddChild((xmlNodePtr) container, node);
xmlXPathNodeSetAddUnique(ret->nodesetval, node);
*cur = *delimiter;
token = cur + 1;
*cur = *delimiter; /* restore the changed byte */
token = cur + clen;
break;
}
......@@ -92,5 +95,6 @@
break;
}
tlen = xmlUTF8Size(token);
}
}
if (token != cur) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment