1 | /* Test for strverscmp() */ |
---|---|
2 | |
3 | #include <stdlib.h> |
4 | #include <stdio.h> |
5 | #include <string.h> |
6 | |
7 | #define MAX_STRINGS 256 |
8 | #define MAX_LINE_SIZE 32 |
9 | |
10 | static int |
11 | compare (const void *p1, const void *p2) |
12 | { |
13 | return strverscmp (s1: *((char **) p1), s2: *((char **) p2)); |
14 | } |
15 | |
16 | int |
17 | do_test (void) |
18 | { |
19 | char line[MAX_LINE_SIZE + 1]; |
20 | char *str[MAX_STRINGS]; |
21 | int count = 0; |
22 | int i, n; |
23 | |
24 | while (count < MAX_STRINGS && fgets (s: line, MAX_LINE_SIZE, stdin) != NULL) |
25 | { |
26 | n = strlen (line) - 1; |
27 | |
28 | if (line[n] == '\n') |
29 | line[n] = '\0'; |
30 | |
31 | str[count] = strdup (s: line); |
32 | |
33 | if (str[count] == NULL) |
34 | exit (EXIT_FAILURE); |
35 | |
36 | ++count; |
37 | } |
38 | |
39 | qsort (str, count, sizeof (char *), compare); |
40 | |
41 | for (i = 0; i < count; ++i) |
42 | puts (s: str[i]); |
43 | |
44 | return EXIT_SUCCESS; |
45 | } |
46 | |
47 | #include <support/test-driver.c> |
48 |