| Line | Branch | Exec | Source | 
|---|---|---|---|
| 1 | /* | ||
| 2 | ** EPITECH PROJECT, 2023 | ||
| 3 | ** my_printf | ||
| 4 | ** File description: | ||
| 5 | ** The functions for get the format | ||
| 6 | */ | ||
| 7 | /** | ||
| 8 | * @file get_format.c | ||
| 9 | * @brief The file containing the get_format function | ||
| 10 | * @author Nicolas TORO | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include "myprintf.h" | ||
| 14 | |||
| 15 | 39 | static void check_operator(formating_t *formating) | |
| 16 | { | ||
| 17 | 4/4✓ Branch 0 taken 31 times. ✓ Branch 1 taken 8 times. ✓ Branch 2 taken 1 times. ✓ Branch 3 taken 30 times. | 39 | if (formating->next_chara == '+' || formating->next_chara == '-') { | 
| 18 | 9 | formating->nb_format += 2; | |
| 19 | } else { | ||
| 20 | 30 | (formating->nb_format) += 1; | |
| 21 | } | ||
| 22 | 39 | } | |
| 23 | |||
| 24 | 22319 | void format_first(user_t *user, flags_t *flags, | |
| 25 | formating_t *formating, int *copy) | ||
| 26 | { | ||
| 27 | 2/2✓ Branch 0 taken 1990705 times. ✓ Branch 1 taken 22280 times. | 2012985 | for (; user->str[*copy - 1] != flags->str[flags->index_flag]; (*copy)++) { | 
| 28 | 1990705 | find_first(user, copy, formating); | |
| 29 | 2/2✓ Branch 0 taken 39 times. ✓ Branch 1 taken 1990666 times. | 1990705 | if (formating->id_ft != -1) { | 
| 30 | 39 | check_operator(formating); | |
| 31 | 39 | break; | |
| 32 | } | ||
| 33 | } | ||
| 34 | 22319 | } | |
| 35 | |||
| 36 | 22319 | void format_width(user_t *user, flags_t *flags, | |
| 37 | formating_t *formating, int *copy) | ||
| 38 | { | ||
| 39 | 2/2✓ Branch 0 taken 1995006 times. ✓ Branch 1 taken 22285 times. | 2017291 | for (; user->str[*copy - 1] != flags->str[flags->index_flag]; (*copy)++) { | 
| 40 | 1995006 | find_width(user, copy, formating); | |
| 41 | 2/2✓ Branch 0 taken 34 times. ✓ Branch 1 taken 1994972 times. | 1995006 | if (formating->id_wd != -1) { | 
| 42 | 34 | (formating->nb_format) += my_strlen(my_str_nbr(formating->id_wd)); | |
| 43 | 34 | break; | |
| 44 | } | ||
| 45 | } | ||
| 46 | 22319 | } | |
| 47 | |||
| 48 | 22319 | void format_precision(user_t *user, flags_t *flags, | |
| 49 | formating_t *formating, int *copy) | ||
| 50 | { | ||
| 51 | 2/2✓ Branch 0 taken 1982071 times. ✓ Branch 1 taken 22292 times. | 2004363 | for (; user->str[*copy - 1] != flags->str[flags->index_flag]; (*copy)++) { | 
| 52 | 1982071 | find_precision(user, copy, formating); | |
| 53 | 2/2✓ Branch 0 taken 27 times. ✓ Branch 1 taken 1982044 times. | 1982071 | if (formating->id_prc != -1) { | 
| 54 | 27 | formating->nb_format += 1; | |
| 55 | 27 | break; | |
| 56 | } | ||
| 57 | } | ||
| 58 | 22319 | } | |
| 59 | |||
| 60 | 22319 | void format_numbers(user_t *user, flags_t *flags, | |
| 61 | formating_t *formating, int *copy) | ||
| 62 | { | ||
| 63 | 2/2✓ Branch 0 taken 1981902 times. ✓ Branch 1 taken 22290 times. | 2004192 | for (; user->str[*copy - 1] != flags->str[flags->index_flag]; (*copy)++) { | 
| 64 | 1981902 | find_numbers(user, copy, formating); | |
| 65 | 2/2✓ Branch 0 taken 29 times. ✓ Branch 1 taken 1981873 times. | 1981902 | if (formating->id_nb != -1) { | 
| 66 | 29 | (formating->nb_format) += my_strlen(my_str_nbr(formating->id_nb)); | |
| 67 | 29 | break; | |
| 68 | } | ||
| 69 | } | ||
| 70 | 22319 | } | |
| 71 | |||
| 72 | 22319 | void format_specifier(user_t *user, flags_t *flags, | |
| 73 | formating_t *formating, int *copy) | ||
| 74 | { | ||
| 75 | 22319 | find_specifier(user, copy, formating); | |
| 76 | 4/4✓ Branch 0 taken 22308 times. ✓ Branch 1 taken 11 times. ✓ Branch 2 taken 9 times. ✓ Branch 3 taken 22299 times. | 22319 | if (formating->id_sp == 1 || formating->id_sp == 3) { | 
| 77 | 20 | formating->nb_format += 2; | |
| 78 | 2/2✓ Branch 0 taken 28 times. ✓ Branch 1 taken 22271 times. | 22299 | } else if (formating->id_sp != - 1) { | 
| 79 | 28 | formating->nb_format += 1; | |
| 80 | } | ||
| 81 | 22319 | } | |
| 82 |