/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* spacer.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet <|", out[i - 1])) { while (str[i] == out[i - 1]) i++; temp = ft_strreplace(out, " ", i, i); free(out); out = temp; if (out == NULL) return (NULL); } i++; } return (out); } static char *ft_spacer_before(const char *str) { char *out; char *temp; size_t i; out = ft_strdup(str); if (out == NULL) return (NULL); i = 0; while (out[i + 1] != '\0') { if (ft_is_in_quote(out, i)) continue ; if (ft_is_in("><|", out[i + 1])) { while (out[i] == ' ') i++; while (out[i] == out[i + 1]) i++; temp = ft_strreplace(out, " ", i + 1, i + 1); free(out); out = temp; if (out == NULL) return (NULL); } i++; } return (out); } static void ft_space_simplifier(char *str) { size_t i; size_t y; i = 0; while (str[i] != '\0') { y = 0; while (str[y + i] == ' ') y++; if (ft_is_in_quote(str, i + y)) { i = i + y; continue ; } if (y > 1) { ft_strshift(str + i, -y + 1); y--; } i++; } } char *ft_normalizer(char *str) { char *out; char *temp; temp = ft_spacer_after(str); if (temp == NULL) return (NULL); out = ft_spacer_before(temp); free(temp); if (out == NULL) return (NULL); ft_space_simplifier(out); return (out); }