summaryrefslogtreecommitdiff
path: root/test/stdio/scanf_m.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/stdio/scanf_m.c')
-rw-r--r--test/stdio/scanf_m.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/test/stdio/scanf_m.c b/test/stdio/scanf_m.c
index 0ce78b6e4..e1dde270d 100644
--- a/test/stdio/scanf_m.c
+++ b/test/stdio/scanf_m.c
@@ -5,20 +5,23 @@
int main(void)
{
const char *buf = "hello world";
- char *ps = NULL, *pc = NULL;
- char s[6], c;
+ char *ps = NULL, *pc = NULL, *ps2 = NULL;
+ char s[6], c, s2[5];
- /* Check that %[...]/%c work. */
- sscanf(buf, "%[a-z] %c", s, &c);
- /* Check that %m[...]/%mc work. */
- sscanf(buf, "%m[a-z] %mc", &ps, &pc);
+ /* Check that %[...]/%c/%s work. */
+ sscanf(buf, "%[a-z] %c %s", s, &c, s2);
+ /* Check that %m[...]/%mc/%ms work. */
+ sscanf(buf, "%m[a-z] %mc %ms", &ps, &pc, &ps2);
if (strcmp(ps, "hello") != 0 || *pc != 'w' ||
- strcmp(s, "hello") != 0 || c != 'w')
+ strcmp(ps2, "orld") != 0 ||
+ strcmp(s, "hello") != 0 || c != 'w' ||
+ strcmp(s2, "orld") != 0)
return 1;
free(ps);
free(pc);
+ free(ps2);
return 0;
}