From d3dc88fe6bae0371c3e314cfc6db4ca8a06a4ab6 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Fri, 12 Dec 2014 00:44:17 -0500 Subject: Settings: Fail on invalid sequence and throw exception for LuaSettings --- src/settings.h | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'src/settings.h') diff --git a/src/settings.h b/src/settings.h index ba7e9c144..89f7589df 100644 --- a/src/settings.h +++ b/src/settings.h @@ -112,6 +112,8 @@ public: bool updateConfigObject(std::istream &is, std::ostream &os, const std::string &end, u32 tab_depth=0); + static bool checkNameValid(const std::string &name); + static bool checkValueValid(const std::string &value); static std::string sanitizeName(const std::string &name); static std::string sanitizeValue(const std::string &value); static std::string getMultiline(std::istream &is, size_t *num_lines=NULL); @@ -175,23 +177,23 @@ public: // N.B. Groups not allocated with new must be set to NULL in the settings // tree before object destruction. - void setEntry(const std::string &name, const void *entry, + bool setEntry(const std::string &name, const void *entry, bool set_group, bool set_default); - void set(const std::string &name, const std::string &value); - void setDefault(const std::string &name, const std::string &value); - void setGroup(const std::string &name, Settings *group); - void setGroupDefault(const std::string &name, Settings *group); - void setBool(const std::string &name, bool value); - void setS16(const std::string &name, s16 value); - void setU16(const std::string &name, u16 value); - void setS32(const std::string &name, s32 value); - void setU64(const std::string &name, u64 value); - void setFloat(const std::string &name, float value); - void setV2F(const std::string &name, v2f value); - void setV3F(const std::string &name, v3f value); - void setFlagStr(const std::string &name, u32 flags, + bool set(const std::string &name, const std::string &value); + bool setDefault(const std::string &name, const std::string &value); + bool setGroup(const std::string &name, Settings *group); + bool setGroupDefault(const std::string &name, Settings *group); + bool setBool(const std::string &name, bool value); + bool setS16(const std::string &name, s16 value); + bool setU16(const std::string &name, u16 value); + bool setS32(const std::string &name, s32 value); + bool setU64(const std::string &name, u64 value); + bool setFloat(const std::string &name, float value); + bool setV2F(const std::string &name, v2f value); + bool setV3F(const std::string &name, v3f value); + bool setFlagStr(const std::string &name, u32 flags, const FlagDesc *flagdesc, u32 flagmask); - void setNoiseParams(const std::string &name, const NoiseParams &np, + bool setNoiseParams(const std::string &name, const NoiseParams &np, bool set_default=false); // N.B. if setStruct() is used to write a non-POD aggregate type, // the behavior is undefined. -- cgit v1.2.3