From 74dc571ba03c3cdf35e1f6280eda507375cb03cc Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Tue, 30 Sep 2014 08:15:56 -0700 Subject: [PATCH] Support signed char and unsigned char strings --- format.h | 4 ++++ test/format-test.cc | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/format.h b/format.h index 8fe8c773..f0ee2588 100644 --- a/format.h +++ b/format.h @@ -651,6 +651,8 @@ struct Value { long double long_double_value; const void *pointer; StringValue string; + StringValue sstring; + StringValue ustring; StringValue wstring; CustomValue custom; }; @@ -758,6 +760,8 @@ public: FMT_MAKE_VALUE(char *, string.value, CSTRING) FMT_MAKE_VALUE(const char *, string.value, CSTRING) + FMT_MAKE_VALUE(const signed char *, sstring.value, CSTRING) + FMT_MAKE_VALUE(const unsigned char *, ustring.value, CSTRING) FMT_MAKE_STR_VALUE(const std::string &, STRING) FMT_MAKE_STR_VALUE(StringRef, STRING) diff --git a/test/format-test.cc b/test/format-test.cc index 5d146524..e2baa05c 100644 --- a/test/format-test.cc +++ b/test/format-test.cc @@ -1170,6 +1170,20 @@ TEST(FormatterTest, FormatCString) { FormatError, "string pointer is null"); } +TEST(FormatterTest, FormatSCharString) { + signed char str[] = "test"; + EXPECT_EQ("test", format("{0:s}", str)); + const signed char *const_str = str; + EXPECT_EQ("test", format("{0:s}", const_str)); +} + +TEST(FormatterTest, FormatUCharString) { + unsigned char str[] = "test"; + EXPECT_EQ("test", format("{0:s}", str)); + const unsigned char *const_str = str; + EXPECT_EQ("test", format("{0:s}", const_str)); +} + TEST(FormatterTest, FormatPointer) { check_unknown_types(reinterpret_cast(0x1234), "p", "pointer"); EXPECT_EQ("0x0", format("{0}", reinterpret_cast(0)));