From 536e0f9acc36a07202274ada0154b291ab619dcb Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Wed, 19 Aug 2020 18:02:55 +0200 Subject: Fixing spaces at the beginning/end of variable with ms_split_notrim in utils.c --- src/utils.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index b301751..a0771db 100644 --- a/src/utils.c +++ b/src/utils.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:56:31 by cacharle #+# #+# */ -/* Updated: 2020/07/20 17:06:21 by charles ### ########.fr */ +/* Updated: 2020/08/19 17:50:43 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -97,3 +97,31 @@ void print_prompt(void) printf("\033[0;32m%s\033[0m$ ", getcwd(NULL, 0)); fflush(stdout); } + +char **ms_split_notrim(const char *s, char c) +{ + t_ftvec *ret; + char *match; + + if ((ret = ft_vecnew(16)) == NULL) + return (NULL); + while (*s != '\0') + { + if ((match = ft_strchr(s, c)) == NULL) + { + if (ft_vecpush_safe(ret, ft_strdup(s)) == NULL) + return (ft_vecdestroy(ret, free)); + break; + } + if (ft_vecpush_safe(ret, ft_strndup(s, match - s)) == NULL) + return (ft_vecdestroy(ret, free)); + while (*++match == c) + ; + s = match; + if (*s == '\0' && ft_vecpush_safe(ret, ft_strdup(s)) == NULL) + return (ft_vecdestroy(ret, free)); + } + if (ft_vecpush(ret, NULL) == NULL) + return (ft_vecdestroy(ret, free)); + return ((char**)ft_vecunwrap(ret)); +} -- cgit