aboutsummaryrefslogtreecommitdiffstats
path: root/libft/src/ft_split_redo.c
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-01-24 16:54:01 +0100
committerJozanLeClerc <bousset.rudy@gmail.com>2020-01-24 16:54:01 +0100
commita9182eee769cec9d81f11b19844428da28667022 (patch)
treeef6add01c763a34f618908eddad42efc294ff02c /libft/src/ft_split_redo.c
parentKey defines for compatibility between Linux/Darwin (diff)
download42-cub3d-a9182eee769cec9d81f11b19844428da28667022.tar.gz
42-cub3d-a9182eee769cec9d81f11b19844428da28667022.tar.bz2
42-cub3d-a9182eee769cec9d81f11b19844428da28667022.tar.xz
42-cub3d-a9182eee769cec9d81f11b19844428da28667022.tar.zst
42-cub3d-a9182eee769cec9d81f11b19844428da28667022.zip
ft_split redone
Diffstat (limited to '')
-rw-r--r--libft/src/ft_split_redo.c101
1 files changed, 0 insertions, 101 deletions
diff --git a/libft/src/ft_split_redo.c b/libft/src/ft_split_redo.c
deleted file mode 100644
index 1d33dda..0000000
--- a/libft/src/ft_split_redo.c
+++ /dev/null
@@ -1,101 +0,0 @@
-#include <libft.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <inttypes.h>
-
-static size_t
-ft_count_words(const char *s, char c)
-{
- size_t i;
- size_t count;
- uint8_t ibool;
-
- i = 0;
- count = 0;
- ibool = 1;
- while (s[i])
- {
- while (s[i] == c && s[i])
- i++;
- while (s[i] != c && s[i])
- {
- if (ibool == 1)
- count++;
- ibool = 0;
- i++;
- }
- ibool = 1;
- }
- return (count);
-}
-
-static size_t
-ft_splitlen(const char *str, char c)
-{
- size_t i;
-
- i = 0;
- while (str[i] != c && str[i])
- i++;
- return (i);
-}
-
-static char
- *ft_splitdup(const char *str, char c)
-{
- char *word;
- size_t i;
-
- i = 0;
- if (!(word = (char*)malloc((ft_splitlen(str, c) + 1) * sizeof(char))))
- return (NULL);
- while (str[i] != c && str[i])
- {
- word[i] = str[i];
- i++;
- }
- word[i] = '\0';
- return (word);
-}
-
-static void
-ft_splitfree(char **best_split, size_t j)
-{
- while (j > 0)
- {
- free(best_split[j]);
- j--;
- }
- free(best_split);
-}
-
-char
- **ft_split(const char *s, char c)
-{
- char **best_split;
- size_t i;
- size_t j;
-
- i = 0;
- j = 0;
- if (!(best_split = (char **)malloc((ft_count_words(s, c) + 1)
- * sizeof(char *))))
- return (NULL);
- while (s[i])
- {
- while (s[i] == c && s[i])
- i++;
- while (s[i] != c && s[i])
- {
- if (!(best_split[j] = ft_splitdup(s + i, c)))
- {
- ft_splitfree(best_split, j);
- return (NULL);
- }
- i += ft_splitlen(s + i, c);
- j++;
- }
- }
- best_split[j] = NULL;
- return (best_split);
-}