SkStringPrintf helper fucntion + a new unit test for it.



git-svn-id: http://skia.googlecode.com/svn/trunk@1766 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/core/SkString.h b/include/core/SkString.h
index 0295b75..abfdd24 100644
--- a/include/core/SkString.h
+++ b/include/core/SkString.h
@@ -197,4 +197,7 @@
     uint16_t*   fUCS2;
 };
 
+/// Creates a new string and writes into it using a printf()-style format.
+SkString SkStringPrintf(const char* format, ...);
+
 #endif
diff --git a/src/core/SkString.cpp b/src/core/SkString.cpp
index f461a7a..0d7defe 100644
--- a/src/core/SkString.cpp
+++ b/src/core/SkString.cpp
@@ -542,8 +542,6 @@
     this->prepend(buffer, strlen(buffer));
 }
 
-#undef VSNPRINTF
-
 ///////////////////////////////////////////////////////////////////////////////
 
 void SkString::remove(size_t offset, size_t length) {
@@ -605,3 +603,16 @@
 SkAutoUCS2::~SkAutoUCS2() {
     sk_free(fUCS2);
 }
+
+///////////////////////////////////////////////////////////////////////////////
+
+SkString SkStringPrintf(const char* format, ...) {
+    SkString formattedOutput;
+    char buffer[kBufferSize];
+    ARGS_TO_BUFFER(format, buffer, kBufferSize);
+    formattedOutput.set(buffer);
+    return formattedOutput;
+}
+
+#undef VSNPRINTF
+
diff --git a/tests/StringTest.cpp b/tests/StringTest.cpp
index 270ccfd..02510d5 100644
--- a/tests/StringTest.cpp
+++ b/tests/StringTest.cpp
@@ -85,6 +85,8 @@
 //        SkDebugf(" received <%s> expected <%s>\n", a.c_str(), gRec[i].fString);
         REPORTER_ASSERT(reporter, a.equals(gRec[i].fString));
     }
+
+    REPORTER_ASSERT(reporter, SkStringPrintf("%i", 0).equals("0"));
 }
 
 #include "TestClassDef.h"