From ab3638a0b872680cb9aa33dc9cc84fe942e5f727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sun, 5 Feb 2017 19:35:01 -0800 Subject: [PATCH] vsnprintf: Added octal. --- src/crt.cpp | 5 +++++ tests/vsnprintf_test.cpp | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/crt.cpp b/src/crt.cpp index eed96ee..5f61185 100644 --- a/src/crt.cpp +++ b/src/crt.cpp @@ -332,6 +332,11 @@ namespace bx size += write(_writer, va_arg(_argList, const char*), param, _err); break; + case 'o': + param.base = 8; + size += write(_writer, va_arg(_argList, int32_t), param, _err); + break; + case 'i': case 'd': param.base = 10; diff --git a/tests/vsnprintf_test.cpp b/tests/vsnprintf_test.cpp index bb9f113..3e44c73 100644 --- a/tests/vsnprintf_test.cpp +++ b/tests/vsnprintf_test.cpp @@ -53,7 +53,7 @@ TEST_CASE("vsnprintf f", "") REQUIRE(test("13.370 ", "%*.*f", -8, 3, 13.37) ); } -TEST_CASE("vsnprintf d/i/u/x", "") +TEST_CASE("vsnprintf d/i/o/u/x", "") { REQUIRE(test("1337", "%d", 1337) ); REQUIRE(test("1337 ", "%-20d", 1337) ); @@ -63,6 +63,11 @@ TEST_CASE("vsnprintf d/i/u/x", "") REQUIRE(test("1337 ", "%-20i", 1337) ); REQUIRE(test("-1337 ", "%-20i", -1337) ); + REQUIRE(test("1337", "%o", 01337) ); + REQUIRE(test("2471", "%o", 1337) ); + REQUIRE(test("1337 ", "%-20o", 01337) ); + REQUIRE(test("37777776441 ", "%-20o", -01337) ); + REQUIRE(test("1337", "%u", 1337) ); REQUIRE(test("1337 ", "%-20u", 1337u) ); REQUIRE(test("4294965959 ", "%-20u", -1337u) );