From 7c2497363773249217cf201f1dec708416fbc15a Mon Sep 17 00:00:00 2001 From: vitaut Date: Thu, 5 Nov 2015 20:46:22 -0500 Subject: [PATCH] Format (un)signed char as integer by default (#217) --- format.h | 4 ++-- test/format-test.cc | 5 +++++ test/util-test.cc | 12 +++++++----- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/format.h b/format.h index bde8878c..ed2073be 100644 --- a/format.h +++ b/format.h @@ -1045,8 +1045,8 @@ class MakeValue : public Arg { FMT_MAKE_VALUE(float, double_value, DOUBLE) FMT_MAKE_VALUE(double, double_value, DOUBLE) FMT_MAKE_VALUE(long double, long_double_value, LONG_DOUBLE) - FMT_MAKE_VALUE(signed char, int_value, CHAR) - FMT_MAKE_VALUE(unsigned char, int_value, CHAR) + FMT_MAKE_VALUE(signed char, int_value, INT) + FMT_MAKE_VALUE(unsigned char, int_value, UINT) FMT_MAKE_VALUE(char, int_value, CHAR) #if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) diff --git a/test/format-test.cc b/test/format-test.cc index 3fceab88..aa85d234 100644 --- a/test/format-test.cc +++ b/test/format-test.cc @@ -1324,6 +1324,11 @@ TEST(FormatterTest, FormatChar) { EXPECT_EQ(fmt::format("{:02X}", n), fmt::format("{:02X}", 'x')); } +TEST(FormatterTest, FormatUnsignedChar) { + EXPECT_EQ("42", format("{}", static_cast(42))); + EXPECT_EQ("42", format("{}", static_cast(42))); +} + TEST(FormatterTest, FormatWChar) { EXPECT_EQ(L"a", format(L"{0}", L'a')); // This shouldn't compile: diff --git a/test/util-test.cc b/test/util-test.cc index 2d676a7a..6736c80f 100644 --- a/test/util-test.cc +++ b/test/util-test.cc @@ -471,11 +471,6 @@ TEST(ArgTest, MakeArg) { EXPECT_ARG_(wchar_t, BOOL, bool, int, true); // Test char. - EXPECT_ARG(CHAR, signed char, 'a'); - EXPECT_ARG(CHAR, signed char, SCHAR_MIN); - EXPECT_ARG(CHAR, signed char, SCHAR_MAX); - EXPECT_ARG(CHAR, unsigned char, 'a'); - EXPECT_ARG(CHAR, unsigned char, UCHAR_MAX ); EXPECT_ARG(CHAR, char, 'a'); EXPECT_ARG(CHAR, char, CHAR_MIN); EXPECT_ARG(CHAR, char, CHAR_MAX); @@ -485,6 +480,13 @@ TEST(ArgTest, MakeArg) { EXPECT_ARGW(CHAR, wchar_t, WCHAR_MIN); EXPECT_ARGW(CHAR, wchar_t, WCHAR_MAX); + // Test signed/unsigned char. + EXPECT_ARG(INT, signed char, 42); + EXPECT_ARG(INT, signed char, SCHAR_MIN); + EXPECT_ARG(INT, signed char, SCHAR_MAX); + EXPECT_ARG(UINT, unsigned char, 42); + EXPECT_ARG(UINT, unsigned char, UCHAR_MAX ); + // Test short. EXPECT_ARG(INT, short, 42); EXPECT_ARG(INT, short, SHRT_MIN);