diff options
Diffstat (limited to 'lexlib')
| -rw-r--r-- | lexlib/PropSetSimple.cxx | 23 | ||||
| -rw-r--r-- | lexlib/PropSetSimple.h | 1 | 
2 files changed, 7 insertions, 17 deletions
| diff --git a/lexlib/PropSetSimple.cxx b/lexlib/PropSetSimple.cxx index c0ec59459..9197fb642 100644 --- a/lexlib/PropSetSimple.cxx +++ b/lexlib/PropSetSimple.cxx @@ -141,30 +141,21 @@ static int ExpandAllInPlace(const PropSetSimple &props, std::string &withVars, i  	return maxExpands;  } -char *PropSetSimple::Expanded(const char *key) const { +int PropSetSimple::GetExpanded(const char *key, char *result) const {  	std::string val = Get(key);  	ExpandAllInPlace(*this, val, 100, VarChain(key)); -	char *ret = new char [val.size() + 1]; -	strcpy(ret, val.c_str()); -	return ret; -} - -int PropSetSimple::GetExpanded(const char *key, char *result) const { -	char *val = Expanded(key); -	const int n = static_cast<int>(strlen(val)); +	const int n = static_cast<int>(val.size());  	if (result) { -		strcpy(result, val); +		strcpy(result, val.c_str());  	} -	delete []val;  	return n;	// Not including NUL  }  int PropSetSimple::GetInt(const char *key, int defaultValue) const { -	char *val = Expanded(key); -	if (val) { -		int retVal = val[0] ? atoi(val) : defaultValue; -		delete []val; -		return retVal; +	std::string val = Get(key); +	ExpandAllInPlace(*this, val, 100, VarChain(key)); +	if (!val.empty()) { +		return atoi(val.c_str());  	}  	return defaultValue;  } diff --git a/lexlib/PropSetSimple.h b/lexlib/PropSetSimple.h index b79873720..8ca741f03 100644 --- a/lexlib/PropSetSimple.h +++ b/lexlib/PropSetSimple.h @@ -21,7 +21,6 @@ public:  	void Set(const char *key, const char *val, int lenKey=-1, int lenVal=-1);  	void SetMultiple(const char *);  	const char *Get(const char *key) const; -	char *Expanded(const char *key) const;  	int GetExpanded(const char *key, char *result) const;  	int GetInt(const char *key, int defaultValue=0) const;  }; | 
