-#define SURFXML_START_TAG(tag) STag_surfxml_##tag()
-#define SURFXML_END_TAG(tag) do { ETag_surfxml_##tag(); SURFXML_BUFFER_RESET(); } while(0)
-
-/*WHY DELETE THIS DAVID????*/
-
-XBT_PUBLIC(void) surfxml_add_callback(xbt_dynar_t cb_list, void_f_void_t function);
-XBT_PUBLIC(void) surfxml_del_callback(xbt_dynar_t* cb_list, void_f_void_t function);
+#define SURFXML_START_TAG(tag) do{ \
+ surfxml_buffer_stack_stack[surfxml_buffer_stack_stack_ptr] = AX_ptr;\
+ surfxml_buffer_stack_stack_ptr++;\
+ STag_surfxml_##tag(); \
+ }while(0)
+
+#define SURFXML_END_TAG(tag) do{ \
+ surfxml_buffer_stack_stack_ptr--;\
+ AX_ptr = surfxml_buffer_stack_stack[surfxml_buffer_stack_stack_ptr-1];\
+ ETag_surfxml_##tag();\
+ } while(0)
+
+XBT_PUBLIC(void) surfxml_add_callback(xbt_dynar_t cb_list,
+ void_f_void_t function);
+XBT_PUBLIC(void) surfxml_del_callback(xbt_dynar_t cb_list,
+ void_f_void_t function);