/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* sort_wildcard_list.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/04/17 09:12:33 by tomoron #+# #+# */ /* Updated: 2024/04/18 20:49:00 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" int wildcard_cmp(char *s1, char *s2, char *order) { while (*s1 && *s2) { while (*s1 && !ft_isalnum(*s1)) s1++; while (*s2 && !ft_isalnum(*s2)) s2++; if (*s1 != *s2) return ((ft_strchr(order, *s2) - order) - (ft_strchr(order, *s1) - order)); s1++; s2++; } return ((ft_strchr(order, *s2) - order) - (ft_strchr(order, *s1) - order)); } void sort_wildcards_token(t_token *list) { t_token *tmp; t_token *start; char *swap; tmp = list; start = list; while (tmp) { list = start; while (list->next) { if (wildcard_cmp(list->value, list->next->value, "zZyYxXwWvVuUtTsSrRqQpPoOnNmMlLkKjJiIhHgGfFeEdDcCbBaA9876543210") > 0) { swap = list->value; list->value = list->next->value; list->next->value = swap; } list = list->next; } tmp = tmp->next; } }