summaryrefslogtreecommitdiff
path: root/includes/BString.h
diff options
context:
space:
mode:
authorNicolas "Pixel" Noble <pixel@nobis-crew.org>2013-12-22 15:46:50 -0800
committerNicolas "Pixel" Noble <pixel@nobis-crew.org>2013-12-22 15:46:50 -0800
commitb199455adeb01250743ba36e13d0905980326335 (patch)
treec07ad248ca5d10a790f4ac9f52eb5d45398ed625 /includes/BString.h
parentc6ce58b302950c743bbbcbc38da4ecf33721f82b (diff)
Adding formatted append to the String class.
Diffstat (limited to 'includes/BString.h')
-rw-r--r--includes/BString.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/includes/BString.h b/includes/BString.h
index e783935..392f720 100644
--- a/includes/BString.h
+++ b/includes/BString.h
@@ -13,11 +13,11 @@
#include <vector>
#ifdef _MSC_VER
-#ifdef _WIN64
-typedef __int64 ssize_t;
-#else /* _WIN64 */
-typedef _W64 int ssize_t;
-#endif /* _WIN64 */
+#ifdef _WIN64
+typedef __int64 ssize_t;
+#else /* _WIN64 */
+typedef _W64 int ssize_t;
+#endif /* _WIN64 */
#define printfwarning(a, b)
#else
#define printfwarning(a, b) __attribute__((format(printf, a, b)))
@@ -50,6 +50,10 @@ class String : private std::string {
String & set(const char * fmt, ...) printfwarning(2, 3) { va_list ap; va_start(ap, fmt); set(fmt, ap); va_end(ap); return *this; }
String & set(const String & fmt, ...) { va_list ap; va_start(ap, fmt); set(fmt.to_charp(), ap); va_end(ap); return *this; }
+ String & append(const char * fmt, va_list) printfwarning(2, 0);
+ String & append(const char * fmt, ...) printfwarning(2, 3) { va_list ap; va_start(ap, fmt); append(fmt, ap); va_end(ap); return *this; }
+ String & append(const String & fmt, ...) { va_list ap; va_start(ap, fmt); append(fmt.to_charp(), ap); va_end(ap); return *this; }
+
int scanf(const char * fmt, va_list ap) const { return ::vsscanf(c_str(), fmt, ap); }
int scanf(const char * fmt, ...) const printfwarning(2, 3) { va_list ap; va_start(ap, fmt); int r = scanf(fmt, ap); va_end(ap); return r; }
int scanf(const String & fmt, ...) const { va_list ap; va_start(ap, fmt); int r = scanf(fmt.to_charp(), ap); va_end(ap); return r; }
@@ -96,8 +100,8 @@ class String : private std::string {
String operator+(const String & v) const { String r = *this; r += v; return r; }
String operator+(const char * v) const { String r = *this; r += v; return r; }
- String & operator+=(const String & v) { *this = append(v); return *this; }
- String & operator+=(const char * v) { *this = append(v); return *this; }
+ String & operator+=(const String & v) { *this = std::string::append(v); return *this; }
+ String & operator+=(const char * v) { *this = std::string::append(v); return *this; }
int compare(const String & v) const { return std::string::compare(v); }
int compare(const char * v) const { return std::string::compare(v); }