diff --git a/test/todo/bug927.c b/test/todo/bug927.c new file mode 100644 index 000000000..e0f916e66 --- /dev/null +++ b/test/todo/bug927.c @@ -0,0 +1,47 @@ + +/* bug #927: format specifiers related to leading zeros do not work as expected */ + +/* expected output: +0023 +0023 +-0023 +-023 +*/ + +#include +#include +#include + +char b1[10]; +char b2[10]; +char b3[10]; +char b4[10]; + +int main(void) { + printf("%.4d\n", 23); + printf("%04d\n", 23); + printf("%.4d\n", -23); + printf("%04d\n\n", -23); + + sprintf(b1, "%.4d", 23); + sprintf(b2, "%04d", 23); + sprintf(b3, "%.4d", -23); + sprintf(b4, "%04d", -23); + + printf("%s\n", b1); + printf("%s\n", b2); + printf("%s\n", b3); + printf("%s\n\n", b4); + + printf("%d\n", strcmp(b1, "0023")); + printf("%d\n", strcmp(b2, "0023")); + printf("%d\n", strcmp(b3, "-0023")); + printf("%d\n", strcmp(b4, "-023")); + + if(strcmp(b1, "0023") != 0) return EXIT_FAILURE; + if(strcmp(b2, "0023") != 0) return EXIT_FAILURE; + if(strcmp(b3, "-0023") != 0) return EXIT_FAILURE; + if(strcmp(b4, "-023") != 0) return EXIT_FAILURE; + + return EXIT_SUCCESS; +}