зеркало из https://github.com/mozilla/pjs.git
Not part of regular build. Added fix for expressions starting with '/'
This commit is contained in:
Родитель
6c4b489af2
Коммит
6e4d722387
|
@ -29,7 +29,7 @@
|
||||||
* - foo//bar would not match properly if there was more than
|
* - foo//bar would not match properly if there was more than
|
||||||
* one node in the NodeSet (nodes) on the final iteration
|
* one node in the NodeSet (nodes) on the final iteration
|
||||||
*
|
*
|
||||||
* $Id: PathExpr.cpp,v 1.3 2000-05-29 07:15:17 kvisco%ziplink.net Exp $
|
* $Id: PathExpr.cpp,v 1.4 2000-11-07 10:42:35 kvisco%ziplink.net Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Expr.h"
|
#include "Expr.h"
|
||||||
|
@ -239,7 +239,11 @@ MBool PathExpr::matches(Node* node, Node* context, ContextState* cs) {
|
||||||
case PARENT_OP:
|
case PARENT_OP:
|
||||||
{
|
{
|
||||||
Node* parent = cs->getParentNode(node);
|
Node* parent = cs->getParentNode(node);
|
||||||
if (parent) return pxi->pExpr->matches(node, parent, cs);
|
if (parent) {
|
||||||
|
//-- make sure node is Document node
|
||||||
|
if (parent->getNodeType() == Node::DOCUMENT_NODE)
|
||||||
|
return pxi->pExpr->matches(node, parent, cs);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -285,6 +289,11 @@ MBool PathExpr::matches(Node* node, Node* context, ContextState* cs) {
|
||||||
{
|
{
|
||||||
Node* parent = cs->getParentNode(tnode);
|
Node* parent = cs->getParentNode(tnode);
|
||||||
if (parent) {
|
if (parent) {
|
||||||
|
|
||||||
|
//-- make sure we have a document node if necessary
|
||||||
|
if ( !iter->hasNext() )
|
||||||
|
if (parent->getNodeType() != Node::DOCUMENT_NODE) break;
|
||||||
|
|
||||||
if (pxi->pExpr->matches(tnode, parent, cs))
|
if (pxi->pExpr->matches(tnode, parent, cs))
|
||||||
tmpNodes.add(parent);
|
tmpNodes.add(parent);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче