diff --git a/confparser/space.cpp b/confparser/space.cpp index 68e9ade..b8e5123 100755 --- a/confparser/space.cpp +++ b/confparser/space.cpp @@ -343,7 +343,33 @@ return def; } +std::wstring & Space::FindAdd(const wchar_t * name) +{ + tmp_name = name; + std::wstring * value = GetValue(tmp_name); + if( !value ) + { + value = &table_single[tmp_name]; + table.erase(tmp_name); + } + +return *value; +} + + +std::wstring & Space::FindAdd(const std::wstring & name) +{ + std::wstring * value = GetValue(name); + + if( !value ) + { + value = &table_single[name]; + table.erase(name); + } + +return *value; +} std::wstring & Space::Add(const wchar_t * name, bool value) diff --git a/confparser/space.h b/confparser/space.h index d19a30b..98c80b4 100755 --- a/confparser/space.h +++ b/confparser/space.h @@ -212,6 +212,9 @@ public: bool Bool(const wchar_t * name, bool def); bool Bool(const std::wstring & name, bool def); + std::wstring & FindAdd(const wchar_t * name); + std::wstring & FindAdd(const std::wstring & name); + std::wstring & Add(const wchar_t * name, bool value); std::wstring & Add(const std::wstring & name, bool value);