Give CharArray a printf style method to ease automatic allocation
diff --git a/common/rfb/util.cxx b/common/rfb/util.cxx
index 2b3c9f4..aec45f6 100644
--- a/common/rfb/util.cxx
+++ b/common/rfb/util.cxx
@@ -34,6 +34,7 @@
#include <config.h>
#endif
+#include <stdarg.h>
#include <stdio.h>
#include <sys/time.h>
@@ -41,6 +42,29 @@
namespace rfb {
+ void CharArray::format(const char *fmt, ...) {
+ va_list ap;
+ size_t len;
+
+ va_start(ap, fmt);
+ len = vsnprintf(NULL, 0, fmt, ap);
+ va_end(ap);
+
+ delete [] buf;
+
+ if (len < 0) {
+ buf = new char[1];
+ buf[0] = '\0';
+ return;
+ }
+
+ buf = new char[len+1];
+
+ va_start(ap, fmt);
+ vsnprintf(buf, len+1, fmt, ap);
+ va_end(ap);
+ }
+
char* strDup(const char* s) {
if (!s) return 0;
int l = strlen(s);