webservices: Implement WS_MOVE_TO_END_ELEMENT in the reader.
Signed-off-by: Hans Leidekker <hans@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
5c4a061f39
commit
88e53782e8
|
@ -1405,6 +1405,25 @@ static BOOL move_to_child_element( struct reader *reader )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL move_to_end_element( struct reader *reader )
|
||||||
|
{
|
||||||
|
struct list *ptr;
|
||||||
|
struct node *node = reader->current;
|
||||||
|
|
||||||
|
if (node->hdr.node.nodeType != WS_XML_NODE_TYPE_ELEMENT) return FALSE;
|
||||||
|
|
||||||
|
if ((ptr = list_tail( &node->children )))
|
||||||
|
{
|
||||||
|
struct node *tail = LIST_ENTRY( ptr, struct node, entry );
|
||||||
|
if (tail->hdr.node.nodeType == WS_XML_NODE_TYPE_END_ELEMENT)
|
||||||
|
{
|
||||||
|
reader->current = tail;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT read_move_to( struct reader *reader, WS_MOVE_TO move, BOOL *found )
|
static HRESULT read_move_to( struct reader *reader, WS_MOVE_TO move, BOOL *found )
|
||||||
{
|
{
|
||||||
struct list *ptr;
|
struct list *ptr;
|
||||||
|
@ -1434,6 +1453,10 @@ static HRESULT read_move_to( struct reader *reader, WS_MOVE_TO move, BOOL *found
|
||||||
success = move_to_child_element( reader );
|
success = move_to_child_element( reader );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WS_MOVE_TO_END_ELEMENT:
|
||||||
|
success = move_to_end_element( reader );
|
||||||
|
break;
|
||||||
|
|
||||||
case WS_MOVE_TO_FIRST_NODE:
|
case WS_MOVE_TO_FIRST_NODE:
|
||||||
if ((ptr = list_head( &reader->current->parent->children )))
|
if ((ptr = list_head( &reader->current->parent->children )))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue