diff -r e8619defde14 -r 27c7511c0e34 src/server/webdav/saxhandler.h --- a/src/server/webdav/saxhandler.h Wed May 16 12:47:28 2012 +0200 +++ b/src/server/webdav/saxhandler.h Thu May 24 12:51:52 2012 +0200 @@ -35,6 +35,13 @@ using namespace xercesc; +/* stack */ +#define XSTACK_PUSH(elm) xstack_push(&xmlStack, elm) +#define XSTACK_POP() xstack_pop(&xmlStack) +#define XSTACK_CUR() (xmlStack) ? (XmlElement*)xmlStack->data : NULL; +void xstack_push(UcxDlist **stack, XmlElement *elm); +XmlElement* xstack_pop(UcxDlist **stack); + class PropfindHandler : public DefaultHandler { public: PropfindHandler(PropfindRequest *rq, pool_handle_t *p); @@ -91,10 +98,12 @@ pool_handle_t *pool; bool davPropTag; - XmlElement *rxprop; /* root of xml property */ - XmlElement *cxprop; /* current element */ - DavProperty *property; - int updateMode; /* 0 = set, 1 = remove */ + XmlElement *rootElement; + XmlElement *newElement; + UcxDlist *xmlStack; + + //DavProperty *property; + int updateMode; /* 0 = set, 1 = remove, -1 = undefined */ }; #endif /* SAXHANDLER_H */