mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-04-22 06:44:42 +00:00
parent
91953dd308
commit
3c285337a2
2 changed files with 19 additions and 6 deletions
|
@ -335,12 +335,16 @@ hidden int __fmt(void *fn, void *arg, const char *format, va_list va) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'c':
|
case 'c':
|
||||||
prec = 1;
|
if ((charbuf[0] = va_arg(va, int))) {
|
||||||
flags |= FLAGS_PRECISION;
|
p = charbuf;
|
||||||
qchar = '\'';
|
qchar = '\'';
|
||||||
p = charbuf;
|
flags |= FLAGS_PRECISION;
|
||||||
charbuf[0] = va_arg(va, int);
|
prec = 1;
|
||||||
goto FormatString;
|
goto FormatString;
|
||||||
|
} else {
|
||||||
|
__FMT_PUT('\0');
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 'm':
|
case 'm':
|
||||||
p = weaken(strerror) ? weaken(strerror)(lasterr) : "?";
|
p = weaken(strerror) ? weaken(strerror)(lasterr) : "?";
|
||||||
signbit = 0;
|
signbit = 0;
|
||||||
|
|
|
@ -283,6 +283,15 @@ TEST(fmt, quoted) {
|
||||||
ASSERT_STREQ("\"hello\" ", gc(xasprintf("%-`*.*s", 10, 5, "hello")));
|
ASSERT_STREQ("\"hello\" ", gc(xasprintf("%-`*.*s", 10, 5, "hello")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(fmt, nulCharacter) {
|
||||||
|
char b[3] = {1, 1, 1};
|
||||||
|
ASSERT_EQ(1, snprintf(0, 0, "%c", 0));
|
||||||
|
ASSERT_EQ(1, snprintf(b, 3, "%c", 0));
|
||||||
|
ASSERT_EQ(0, b[0]);
|
||||||
|
ASSERT_EQ(0, b[1]);
|
||||||
|
ASSERT_EQ(1, b[2]);
|
||||||
|
}
|
||||||
|
|
||||||
TEST(fmt, regress) {
|
TEST(fmt, regress) {
|
||||||
char buf[512];
|
char buf[512];
|
||||||
const char *meth = "GET";
|
const char *meth = "GET";
|
||||||
|
|
Loading…
Add table
Reference in a new issue