diff options
| -rw-r--r-- | src/pugixml.cpp | 40 | ||||
| -rw-r--r-- | src/pugixml.hpp | 32 | 
2 files changed, 62 insertions, 10 deletions
| diff --git a/src/pugixml.cpp b/src/pugixml.cpp index 2bb0b7b..c1797c5 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -1875,31 +1875,25 @@ namespace pugi  	xml_attribute& xml_attribute::operator=(int rhs)
  	{
 -		char buf[128];
 -		sprintf(buf, "%d", rhs);
 -		set_value(buf);
 +		set_value(rhs);
  		return *this;
  	}
  	xml_attribute& xml_attribute::operator=(unsigned int rhs)
  	{
 -		char buf[128];
 -		sprintf(buf, "%u", rhs);
 -		set_value(buf);
 +		set_value(rhs);
  		return *this;
  	}
  	xml_attribute& xml_attribute::operator=(double rhs)
  	{
 -		char buf[128];
 -		sprintf(buf, "%g", rhs);
 -		set_value(buf);
 +		set_value(rhs);
  		return *this;
  	}
  	xml_attribute& xml_attribute::operator=(bool rhs)
  	{
 -		set_value(rhs ? "true" : "false");
 +		set_value(rhs);
  		return *this;
  	}
 @@ -1925,6 +1919,32 @@ namespace pugi  		return res;
  	}
 +	bool xml_attribute::set_value(int rhs)
 +	{
 +		char buf[128];
 +		sprintf(buf, "%d", rhs);
 +		return set_value(buf);
 +	}
 +
 +	bool xml_attribute::set_value(unsigned int rhs)
 +	{
 +		char buf[128];
 +		sprintf(buf, "%u", rhs);
 +		return set_value(buf);
 +	}
 +
 +	bool xml_attribute::set_value(double rhs)
 +	{
 +		char buf[128];
 +		sprintf(buf, "%g", rhs);
 +		return set_value(buf);
 +	}
 +	
 +	bool xml_attribute::set_value(bool rhs)
 +	{
 +		return set_value(rhs ? "true" : "false");
 +	}
 +
  #ifdef __BORLANDC__
  	bool operator&&(const xml_attribute& lhs, bool rhs)
  	{
 diff --git a/src/pugixml.hpp b/src/pugixml.hpp index 6228b79..0b14148 100644 --- a/src/pugixml.hpp +++ b/src/pugixml.hpp @@ -583,6 +583,38 @@ namespace pugi  		 */
  		bool set_value(const char* rhs);
 +		/**
 +		 * Set attribute value to \a rhs.
 +		 *
 +		 * \param rhs - new attribute value
 +		 * \return success flag (call fails if attribute is empty or there is not enough memory)
 +		 */
 +		bool set_value(int rhs);
 +
 +		/**
 +		 * Set attribute value to \a rhs.
 +		 *
 +		 * \param rhs - new attribute value
 +		 * \return success flag (call fails if attribute is empty or there is not enough memory)
 +		 */
 +		bool set_value(unsigned int rhs);
 +
 +		/**
 +		 * Set attribute value to \a rhs.
 +		 *
 +		 * \param rhs - new attribute value
 +		 * \return success flag (call fails if attribute is empty or there is not enough memory)
 +		 */
 +		bool set_value(double rhs);
 +
 +		/**
 +		 * Set attribute value to either 'true' or 'false' (depends on whether \a rhs is true or false).
 +		 *
 +		 * \param rhs - new attribute value
 +		 * \return success flag (call fails if attribute is empty or there is not enough memory)
 +		 */
 +		bool set_value(bool rhs);
 +
  	public:
  		/**
  		 * Check if attribute is empty.
 | 
