aboutsummaryrefslogtreecommitdiff
path: root/src/utils.c
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-08-19 18:02:55 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-08-19 18:02:55 +0200
commit536e0f9acc36a07202274ada0154b291ab619dcb (patch)
tree25d2f6ba0709d315c7a7f8c26a1ff4d84b4a7bf4 /src/utils.c
parent957434ecd3c8170aafc145263b0090863ceadba3 (diff)
downloadminishell-536e0f9acc36a07202274ada0154b291ab619dcb.tar.gz
minishell-536e0f9acc36a07202274ada0154b291ab619dcb.tar.bz2
minishell-536e0f9acc36a07202274ada0154b291ab619dcb.zip
Fixing spaces at the beginning/end of variable with ms_split_notrim in utils.c
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c30
1 files changed, 29 insertions, 1 deletions
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 <cacharle@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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));
+}