From: Scott Cantor Date: Wed, 21 Dec 2011 19:33:16 +0000 (+0000) Subject: Eliminate printf usage in macros. X-Git-Tag: 1.5.0~50 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-xmltooling.git;a=commitdiff_plain;h=988adfb35c4e29a54c15a7a73a52c48a6b5bed6f Eliminate printf usage in macros. --- 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;