| Line | Branch | Exec | Source | 
|---|---|---|---|
| 1 | /* | ||
| 2 | ** EPITECH PROJECT, 2023 | ||
| 3 | ** my_sort_params | ||
| 4 | ** File description: | ||
| 5 | ** Sorts the arguments (argc and argv) passed to the program in ascending order | ||
| 6 | */ | ||
| 7 | /** | ||
| 8 | * @file my_sort_params.c | ||
| 9 | * @brief The file containing the my_sort_params function | ||
| 10 | * @author Nicolas TORO | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include "my.h" | ||
| 14 | |||
| 15 | 14 | static int check_equal(int len_s1, int len_s2, int j, int littlest_char_index) | |
| 16 | { | ||
| 17 | 2/2✓ Branch 0 taken 1 times. ✓ Branch 1 taken 13 times. | 14 | if (len_s1 < len_s2) | 
| 18 | 1 | return j; | |
| 19 | 2/2✓ Branch 0 taken 2 times. ✓ Branch 1 taken 11 times. | 13 | else if (len_s1 > len_s2) | 
| 20 | 2 | return littlest_char_index; | |
| 21 | else | ||
| 22 | 11 | return littlest_char_index; | |
| 23 | } | ||
| 24 | |||
| 25 | 18 | static int check_littlest(char **argv, int j, int littlest_char_index) | |
| 26 | { | ||
| 27 | 18 | int i = 0; | |
| 28 | |||
| 29 | 129 | while (i < my_strlen(argv[littlest_char_index]) | |
| 30 | 4/4✓ Branch 0 taken 117 times. ✓ Branch 1 taken 12 times. ✓ Branch 3 taken 115 times. ✓ Branch 4 taken 2 times. | 129 | && i < my_strlen(argv[j])) { | 
| 31 | 2/2✓ Branch 0 taken 3 times. ✓ Branch 1 taken 112 times. | 115 | if (argv[littlest_char_index][i] < argv[j][i]) | 
| 32 | 3 | return j; | |
| 33 | 2/2✓ Branch 0 taken 1 times. ✓ Branch 1 taken 111 times. | 112 | if (argv[littlest_char_index][i] > argv[j][i]) | 
| 34 | 1 | return littlest_char_index; | |
| 35 | 111 | i++; | |
| 36 | } | ||
| 37 | 14 | return check_equal(my_strlen(argv[littlest_char_index]), | |
| 38 | 14 | my_strlen(argv[j]), j, littlest_char_index); | |
| 39 | } | ||
| 40 | |||
| 41 | 9 | static void check_swap(char **argv, int i, int littlest_char_index) | |
| 42 | { | ||
| 43 | char *temp; | ||
| 44 | |||
| 45 | 2/2✓ Branch 0 taken 4 times. ✓ Branch 1 taken 5 times. | 9 | if (i != littlest_char_index) { | 
| 46 | 4 | temp = argv[i]; | |
| 47 | 4 | argv[i] = argv[littlest_char_index]; | |
| 48 | 4 | argv[littlest_char_index] = temp; | |
| 49 | } | ||
| 50 | 9 | } | |
| 51 | |||
| 52 | 3 | void my_sort_params(int argc, char **argv) | |
| 53 | { | ||
| 54 | 3 | int littlest_char_index = 0; | |
| 55 | |||
| 56 | 2/2✓ Branch 0 taken 9 times. ✓ Branch 1 taken 3 times. | 12 | for (int i = 0; i < argc; i++) { | 
| 57 | 9 | littlest_char_index = i; | |
| 58 | 2/2✓ Branch 0 taken 18 times. ✓ Branch 1 taken 9 times. | 27 | for (int j = i; j < argc; j++) | 
| 59 | 18 | littlest_char_index = check_littlest(argv, j, littlest_char_index); | |
| 60 | 9 | check_swap(argv, i, littlest_char_index); | |
| 61 | } | ||
| 62 | 2/2✓ Branch 0 taken 9 times. ✓ Branch 1 taken 3 times. | 12 | for (int i = argc; i > 0; i--) { | 
| 63 | 9 | my_putstr(argv[i - 1]); | |
| 64 | 9 | my_putstr("\n"); | |
| 65 | } | ||
| 66 | 3 | } | |
| 67 |