Fix vfprintf and derived functions badly handling +/` flag conflict (#1269)

This commit is contained in:
Gabriel Ravier 2024-08-30 04:07:05 +02:00 committed by GitHub
parent 06a1193b4d
commit 6baf6cdb10
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 1 deletions

View file

@ -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 { \

View file

@ -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, "=");
}