| xf.li | bdd93d5 | 2023-05-12 07:10:14 -0700 | [diff] [blame] | 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 (*((char **) p1), *((char **) p2)); | 
|  | 14 | } | 
|  | 15 |  | 
|  | 16 | static 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 (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 (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 (str[i]); | 
|  | 43 |  | 
|  | 44 | return EXIT_SUCCESS; | 
|  | 45 | } | 
|  | 46 |  | 
|  | 47 | #define TEST_FUNCTION do_test () | 
|  | 48 | #include "../test-skeleton.c" |