/* * Test case for OpenIndiana '%.*s' bug * Build with `gcc test-case.c' * Run with `./a.out' */ #include #include #include #include #include static void compare_output(const char *str, int len) { puts("Expected output:"); fwrite(str, len, sizeof(char), stdout); puts("\nActual output:"); printf("%.*s\n", len, str); } int main(int argc, char **argv) { char buf[] = "áaaaaaa"; puts("Before setting locale:"); compare_output(buf, 5); setlocale(LC_ALL, ""); puts("\nAfter setting locale:"); compare_output(buf, 5); return EXIT_SUCCESS; }