summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/tools/ntqstring.h9
-rw-r--r--src/tools/qstring.cpp18
2 files changed, 22 insertions, 5 deletions
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 <stdarg.h>
+#endif
/*****************************************************************************
TQString class
@@ -454,6 +458,11 @@ public:
__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
int find( TQChar c, int index=0, bool cs=TRUE ) const;
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;