]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/parser.cpp
Use separate etst files for subsystems.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / parser.cpp
index 52c0ea9ba114018e4dae5d594d0835761bd0a6c4..e52eb3faf72f828e79c7eac31df1fa279511fe96 100644 (file)
 
 #include "parser.h"
 
-#include "stg/tariffs.h"
-#include "stg/admin.h"
-#include "stg/users.h"
-#include "stg/user_property.h"
-#include "stg/settings.h"
-#include "stg/logger.h"
-#include "stg/version.h"
-#include "stg/store.h"
-
 #include <cstring>
-#include <cstdio> // sprintf
 
 //-----------------------------------------------------------------------------
 //  BASE PARSER
 //-----------------------------------------------------------------------------
-int BASE_PARSER::Start(void *, const char *el, const char **)
+int BASE_PARSER::Start(void *, const char * el, const char **)
 {
-if (strcasecmp(el, tag.c_str()) == 0)
-    return 0;
+    if (strcasecmp(el, m_tag.c_str()) == 0)
+        return 0;
 
-return -1;
+    return -1;
 }
 //-----------------------------------------------------------------------------
-int BASE_PARSER::End(void *, const char *el)
+int BASE_PARSER::End(void *, const char * el)
 {
-if (strcasecmp(el, tag.c_str()) == 0)
+    if (m_depth < 2)
     {
-    CreateAnswer();
-    return 0;
+        if (strcasecmp(el, m_tag.c_str()) != 0)
+            return -1;
+        CreateAnswer();
+        m_done = true;
     }
 
-return -1;
+    --m_depth;
+    return 0;
 }