長さ修飾子hとlに対応。
@@ -30,6 +30,11 @@ | ||
30 | 30 | printf("%s\n", buf); |
31 | 31 | assert(strcmp(buf, sp_buf) == 0); |
32 | 32 | |
33 | + sprintf(sp_buf, "%hd, %ld, %ld, \"%8ld\"", 9999, 0L, -1L, -1234L); | |
34 | + LibcImpl_sprintf(buf, "%hd, %ld, %ld, \"%8ld\"", 9999, 0L, -1L, -1234L); | |
35 | + printf("%s\n", buf); | |
36 | + assert(strcmp(buf, sp_buf) == 0); | |
37 | + | |
33 | 38 | sprintf(sp_buf, "%u, %u, %-d, \"%-8d\"", 12345, 0, -123, -111); |
34 | 39 | LibcImpl_sprintf(buf, "%u, %u, %-d, \"%-8d\"", 12345, 0, -123, -111); |
35 | 40 | printf("%s\n", buf); |
@@ -175,6 +175,9 @@ | ||
175 | 175 | } else { |
176 | 176 | width = 0; |
177 | 177 | } |
178 | + if (*p == 'h' || *p == 'l') { | |
179 | + p++; | |
180 | + } | |
178 | 181 | switch (*p) { |
179 | 182 | case 'c': |
180 | 183 | buf[i++] = (char) arg_list[arg_idx++]; |