diff --git a/src/tools/ntqstring.h b/src/tools/ntqstring.h index 4d473e01..e8381a0b 100644 --- a/src/tools/ntqstring.h +++ b/src/tools/ntqstring.h @@ -4,6 +4,7 @@ ** ** Created : 920609 ** +** Copyright (C) 2015 Timothy Pearson. All rights reserved. ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** ** This file is part of the tools module of the TQt GUI Toolkit. @@ -63,6 +64,9 @@ #endif #endif +#ifndef QT_NO_SPRINTF +#include +#endif /***************************************************************************** TQString class @@ -452,6 +456,11 @@ public: TQString &sprintf( const char* format, ... ) #if defined(Q_CC_GNU) && !defined(__INSURE__) __attribute__ ((format (printf, 2, 3))) +#endif + ; + TQString &vsprintf(const char *format, va_list ap) +#if defined(Q_CC_GNU) && !defined(__INSURE__) + __attribute__ ((format (printf, 2, 0))) #endif ; #endif diff --git a/src/tools/qstring.cpp b/src/tools/qstring.cpp index 67de5030..2610a2cd 100644 --- a/src/tools/qstring.cpp +++ b/src/tools/qstring.cpp @@ -4,6 +4,7 @@ ** ** Created : 920722 ** +** Copyright (C) 2015 Timothy Pearson. All rights reserved. ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** ** This file is part of the tools module of the TQt GUI Toolkit. @@ -2604,12 +2605,10 @@ TQString TQString::multiArg( int numArgs, const TQString& a1, const TQString& a2 */ #ifndef QT_NO_SPRINTF -TQString &TQString::sprintf( const char* cformat, ... ) +TQString &TQString::sprintf(const char *cformat, ...) { - TQLocale locale(TQLocale::C); - va_list ap; - va_start( ap, cformat ); + va_start(ap, cformat); if ( !cformat || !*cformat ) { // TQt 1.x compat @@ -2617,6 +2616,16 @@ TQString &TQString::sprintf( const char* cformat, ... ) return *this; } + TQString &s = vsprintf(cformat, ap); + + va_end(ap); + return s; +} + +TQString &TQString::vsprintf( const char* cformat, va_list ap ) +{ + TQLocale locale(TQLocale::C); + // Parse cformat TQString result; @@ -2933,7 +2942,6 @@ TQString &TQString::sprintf( const char* cformat, ... ) result.append(subst.rightJustify(width)); } - va_end(ap); *this = result; return *this;