Fix missing null termination when tz_sec = 0, add test for it
This commit is contained in:
parent
048196532e
commit
6246f8ebcd
|
@ -155,6 +155,7 @@ char* iso8601_print(char* str, int amt, const struct iso8601_date* date,
|
||||||
else snprintf(str, amt, "%02d", y);
|
else snprintf(str, amt, "%02d", y);
|
||||||
} else {
|
} else {
|
||||||
*str++ = 'Z';
|
*str++ = 'Z';
|
||||||
|
*str++ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return str_orig;
|
return str_orig;
|
||||||
|
|
|
@ -204,7 +204,7 @@ int main(int argc, char* argv[])
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct iso8601_date dt;
|
struct iso8601_date dt;
|
||||||
struct iso8601_details details, details2;
|
struct iso8601_details details, details2;
|
||||||
char buf[100], buf2[100];
|
char buf[40], buf2[40];
|
||||||
const struct test* test;
|
const struct test* test;
|
||||||
|
|
||||||
if(argc == 2 && !strcmp(argv[1], "--print-summary")) {
|
if(argc == 2 && !strcmp(argv[1], "--print-summary")) {
|
||||||
|
@ -215,7 +215,11 @@ int main(int argc, char* argv[])
|
||||||
iso8601_now(&dt, &details);
|
iso8601_now(&dt, &details);
|
||||||
printf("%-30s %-30s %s\n", "Name", "Basic format", "Extended format");
|
printf("%-30s %-30s %s\n", "Name", "Basic format", "Extended format");
|
||||||
for(test = tests; test->desc; ++test) {
|
for(test = tests; test->desc; ++test) {
|
||||||
|
memset(buf, 'X', sizeof(buf));
|
||||||
|
memset(buf2, 'X', sizeof(buf2)); /* test null-termination */
|
||||||
|
|
||||||
test->do_details(&details2, &details);
|
test->do_details(&details2, &details);
|
||||||
|
|
||||||
iso8601_print(buf, sizeof(buf), &dt, &details2);
|
iso8601_print(buf, sizeof(buf), &dt, &details2);
|
||||||
++details2.extended;
|
++details2.extended;
|
||||||
iso8601_print(buf2, sizeof(buf2), &dt, &details2);
|
iso8601_print(buf2, sizeof(buf2), &dt, &details2);
|
||||||
|
|
Loading…
Reference in New Issue