diff --git a/libc/stdio/fmt.c b/libc/stdio/fmt.c index 5ef9b4209..ee558e6f0 100644 --- a/libc/stdio/fmt.c +++ b/libc/stdio/fmt.c @@ -76,9 +76,9 @@ #define FLAGS_PRECISION 0x20 #define FLAGS_ISSIGNED 0x40 #define FLAGS_NOQUOTE 0x80 +#define FLAGS_REPR 0x100 #define FLAGS_QUOTE FLAGS_SPACE #define FLAGS_GROUPING FLAGS_NOQUOTE -#define FLAGS_REPR FLAGS_PLUS #define __FMT_PUT(C) \ do { \ diff --git a/test/libc/stdio/snprintf_test.c b/test/libc/stdio/snprintf_test.c index 63a702bf2..d0428eaa1 100644 --- a/test/libc/stdio/snprintf_test.c +++ b/test/libc/stdio/snprintf_test.c @@ -27,3 +27,11 @@ TEST(snprintf, testVeryLargePrecision) { ASSERT_EQ(i, 9999); ASSERT_EQ(strlen(buf), 511); } + +TEST(snprintf, testPlusFlagOnChar) { + char buf[10] = {}; + int i = snprintf(buf, sizeof(buf), "%+c", '='); + + ASSERT_EQ(i, 1); + ASSERT_STREQ(buf, "="); +}