summaryrefslogtreecommitdiffstats
path: root/src/dom/xpathparser.cpp
diff options
context:
space:
mode:
authorBob Jamison <ishmalius@gmail.com>2006-04-30 00:34:33 +0000
committerishmal <ishmal@users.sourceforge.net>2006-04-30 00:34:33 +0000
commit3f0a67f1da57a32a820ea6aca2db330985acdc59 (patch)
tree611f5ac3c2690f6a8aed988fe329df6853766f57 /src/dom/xpathparser.cpp
parentupdated cc licenses to 2.5 (diff)
downloadinkscape-3f0a67f1da57a32a820ea6aca2db330985acdc59.tar.gz
inkscape-3f0a67f1da57a32a820ea6aca2db330985acdc59.zip
Rework Stack class to TokenExecutor, to support an Axis stack
(bzr r638)
Diffstat (limited to 'src/dom/xpathparser.cpp')
-rw-r--r--src/dom/xpathparser.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dom/xpathparser.cpp b/src/dom/xpathparser.cpp
index 47a9a146a..cc6488eed 100644
--- a/src/dom/xpathparser.cpp
+++ b/src/dom/xpathparser.cpp
@@ -730,6 +730,8 @@ int XPathParser::getRelativeLocationPath(int p0, int depth)
if (t.getType() == OPERATOR && t.getIntValue()==DOUBLE_SLASH)
{
p++;
+ // a '//' is an abbreviation for /descendant-or-self:node()/
+ tokAdd(new TokAxisDescendantOrSelf());
p2 = getRelativeLocationPath(p, depth+1);
if (p2 < 0)
{
@@ -2024,7 +2026,8 @@ NodeList XPathParser::evaluate(const Node *root,
tokens.dump();
//### Execute the token list
- list = tokens.execute(root);
+ TokenExecutor executor;
+ list = executor.execute(tokens, root);
return list;
}