Add vsprintf method to QString

pull/2/head
Timothy Pearson 10 years ago
parent 9655b0b845
commit 8b9ae3fbf8

@ -4,6 +4,7 @@
** **
** Created : 920722 ** Created : 920722
** **
** Copyright (C) 2015 Timothy Pearson. All rights reserved.
** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
** **
** This file is part of the tools module of the Qt GUI Toolkit. ** This file is part of the tools module of the Qt GUI Toolkit.
@ -2604,12 +2605,10 @@ QString QString::multiArg( int numArgs, const QString& a1, const QString& a2,
*/ */
#ifndef QT_NO_SPRINTF #ifndef QT_NO_SPRINTF
QString &QString::sprintf( const char* cformat, ... ) QString &QString::sprintf(const char *cformat, ...)
{ {
QLocale locale(QLocale::C);
va_list ap; va_list ap;
va_start( ap, cformat ); va_start(ap, cformat);
if ( !cformat || !*cformat ) { if ( !cformat || !*cformat ) {
// Qt 1.x compat // Qt 1.x compat
@ -2617,6 +2616,16 @@ QString &QString::sprintf( const char* cformat, ... )
return *this; return *this;
} }
QString &s = vsprintf(cformat, ap);
va_end(ap);
return s;
}
QString &QString::vsprintf( const char* cformat, va_list ap )
{
QLocale locale(QLocale::C);
// Parse cformat // Parse cformat
QString result; QString result;
@ -2933,7 +2942,6 @@ QString &QString::sprintf( const char* cformat, ... )
result.append(subst.rightJustify(width)); result.append(subst.rightJustify(width));
} }
va_end(ap);
*this = result; *this = result;
return *this; return *this;

@ -4,6 +4,7 @@
** **
** Created : 920609 ** Created : 920609
** **
** Copyright (C) 2015 Timothy Pearson. All rights reserved.
** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
** **
** This file is part of the tools module of the Qt GUI Toolkit. ** This file is part of the tools module of the Qt GUI Toolkit.
@ -63,6 +64,9 @@
#endif #endif
#endif #endif
#ifndef QT_NO_SPRINTF
#include <stdarg.h>
#endif
/***************************************************************************** /*****************************************************************************
QString class QString class
@ -452,6 +456,11 @@ public:
QString &sprintf( const char* format, ... ) QString &sprintf( const char* format, ... )
#if defined(Q_CC_GNU) && !defined(__INSURE__) #if defined(Q_CC_GNU) && !defined(__INSURE__)
__attribute__ ((format (printf, 2, 3))) __attribute__ ((format (printf, 2, 3)))
#endif
;
QString &vsprintf(const char *format, va_list ap)
#if defined(Q_CC_GNU) && !defined(__INSURE__)
__attribute__ ((format (printf, 2, 0)))
#endif #endif
; ;
#endif #endif

Loading…
Cancel
Save