From 988adfb35c4e29a54c15a7a73a52c48a6b5bed6f Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Wed, 21 Dec 2011 19:33:16 +0000 Subject: [PATCH] Eliminate printf usage in macros. --- xmltooling/base.h | 20 ++++++++++++-------- xmltooling/encryption/Encryption.h | 1 + 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/xmltooling/base.h b/xmltooling/base.h index ff96588..4e80091 100644 --- a/xmltooling/base.h +++ b/xmltooling/base.h @@ -697,10 +697,12 @@ m_##proper = prepareForAssignment(m_##proper,proper); \ } \ void set##proper(int proper) { \ - char buf##proper[64]; \ - std::sprintf(buf##proper,"%d",proper); \ - xmltooling::auto_ptr_XMLCh wide##proper(buf##proper); \ - set##proper(wide##proper.get()); \ + try { \ + xmltooling::xstring buf = boost::lexical_cast(proper); \ + set##proper(buf.c_str()); \ + } \ + catch (boost::bad_lexical_cast&) { \ + } \ } /** @@ -1250,10 +1252,12 @@ } \ XMLTOOLING_DOXYGEN(Sets proper.) \ void set##proper(int proper) { \ - char buf[64]; \ - std::sprintf(buf,"%d",proper); \ - xmltooling::auto_ptr_XMLCh widebuf(buf); \ - setTextContent(widebuf.get()); \ + try { \ + xmltooling::xstring buf = boost::lexical_cast(proper); \ + setTextContent(buf.c_str()); \ + } \ + catch (boost::bad_lexical_cast&) { \ + } \ } \ XMLTOOLING_DOXYGEN(Sets or clears proper.) \ void set##proper(const XMLCh* proper) { \ diff --git a/xmltooling/encryption/Encryption.h b/xmltooling/encryption/Encryption.h index e7e3329..934088b 100644 --- a/xmltooling/encryption/Encryption.h +++ b/xmltooling/encryption/Encryption.h @@ -32,6 +32,7 @@ #include #include +#include namespace xmlsignature { class XMLTOOL_API KeyInfo; -- 2.1.4