diff options
Diffstat (limited to 'test_mini/libft/src')
149 files changed, 0 insertions, 4865 deletions
diff --git a/test_mini/libft/src/algo/ft_bsearch.c b/test_mini/libft/src/algo/ft_bsearch.c deleted file mode 100644 index 5132fa2..0000000 --- a/test_mini/libft/src/algo/ft_bsearch.c +++ /dev/null @@ -1,32 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_bsearch.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 05:29:05 by cacharle #+# #+# */ -/* Updated: 2020/02/13 23:14:48 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_algo.h" - -void *ft_bsearch(const void *base, size_t nel, size_t width, - t_ftsearch_const *consts) -{ - int res; - size_t mid; - - if (nel < 1) - return (NULL); - mid = nel / 2; - res = (consts->compar)(consts->key, base + mid * width); - if (res == 0) - return ((void*)base + mid * width); - if (res < 0) - return (ft_bsearch(base, mid, width, consts)); - else - return (ft_bsearch(base + (mid + 1) * width, nel - mid - 1, - width, consts)); -} diff --git a/test_mini/libft/src/algo/ft_compar_int.c b/test_mini/libft/src/algo/ft_compar_int.c deleted file mode 100644 index 848dc71..0000000 --- a/test_mini/libft/src/algo/ft_compar_int.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_compar_int.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/19 08:24:43 by cacharle #+# #+# */ -/* Updated: 2020/01/19 08:27:38 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_compar_int(const void *a, const void *b) -{ - return (*(int*)a - *(int*)b); -} diff --git a/test_mini/libft/src/algo/ft_heapsort.c b/test_mini/libft/src/algo/ft_heapsort.c deleted file mode 100644 index d309624..0000000 --- a/test_mini/libft/src/algo/ft_heapsort.c +++ /dev/null @@ -1,54 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_heapsort.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 02:59:22 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:22:19 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_algo.h" - -/* static void st_build_max_heap(void *base, size_t nel, size_t width, */ -/* int (*compar)(const void *, const void *)) */ -/* { */ -/* int i; */ -/* */ -/* i = 1; */ -/* while (i < nel) */ -/* { */ -/* compar(base + i * width, base + 2 * i * width) */ -/* */ -/* i++; */ -/* } */ -/* } */ -/* */ -/* static void st_heapify(void *base, size_t nel, size_t width, */ -/* int (*compar)(const void *, const void *)) */ -/* { */ -/* */ -/* } */ - -int ft_heapsort(void *base, size_t nel, size_t width, - int (*compar)(const void *, const void *)) -{ - (void)base; - (void)nel; - (void)width; - (void)compar; - /* size_t i; */ - /* */ - /* if (nel < 2) */ - /* return (0); */ - /* st_build_max_heap(base, nel, width, compar); */ - /* i = -1; */ - /* while (++i < nel) */ - /* { */ - /* ft_memswap(base, base + (nel - i - 1) * width); */ - /* st_heapify(base, nel - i - 1, width, compar); */ - /* } */ - return (0); -} diff --git a/test_mini/libft/src/algo/ft_is_set.c b/test_mini/libft/src/algo/ft_is_set.c deleted file mode 100644 index 3e7ae31..0000000 --- a/test_mini/libft/src/algo/ft_is_set.c +++ /dev/null @@ -1,32 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_is_set.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/19 07:17:15 by cacharle #+# #+# */ -/* Updated: 2020/02/10 02:51:41 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_algo.h" - -t_ftbool ft_is_set(void *base, size_t nel, size_t width, - t_ftcompar_func compar) -{ - size_t i; - - if (nel < 2) - return (TRUE); - ft_qsort(base, nel, width, compar); - i = 0; - while (i < nel - 1) - { - if (compar(base + (i * width), base + ((i + 1) * width)) == 0) - return (FALSE); - i++; - } - return (TRUE); -} diff --git a/test_mini/libft/src/algo/ft_lfind.c b/test_mini/libft/src/algo/ft_lfind.c deleted file mode 100644 index 8538f50..0000000 --- a/test_mini/libft/src/algo/ft_lfind.c +++ /dev/null @@ -1,28 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lfind.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 05:49:19 by cacharle #+# #+# */ -/* Updated: 2020/02/10 05:58:19 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_algo.h" - -void *ft_lfind(const void *base, size_t *nelp, size_t width, - t_ftsearch_const *consts) -{ - size_t i; - - i = 0; - while (i < *nelp) - { - if ((consts->compar)(consts->key, base + i * width) == 0) - return ((void*)base + i * width); - i++; - } - return (NULL); -} diff --git a/test_mini/libft/src/algo/ft_lsearch.c b/test_mini/libft/src/algo/ft_lsearch.c deleted file mode 100644 index 4c77bca..0000000 --- a/test_mini/libft/src/algo/ft_lsearch.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lsearch.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 05:53:57 by cacharle #+# #+# */ -/* Updated: 2020/02/10 05:59:33 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_algo.h" - -void *ft_lsearch(const void *base, size_t *nelp, size_t width, - t_ftsearch_const *consts) -{ - void *found; - - if ((found = ft_lfind(base, nelp, width, consts)) != NULL) - return (found); - return (ft_memcpy((void*)base + (*nelp)++ * width, consts->key, width)); -} diff --git a/test_mini/libft/src/algo/ft_mergesort.c b/test_mini/libft/src/algo/ft_mergesort.c deleted file mode 100644 index 25b4255..0000000 --- a/test_mini/libft/src/algo/ft_mergesort.c +++ /dev/null @@ -1,76 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_mergesort.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 02:26:41 by cacharle #+# #+# */ -/* Updated: 2020/02/13 23:14:21 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_algo.h" - -static int st_mergesort_error(void *left, void *right) -{ - free(left); - free(right); - return (-1); -} - -static void st_merge_sorted(struct s_merge_sorted_arrays *arrays, size_t nel, - size_t width, int (*compar)(const void *, const void *)) -{ - size_t bi; - size_t li; - size_t ri; - size_t mid; - - mid = nel / 2; - bi = 0; - li = 0; - ri = 0; - while (li < mid && ri < nel - mid) - { - if (compar(arrays->left + li * width, arrays->right + ri * width) < 0) - ft_memcpy(arrays->base + bi * width, - arrays->left + li++ * width, width); - else - ft_memcpy(arrays->base + bi * width, - arrays->right + ri++ * width, width); - bi++; - } - while (li < mid) - ft_memcpy(arrays->base + bi++ * width, - arrays->left + li++ * width, width); - while (ri < nel - mid) - ft_memcpy(arrays->base + bi++ * width, - arrays->right + ri++ * width, width); -} - -int ft_mergesort(void *base, size_t nel, size_t width, - int (*compar)(const void *, const void *)) -{ - size_t mid; - struct s_merge_sorted_arrays arrays; - - if (nel < 2) - return (0); - mid = nel / 2; - if ((arrays.left = malloc(mid * width)) == NULL) - return (-1); - if ((arrays.right = malloc((nel - mid) * width)) == NULL) - return (st_mergesort_error(arrays.left, NULL)); - ft_memcpy(arrays.left, base, mid * width); - ft_memcpy(arrays.right, base + mid * width, (nel - mid) * width); - if (ft_mergesort(arrays.left, mid, width, compar) == -1) - return (st_mergesort_error(arrays.left, arrays.right)); - if (ft_mergesort(arrays.right, nel - mid, width, compar) == -1) - return (st_mergesort_error(arrays.left, arrays.right)); - arrays.base = base; - st_merge_sorted(&arrays, nel, width, compar); - free(arrays.left); - free(arrays.right); - return (0); -} diff --git a/test_mini/libft/src/algo/ft_qsort.c b/test_mini/libft/src/algo/ft_qsort.c deleted file mode 100644 index 9bcfcdf..0000000 --- a/test_mini/libft/src/algo/ft_qsort.c +++ /dev/null @@ -1,64 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_qsort.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/19 07:25:51 by cacharle #+# #+# */ -/* Updated: 2020/02/10 02:55:14 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_algo.h" - -static t_ftrange ft_range_new(int lo, int hi) -{ - t_ftrange range; - - range.lo = lo; - range.hi = hi; - return (range); -} - -static int ft_qsort_partition(void *base, t_ftrange range, - size_t width, t_ftcompar_func compar) -{ - void *pivot; - int p; - int i; - - pivot = base + (range.hi * width); - p = range.lo; - i = range.lo - 1; - while (++i < range.hi) - { - if (compar(base + (i * width), pivot) < 0) - { - ft_memswap(base + (i * width), base + (p * width), width); - p++; - } - } - ft_memswap(pivot, base + (p * width), width); - return (p); -} - -static void ft_qsort_rec(void *base, t_ftrange range, - size_t width, t_ftcompar_func compar) -{ - int pivot; - - if (range.lo >= range.hi) - return ; - pivot = ft_qsort_partition(base, range, width, compar); - ft_qsort_rec(base, ft_range_new(range.lo, pivot - 1), width, compar); - ft_qsort_rec(base, ft_range_new(pivot + 1, range.hi), width, compar); -} - -void ft_qsort(void *base, size_t nel, size_t width, - t_ftcompar_func compar) -{ - if (width == 0 || nel < 2) - return ; - ft_qsort_rec(base, ft_range_new(0, nel - 1), width, compar); -} diff --git a/test_mini/libft/src/algo/ft_reverse.c b/test_mini/libft/src/algo/ft_reverse.c deleted file mode 100644 index 0bc447f..0000000 --- a/test_mini/libft/src/algo/ft_reverse.c +++ /dev/null @@ -1,27 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_reverse.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 05:07:13 by cacharle #+# #+# */ -/* Updated: 2020/02/10 05:19:22 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_algo.h" - -void ft_reverse(void *base, size_t nel, size_t width) -{ - size_t i; - - i = 0; - nel--; - while (i < nel) - { - ft_memswap(base + i * width, base + nel * width, width); - i++; - nel--; - } -} diff --git a/test_mini/libft/src/bt/ft_btdestroy.c b/test_mini/libft/src/bt/ft_btdestroy.c deleted file mode 100644 index c802db0..0000000 --- a/test_mini/libft/src/bt/ft_btdestroy.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_btdestroy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/07 21:30:53 by cacharle #+# #+# */ -/* Updated: 2020/02/07 21:35:19 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_bt.h" - -void ft_btdestroy(t_ftbtree *tree, void (*del)(void *data)) -{ - if (tree == NULL) - return ; - ft_btdestroy(tree->left, del); - ft_btdestroy(tree->right, del); - (*del)(tree->data); - free(tree); -} diff --git a/test_mini/libft/src/bt/ft_btnew.c b/test_mini/libft/src/bt/ft_btnew.c deleted file mode 100644 index 973e1a4..0000000 --- a/test_mini/libft/src/bt/ft_btnew.c +++ /dev/null @@ -1,25 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_btnew.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/07 21:33:16 by cacharle #+# #+# */ -/* Updated: 2020/02/07 21:34:35 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_bt.h" - -t_ftbtree *ft_btnew(void *data) -{ - t_ftbtree *tree; - - if ((tree = (t_ftbtree*)malloc(sizeof(t_ftbtree))) == NULL) - return (NULL); - tree->data = data; - tree->left = NULL; - tree->right = NULL; - return (tree); -} diff --git a/test_mini/libft/src/ctype/ft_isalnum.c b/test_mini/libft/src/ctype/ft_isalnum.c deleted file mode 100644 index 1ee1e0f..0000000 --- a/test_mini/libft/src/ctype/ft_isalnum.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_isalnum.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:41:40 by cacharle #+# #+# */ -/* Updated: 2019/10/07 09:41:56 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_isalnum(int c) -{ - return (ft_isalpha(c) || ft_isdigit(c)); -} diff --git a/test_mini/libft/src/ctype/ft_isalpha.c b/test_mini/libft/src/ctype/ft_isalpha.c deleted file mode 100644 index 6f155b4..0000000 --- a/test_mini/libft/src/ctype/ft_isalpha.c +++ /dev/null @@ -1,16 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_isalpha.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:54:52 by cacharle #+# #+# */ -/* Updated: 2019/10/20 13:01:13 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -int ft_isalpha(int c) -{ - return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')); -} diff --git a/test_mini/libft/src/ctype/ft_isascii.c b/test_mini/libft/src/ctype/ft_isascii.c deleted file mode 100644 index 12b6849..0000000 --- a/test_mini/libft/src/ctype/ft_isascii.c +++ /dev/null @@ -1,16 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_isascii.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:54:30 by cacharle #+# #+# */ -/* Updated: 2020/02/12 23:01:02 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -int ft_isascii(int c) -{ - return (c >= 00 && c <= 0177); -} diff --git a/test_mini/libft/src/ctype/ft_isblank.c b/test_mini/libft/src/ctype/ft_isblank.c deleted file mode 100644 index def106b..0000000 --- a/test_mini/libft/src/ctype/ft_isblank.c +++ /dev/null @@ -1,16 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_isblank.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 05:17:45 by cacharle #+# #+# */ -/* Updated: 2020/02/10 05:18:34 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -int ft_isblank(int c) -{ - return (c == ' ' || c == '\t'); -} diff --git a/test_mini/libft/src/ctype/ft_isdigit.c b/test_mini/libft/src/ctype/ft_isdigit.c deleted file mode 100644 index f8a5850..0000000 --- a/test_mini/libft/src/ctype/ft_isdigit.c +++ /dev/null @@ -1,16 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_isdigit.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:41:20 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:41:25 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -int ft_isdigit(int c) -{ - return (c >= '0' && c <= '9'); -} diff --git a/test_mini/libft/src/ctype/ft_isprint.c b/test_mini/libft/src/ctype/ft_isprint.c deleted file mode 100644 index c311709..0000000 --- a/test_mini/libft/src/ctype/ft_isprint.c +++ /dev/null @@ -1,16 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_isprint.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:52:09 by cacharle #+# #+# */ -/* Updated: 2019/10/20 13:03:36 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -int ft_isprint(int c) -{ - return (c >= ' ' && c <= '~'); -} diff --git a/test_mini/libft/src/ctype/ft_isspace.c b/test_mini/libft/src/ctype/ft_isspace.c deleted file mode 100644 index 18b6dba..0000000 --- a/test_mini/libft/src/ctype/ft_isspace.c +++ /dev/null @@ -1,19 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_isspace.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/15 11:33:36 by cacharle #+# #+# */ -/* Updated: 2020/01/15 11:35:07 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_isspace(int c) -{ - return (c == ' ' || c == '\t' || c == '\n' - || c == '\v' || c == '\f' || c == '\r'); -} diff --git a/test_mini/libft/src/ctype/ft_todigit.c b/test_mini/libft/src/ctype/ft_todigit.c deleted file mode 100644 index f201470..0000000 --- a/test_mini/libft/src/ctype/ft_todigit.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_todigit.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/15 10:37:57 by cacharle #+# #+# */ -/* Updated: 2020/02/12 23:11:55 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_todigit(int c) -{ - if (!ft_isdigit(c)) - return (-1); - return (c & 0x0F); -} diff --git a/test_mini/libft/src/ctype/ft_tolower.c b/test_mini/libft/src/ctype/ft_tolower.c deleted file mode 100644 index 919469f..0000000 --- a/test_mini/libft/src/ctype/ft_tolower.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_tolower.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:14:26 by cacharle #+# #+# */ -/* Updated: 2019/11/20 01:04:02 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -/* -** E: 0100 0101 -** e: 0110 0101 -** ^ -*/ - -int ft_tolower(int c) -{ - if (c >= 'A' && c <= 'Z') - return (c | 0b00100000); - return (c); -} diff --git a/test_mini/libft/src/ctype/ft_toupper.c b/test_mini/libft/src/ctype/ft_toupper.c deleted file mode 100644 index 8579b91..0000000 --- a/test_mini/libft/src/ctype/ft_toupper.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_toupper.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:14:10 by cacharle #+# #+# */ -/* Updated: 2019/11/20 01:04:51 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_toupper(int c) -{ - if (c >= 'a' && c <= 'z') - return (c ^ 0b00100000); - return (c); -} diff --git a/test_mini/libft/src/ht/ft_htdelone.c b/test_mini/libft/src/ht/ft_htdelone.c deleted file mode 100644 index 7374a44..0000000 --- a/test_mini/libft/src/ht/ft_htdelone.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htdelone.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 09:27:18 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:10:16 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Delete one hash table entry -** \param key Key of entry to delete -** \param del Function to destroy the entry -** \warning The del function HAS to free the key -** \note Do nothing if their is to entry which correspond to key -*/ - -void ft_htdelone(t_ftht *ht, char *key, void (*del)(t_ftht_entry*)) -{ - ft_lstremove_if(ht->buckets + ft_hthash(ht, key), - ft_inter_htkey_cmp, key, - (void (*)(void*))del); -} diff --git a/test_mini/libft/src/ht/ft_htdestroy.c b/test_mini/libft/src/ht/ft_htdestroy.c deleted file mode 100644 index ff362d2..0000000 --- a/test_mini/libft/src/ht/ft_htdestroy.c +++ /dev/null @@ -1,30 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htdestroy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:31:02 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:10:31 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Destroy an hash table. -** \param del Function to delete each entry -** \warning The del function HAS to free the key -*/ - -void ft_htdestroy(t_ftht *ht, void (*del)(t_ftht_entry*)) -{ - if (ht == NULL) - return ; - while (ht->size-- > 0) - ft_lstdestroy(ht->buckets + ht->size, (void (*)(void*))del); - free(ht->buckets); - free(ht); -} diff --git a/test_mini/libft/src/ht/ft_htentry_new.c b/test_mini/libft/src/ht/ft_htentry_new.c deleted file mode 100644 index 12a1159..0000000 --- a/test_mini/libft/src/ht/ft_htentry_new.c +++ /dev/null @@ -1,37 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htentry_new.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:45:36 by cacharle #+# #+# */ -/* Updated: 2020/02/17 04:09:50 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Create a new hash table key/value pair. -** \param key Hash entry string key (always duplicated) -** \return Content or NULL if an allocation failed. -*/ - -t_ftht_entry *ft_htentry_new(char *key, void *value) -{ - t_ftht_entry *content; - - if (key == NULL) - return (NULL); - if ((content = (t_ftht_entry*)malloc(sizeof(t_ftht_entry))) == NULL) - return (NULL); - if ((content->key = ft_strdup(key)) == NULL) - { - free(content); - return (NULL); - } - content->value = value; - return (content); -} diff --git a/test_mini/libft/src/ht/ft_htget.c b/test_mini/libft/src/ht/ft_htget.c deleted file mode 100644 index a6383fe..0000000 --- a/test_mini/libft/src/ht/ft_htget.c +++ /dev/null @@ -1,35 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htget.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:33:21 by cacharle #+# #+# */ -/* Updated: 2020/04/01 18:02:57 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Retrieve a value with a key -** \param ht Hash table where key is searched -** \param key Searched key -** \return Value void pointer at key or NULL if not found -*/ - -void *ft_htget(t_ftht *ht, char *key) -{ - t_ftht_digest digest; - t_ftlst *found; - - if (ht == NULL || key == NULL) - return (NULL); - digest = ft_hthash(ht, key); - found = ft_lstlfind(ht->buckets[digest], ft_inter_htkey_cmp, key); - if (found == NULL) - return (NULL); - return (((t_ftht_entry*)found->data)->value); -} diff --git a/test_mini/libft/src/ht/ft_hthash.c b/test_mini/libft/src/ht/ft_hthash.c deleted file mode 100644 index 3369d24..0000000 --- a/test_mini/libft/src/ht/ft_hthash.c +++ /dev/null @@ -1,36 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_hthash.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 09:56:01 by cacharle #+# #+# */ -/* Updated: 2020/01/30 10:34:27 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_ht.h" - -/* -** \brief Hash a string -** \param ht So that the index is in the hash table bound -** \param key String to hash -** \return Hash -*/ - -// maybe use a less efficient but understandable function -t_ftht_digest ft_hthash(t_ftht *ht, char *key) -{ - t_ftht_digest digest; - - if (*key == '\0') - return (0); - digest = *key++ << 7; - while (*key != '\0') - { - digest = ((1000003 * digest) ^ *key) & (1 << 16); - key++; - } - return (digest % ht->size); -} diff --git a/test_mini/libft/src/ht/ft_htiter.c b/test_mini/libft/src/ht/ft_htiter.c deleted file mode 100644 index b854993..0000000 --- a/test_mini/libft/src/ht/ft_htiter.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htiter.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 18:02:24 by charles #+# #+# */ -/* Updated: 2020/04/01 18:02:32 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_ht.h" - -/* -** \brief Iterate over entry of hash table -** \param ht Iterated hash table -** \param f Function applied to each entry -*/ - -void ft_htiter(t_ftht *ht, void (*f)(t_ftht_entry*)) -{ - size_t i; - - i = 0; - while (i < ht->size) - { - ft_lstiter(ht->buckets[i], (void (*)(void*))f); - i++; - } -} diff --git a/test_mini/libft/src/ht/ft_htnew.c b/test_mini/libft/src/ht/ft_htnew.c deleted file mode 100644 index e5335d2..0000000 --- a/test_mini/libft/src/ht/ft_htnew.c +++ /dev/null @@ -1,38 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htnew.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:19:16 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:23:43 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Create a new hash table. -** \param size Size of the underlying array of linked list (buckets) -** \return Created hash table or NULL is an allocation failed -*/ - -t_ftht *ft_htnew(t_ftsize size) -{ - t_ftht *ht; - - if (size == 0) - return (NULL); - if ((ht = (t_ftht*)malloc(sizeof(t_ftht))) == NULL) - return (NULL); - ht->buckets = (t_ftht_bucket*)ft_calloc(size, sizeof(t_ftht_entry)); - if (ht->buckets == NULL) - { - free(ht); - return (NULL); - } - ht->size = size; - return (ht); -} diff --git a/test_mini/libft/src/ht/ft_htset.c b/test_mini/libft/src/ht/ft_htset.c deleted file mode 100644 index 68d3752..0000000 --- a/test_mini/libft/src/ht/ft_htset.c +++ /dev/null @@ -1,56 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htset.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:41:52 by cacharle #+# #+# */ -/* Updated: 2020/04/01 18:02:12 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Create/Update a entry in hash table. -** \note If `key` already exist in `ht` -** only updates the list node content. -** Else create a new list node in addition the list content. -** \param ht Hash table where the entry is modified -** \param key Key of the new entry -** \param value Value of the new entry -** \param del Destroy function in case the entry is modified. -** \return Pointer to the created entry, NULL if an allocation failed. -*/ - -t_ftht_entry *ft_htset(t_ftht *ht, char *key, void *value, - void (*del)(t_ftht_entry*)) -{ - t_ftht_digest digest; - t_ftht_entry *content; - t_ftht_bucket bucket; - t_ftlst *tmp; - - if (ht == NULL || key == NULL) - return (NULL); - if ((content = ft_htentry_new(key, value)) == NULL) - return (NULL); - digest = ft_hthash(ht, key); - tmp = ft_lstlfind(ht->buckets[digest], ft_inter_htkey_cmp, key); - if (tmp != NULL) - { - if (del != NULL) - del(tmp->data); - tmp->data = content; - return ((t_ftht_entry*)tmp->data); - } - if ((bucket = ft_lstnew(content)) == NULL) - { - del(content); - return (NULL); - } - ft_lstpush_front(ht->buckets + digest, bucket); - return (content); -} diff --git a/test_mini/libft/src/ht/ft_inter_htkey_cmp.c b/test_mini/libft/src/ht/ft_inter_htkey_cmp.c deleted file mode 100644 index e8a0375..0000000 --- a/test_mini/libft/src/ht/ft_inter_htkey_cmp.c +++ /dev/null @@ -1,25 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_internal_htkey_equal.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 09:24:39 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:20:43 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** Hash table internal function to compare key string in linked list. -*/ - -int ft_inter_htkey_cmp(const void *ref_key, const void *content) -{ - if (ref_key == NULL || content == NULL) - return (-1); - return (ft_strcmp((char*)ref_key, ((t_ftht_entry*)content)->key)); -} diff --git a/test_mini/libft/src/io/ft_getchar.c b/test_mini/libft/src/io/ft_getchar.c deleted file mode 100644 index 9d233c0..0000000 --- a/test_mini/libft/src/io/ft_getchar.c +++ /dev/null @@ -1,22 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_getchar.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/18 10:29:54 by cacharle #+# #+# */ -/* Updated: 2020/02/14 02:24:56 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char ft_getchar(void) -{ - char c; - - if (read(STDIN_FILENO, &c, 1) < 0) - return (-1); - return (c); -} diff --git a/test_mini/libft/src/io/ft_next_line.c b/test_mini/libft/src/io/ft_next_line.c deleted file mode 100644 index 74afa71..0000000 --- a/test_mini/libft/src/io/ft_next_line.c +++ /dev/null @@ -1,113 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_next_line.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/31 10:39:38 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:11:35 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -static int st_find_newline(char *str) -{ - int i; - - i = -1; - while (str[++i]) - if (str[i] == '\n') - return (i); - return (-1); -} - -static int st_free_return(char **ptr, char **ptr2, int ret) -{ - if (ptr != NULL) - { - free(*ptr); - *ptr = NULL; - } - if (ptr2 != NULL) - { - free(*ptr2); - *ptr2 = NULL; - } - return (ret); -} - -static int st_read_line(int fd, char **line, char *rest) -{ - int ret; - int split_at; - char *buf; - - if ((buf = malloc(sizeof(char) * (FTNL_BUFFER_SIZE + 1))) == NULL) - return (st_free_return(line, NULL, FTNL_STATUS_ERROR)); - while ((ret = read(fd, buf, FTNL_BUFFER_SIZE)) > 0) - { - buf[ret] = '\0'; - if ((split_at = st_find_newline(buf)) != -1) - { - ft_strcpy(rest, buf + split_at + 1); - buf[split_at] = '\0'; - if ((*line = ft_strjoinf(*line, buf, FT_STRJOINF_FST)) == NULL) - return (st_free_return(&buf, NULL, FTNL_STATUS_ERROR)); - return (st_free_return(&buf, NULL, FTNL_STATUS_LINE)); - } - if ((*line = ft_strjoinf(*line, buf, FT_STRJOINF_FST)) == NULL) - return (st_free_return(&buf, NULL, FTNL_STATUS_ERROR)); - } - if (ret == -1) - return (st_free_return(&buf, line, FTNL_STATUS_ERROR)); - return (st_free_return(&buf, NULL, ret)); -} - -/* -** if has rest: -** if rest has newline: -** push rest until newline in line, shift rest -** return LINE_READ -** else: -** push rest in line -** -** while can read fd in buf -** if buf has newline: -** push buf until newline in line -** push buf after newline in rest -** return LINE_READ -** push buf in line -** -** return FTNL_EOF -*/ - -int ft_next_line(int fd, char **line) -{ - int split_at; - static char rest[OPEN_MAX][FTNL_BUFFER_SIZE + 1] = {{0}}; - - if (fd < 0 || fd > OPEN_MAX || line == NULL || FTNL_BUFFER_SIZE <= 0) - return (FTNL_STATUS_ERROR); - if ((*line = ft_strdup("")) == NULL) - return (FTNL_STATUS_ERROR); - if (rest[fd][0] == '\0') - return (st_read_line(fd, line, rest[fd])); - if ((split_at = st_find_newline(rest[fd])) != -1) - { - free(*line); - if ((*line = (char*)malloc(sizeof(char) * (split_at + 1))) == NULL) - return (FTNL_STATUS_ERROR); - ft_strncpy(*line, rest[fd], split_at); - (*line)[split_at] = '\0'; - ft_strcpy(rest[fd], rest[fd] + split_at + 1); - return (FTNL_STATUS_LINE); - } - free(*line); - if (!(*line = (char*)malloc(sizeof(char) * (ft_strlen(rest[fd]) + 1)))) - return (FTNL_STATUS_ERROR); - ft_strcpy(*line, rest[fd]); - rest[fd][0] = '\0'; - return (st_read_line(fd, line, rest[fd])); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_asprintf.c b/test_mini/libft/src/io/ft_printf/ft_asprintf.c deleted file mode 100644 index 5eb62d9..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_asprintf.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_asprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:30:33 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:43:08 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_asprintf(char **ret, const char *format, ...) -{ - int vret; - va_list ap; - - va_start(ap, format); - vret = ft_vasprintf(ret, format, ap); - va_end(ap); - return (vret); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_dprintf.c b/test_mini/libft/src/io/ft_printf/ft_dprintf.c deleted file mode 100644 index 8e60970..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_dprintf.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_dprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:29:11 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:42:05 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_dprintf(int fd, const char *format, ...) -{ - int ret; - va_list ap; - - va_start(ap, format); - ret = ft_vdprintf(fd, format, ap); - va_end(ap); - return (ret); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_printf.c b/test_mini/libft/src/io/ft_printf/ft_printf.c deleted file mode 100644 index 1b92bb2..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_printf.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_printf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:31:32 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:41:54 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_printf(const char *format, ...) -{ - int ret; - va_list ap; - - va_start(ap, format); - ret = ft_vprintf(format, ap); - va_end(ap); - return (ret); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_snprintf.c b/test_mini/libft/src/io/ft_printf/ft_snprintf.c deleted file mode 100644 index e1fdfbd..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_snprintf.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_snprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:27:55 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:41:49 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_snprintf(char *str, size_t size, const char *format, ...) -{ - int ret; - va_list ap; - - va_start(ap, format); - ret = ft_vsnprintf(str, size, format, ap); - va_end(ap); - return (ret); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_sprintf.c b/test_mini/libft/src/io/ft_printf/ft_sprintf.c deleted file mode 100644 index 31da75e..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_sprintf.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_sprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:17:21 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:42:28 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_sprintf(char *str, const char *format, ...) -{ - int ret; - va_list ap; - - va_start(ap, format); - ret = ft_vsprintf(str, format, ap); - va_end(ap); - return (ret); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_vasprintf.c b/test_mini/libft/src/io/ft_printf/ft_vasprintf.c deleted file mode 100644 index 85f66bc..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_vasprintf.c +++ /dev/null @@ -1,21 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vasprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:49:56 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:45:39 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_vasprintf(char **ret, const char *format, va_list ap) -{ - (void)ret; - (void)format; - (void)ap; - return (0); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_vasprintf.h b/test_mini/libft/src/io/ft_printf/ft_vasprintf.h deleted file mode 100644 index 2d364c8..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_vasprintf.h +++ /dev/null @@ -1,155 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* header.h :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/29 00:06:46 by cacharle #+# #+# */ -/* Updated: 2020/01/15 11:39:15 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#ifndef FT_VASPRINTF_H -# define FT_VASPRINTF_H - -# include <unistd.h> -# include <stdlib.h> -# include <stdarg.h> -# include "libft.h" - -# define STATUS_ERROR -1 - -# define SPECIFIERS_STR "nfcspdiuxX%" -# define FLAGS_STR "#0- +'" - -# define IS_STANDALONE_FLAG(c) (ft_strchr(FLAGS_STR, c) != NULL) - -# define FLAG_MINUS (1 << 0) -# define FLAG_ZERO (1 << 1) -# define FLAG_SIGNED (1 << 2) -# define FLAG_SPACE (1 << 3) -# define FLAG_ALTERNATE (1 << 4) -# define FLAG_SHORT (1 << 5) -# define FLAG_SHORT_SHORT (1 << 6) -# define FLAG_LONG (1 << 7) -# define FLAG_LONG_LONG (1 << 8) -# define FLAG_WIDTH_WILDCARD (1 << 9) -# define FLAG_PRECISION_WILDCARD (1 << 10) -# define FLAG_WIDTH_OVERWRITE (1 << 11) - -# define ITOA_HEX_LOW(x) (ft_itoa_unsigned_base(x, "0123456789abcdef")) -# define ITOA_HEX_UP(x) (ft_itoa_unsigned_base(x, "0123456789ABCDEF")) -# define ITOA_DEC(x) (ft_itoa_base(x, "0123456789")) - -typedef int t_bool; -typedef short t_flags; -typedef long long int t_big_int; -typedef long long unsigned int t_big_uint; - -typedef struct -{ - int precision; - int width; - t_flags flags; - char specifier; - int fmt_len; - int size; - long long int *written; -} t_pformat; - -typedef struct s_flist -{ - struct s_flist *next; - t_pformat *content; -} t_flist; - -typedef struct s_printf_status -{ - va_list ap; - t_flist *flist; - const char *format; - char *out; - int out_size; -} t_printf_status; - -/* -** ft_printf.c -*/ - -int ft_printf(const char *format, ...); -const char *add_conversion(t_printf_status *status, - t_pformat *pformat); -const char *add_between(t_printf_status *status); -int destroy_status_error(t_printf_status *status); - -/* -** parse.c -*/ - -int parse(const char *format, t_flist **flist); -t_pformat *parse_reduced(const char *fmt); - -/* -** printer.c -*/ - -char *convert(t_pformat *pformat, va_list ap); -char *convert_specifier(va_list ap, t_pformat *pformat); -char *handle_width(t_pformat *pformat, char *str); -char *handle_precision(t_pformat *pformat, char *str); - -/* -** utils.c -*/ - -char *ft_itoa_base(long long int n, char *base); -char *ft_itoa_unsigned_base(long long unsigned int n, - char *base); -void *ft_memjoin_free(void *dst, int dst_size, void *src, - int src_size); - -/* -** extract.c -*/ - -const char *extract_flags(t_pformat *pformat, const char *fmt); -const char *extract_width(t_pformat *pformat, const char *fmt); -const char *extract_precision(t_pformat *pformat, const char *fmt); -const char *extract_length_modifier(t_pformat *pformat, - const char *fmt); - -/* -** list.c -*/ - -t_flist *list_new(t_pformat *content); -void *list_destroy(t_flist **lst); -void list_push_front(t_flist **lst, t_flist *new); -void list_pop_front(t_flist **lst); -t_flist *list_reverse(t_flist *lst); - -/* -** convert_*.c -*/ - -char *convert_char(va_list ap, t_pformat *pformat); -char *convert_str(va_list ap, t_pformat *pformat); -char *convert_ptr(va_list ap, t_pformat *pformat); -char *convert_int(va_list ap, t_pformat *pformat); -char *convert_uint(va_list ap, t_pformat *pformat); -char *convert_hex(va_list ap, t_pformat *pformat); -char *convert_percent(va_list ap, t_pformat *pformat); -char *convert_written(va_list ap, t_pformat *pformat); -char *convert_double(va_list ap, t_pformat *pformat); -char *convert_none(va_list ap, t_pformat *pformat); - -/* -** length_modifier.c -*/ - -t_big_uint length_modifier_unsigned_int( - va_list ap, t_pformat *pformat); -t_big_int length_modifier_int(va_list ap, t_pformat *pformat); - -#endif diff --git a/test_mini/libft/src/io/ft_printf/ft_vdprintf.c b/test_mini/libft/src/io/ft_printf/ft_vdprintf.c deleted file mode 100644 index a5e5ebf..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_vdprintf.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vdprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:40:03 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:46:00 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_vdprintf(int fd, const char *format, va_list ap) -{ - int out_len; - char *out; - - if ((out_len = ft_vasprintf(&out, format, ap)) == -1) - return (-1); - write(fd, out, out_len); - return (out_len); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_vprintf.c b/test_mini/libft/src/io/ft_printf/ft_vprintf.c deleted file mode 100644 index b98670b..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_vprintf.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:32:44 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:44:11 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_vprintf(const char *format, va_list ap) -{ - return (ft_vdprintf(STDOUT_FILENO, format, ap)); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_vsnprintf.c b/test_mini/libft/src/io/ft_printf/ft_vsnprintf.c deleted file mode 100644 index 7db988c..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_vsnprintf.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vsnprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:36:32 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:45:14 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_vsnprintf(char *str, size_t size, const char *format, va_list ap) -{ - int ret; - int full_out_len; - char *full_out; - - full_out_len = ft_vasprintf(&full_out, format, ap); - ft_strncpy(str, full_out, size); - ret = MIN((size_t)full_out_len, size); - free(full_out); - return (ret); -} diff --git a/test_mini/libft/src/io/ft_printf/ft_vsprintf.c b/test_mini/libft/src/io/ft_printf/ft_vsprintf.c deleted file mode 100644 index 91b4815..0000000 --- a/test_mini/libft/src/io/ft_printf/ft_vsprintf.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vsprintf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/21 02:34:17 by cacharle #+# #+# */ -/* Updated: 2019/11/21 03:44:24 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_vsprintf(char *str, const char *format, va_list ap) -{ - return (ft_vsnprintf(str, INT_MAX + 1, format, ap)); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert.c b/test_mini/libft/src/io/ft_printf/internals/convert.c deleted file mode 100644 index 398c754..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert.c +++ /dev/null @@ -1,122 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* printer.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/28 23:19:24 by cacharle #+# #+# */ -/* Updated: 2019/11/14 10:22:04 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include <unistd.h> -#include <stdlib.h> -#include <stdarg.h> -#include "libft.h" -#include "ft_vasprintf.h" - -char *convert(t_pformat *pformat, va_list ap) -{ - char *str; - - if (pformat == NULL) - return (NULL); - if (pformat->flags & FLAG_WIDTH_WILDCARD) - { - if (pformat->flags & FLAG_WIDTH_OVERWRITE) - (void)va_arg(ap, int); - else - pformat->width = va_arg(ap, int); - if (pformat->width < 0) - { - pformat->flags |= FLAG_MINUS; - pformat->width *= -1; - } - } - if (pformat->flags & FLAG_PRECISION_WILDCARD) - pformat->precision = va_arg(ap, int); - if ((str = convert_specifier(ap, pformat)) == NULL) - return (NULL); - return (str); -} - -char *convert_specifier(va_list ap, t_pformat *pformat) -{ - if (pformat->specifier == 'c') - return (convert_char(ap, pformat)); - if (pformat->specifier == 's') - return (convert_str(ap, pformat)); - if (pformat->specifier == 'p') - return (convert_ptr(ap, pformat)); - if (pformat->specifier == 'd' || pformat->specifier == 'i') - return (convert_int(ap, pformat)); - if (pformat->specifier == 'u') - return (convert_uint(ap, pformat)); - if (pformat->specifier == 'x') - return (convert_hex(ap, pformat)); - if (pformat->specifier == 'X') - return (convert_hex(ap, pformat)); - if (pformat->specifier == '%') - return (convert_percent(ap, pformat)); - if (pformat->specifier == 'n') - return (convert_written(ap, pformat)); - else - return (convert_none(ap, pformat)); - return (NULL); -} - -char *handle_width(t_pformat *pformat, char *str) -{ - char *tmp; - int len; - int i; - - if ((len = ft_strlen(str)) >= pformat->width) - return (str); - if ((tmp = (char*)malloc(sizeof(char) * (pformat->width + 1))) == NULL) - return (NULL); - if (pformat->flags & FLAG_MINUS) - { - i = len; - ft_strcpy(tmp, str); - while (i < pformat->width) - tmp[i++] = ' '; - tmp[i] = 0; - } - else - { - i = 0; - while (i <= pformat->width - len) - tmp[i++] = pformat->flags & FLAG_ZERO ? '0' : ' '; - ft_strcpy(tmp + i - 1, str); - } - free(str); - return (tmp); -} - -char *handle_precision(t_pformat *pformat, char *str) -{ - int len; - char *tmp; - - if (pformat == NULL || str == NULL) - return (NULL); - if (ft_strchr("diuxX", pformat->specifier) && pformat->precision >= 0) - pformat->flags &= ~FLAG_ZERO; - len = ft_strlen(str); - if (pformat->precision == 0 && str[0] == '0') - { - free(str); - return (ft_strdup("")); - } - if (!ft_strchr("diuxXp", pformat->specifier) || len >= pformat->precision) - return (str); - if ((tmp = (char*)malloc(sizeof(char) * (pformat->precision + 1))) == NULL) - return (NULL); - ft_strcpy(tmp + pformat->precision - len, str); - while (pformat->precision-- > len) - tmp[pformat->precision - len] = '0'; - free(str); - return (tmp); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_char.c b/test_mini/libft/src/io/ft_printf/internals/convert_char.c deleted file mode 100644 index c5f3a93..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_char.c +++ /dev/null @@ -1,53 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_char.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/30 23:22:29 by cacharle #+# #+# */ -/* Updated: 2019/11/05 23:44:42 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -static char *handle_width_char(t_pformat *pformat, char *str) -{ - char *tmp; - int i; - - pformat->size = 1; - if (1 >= pformat->width) - return (str); - if ((tmp = (char*)malloc(sizeof(char) * (pformat->width + 1))) == NULL) - return (NULL); - if (pformat->flags & FLAG_MINUS) - { - ft_memcpy(tmp, str, (i = 1) + 1); - while (i < pformat->width) - tmp[i++] = ' '; - tmp[i] = 0; - } - else - { - i = 0; - while (i <= pformat->width - 1) - tmp[i++] = pformat->flags & FLAG_ZERO ? '0' : ' '; - ft_memcpy(tmp + i - 1, str, 2); - } - free(str); - pformat->size = pformat->width; - return (tmp); -} - -char *convert_char(va_list ap, t_pformat *pformat) -{ - char *str; - - if ((str = ft_strnew(2)) == NULL) - return (NULL); - str[0] = va_arg(ap, int); - str[1] = '\0'; - return (handle_width_char(pformat, str)); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_hex.c b/test_mini/libft/src/io/ft_printf/internals/convert_hex.c deleted file mode 100644 index 0464dc7..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_hex.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_hex.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/30 23:23:06 by cacharle #+# #+# */ -/* Updated: 2019/11/05 23:58:59 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -char *convert_hex(va_list ap, t_pformat *pformat) -{ - char *str; - long long unsigned int n; - - n = length_modifier_unsigned_int(ap, pformat); - str = pformat->specifier == 'x' ? ITOA_HEX_LOW(n) : ITOA_HEX_UP(n); - str = handle_precision(pformat, str); - if (pformat->flags & FLAG_ZERO) - { - if (pformat->flags & FLAG_ALTERNATE && n != 0) - pformat->width -= 2; - str = handle_width(pformat, str); - } - if (pformat->flags & FLAG_ALTERNATE && n != 0) - str = ft_strjoin_free_snd(pformat->specifier == 'X' ? "0X" : "0x", str); - if (!(pformat->flags & FLAG_ZERO)) - str = handle_width(pformat, str); - return (str); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_int.c b/test_mini/libft/src/io/ft_printf/internals/convert_int.c deleted file mode 100644 index 2345f76..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_int.c +++ /dev/null @@ -1,40 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_int.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/30 23:29:53 by cacharle #+# #+# */ -/* Updated: 2019/11/06 00:00:09 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -char *convert_int(va_list ap, t_pformat *pformat) -{ - int is_neg; - long long int n; - char *str; - - n = length_modifier_int(ap, pformat); - is_neg = n < 0; - str = ITOA_DEC(n); - if (is_neg) - ft_strcpy(str, str + 1); - str = handle_precision(pformat, str); - if (pformat->flags & FLAG_ZERO) - { - if (is_neg || pformat->flags & (FLAG_SIGNED | FLAG_SPACE)) - pformat->width--; - str = handle_width(pformat, str); - } - if (is_neg) - str = ft_strjoin_free_snd("-", str); - else if (pformat->flags & (FLAG_SIGNED | FLAG_SPACE)) - str = ft_strjoin_free_snd(pformat->flags & FLAG_SPACE ? " " : "+", str); - if (!(pformat->flags & FLAG_ZERO)) - str = handle_width(pformat, str); - return (str); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_none.c b/test_mini/libft/src/io/ft_printf/internals/convert_none.c deleted file mode 100644 index 358ef1b..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_none.c +++ /dev/null @@ -1,25 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_none.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/04 19:30:25 by cacharle #+# #+# */ -/* Updated: 2019/11/05 23:44:13 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -char *convert_none(va_list ap, t_pformat *pformat) -{ - char *str; - - (void)ap; - if ((str = ft_strdup("")) == NULL) - return (NULL); - str = handle_precision(pformat, str); - str = handle_width(pformat, str); - return (str); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_percent.c b/test_mini/libft/src/io/ft_printf/internals/convert_percent.c deleted file mode 100644 index 813bb77..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_percent.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_percent.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/30 23:23:27 by cacharle #+# #+# */ -/* Updated: 2019/11/05 23:44:07 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -char *convert_percent(va_list ap, t_pformat *pformat) -{ - char *str; - - (void)ap; - str = ft_strdup("%"); - str = handle_width(pformat, str); - return (str); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_ptr.c b/test_mini/libft/src/io/ft_printf/internals/convert_ptr.c deleted file mode 100644 index 63babb9..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_ptr.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_ptr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/30 23:24:08 by cacharle #+# #+# */ -/* Updated: 2019/11/05 23:43:45 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -char *convert_ptr(va_list ap, t_pformat *pformat) -{ - char *str; - - str = ITOA_HEX_LOW((long long unsigned int)va_arg(ap, void*)); - str = handle_precision(pformat, str); - if (!(pformat->flags & FLAG_ZERO)) - str = ft_strjoin_free_snd("0x", str); - if (pformat->flags & FLAG_ZERO) - pformat->width -= 2; - str = handle_width(pformat, str); - if (pformat->flags & FLAG_ZERO) - str = ft_strjoin_free_snd("0x", str); - return (str); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_str.c b/test_mini/libft/src/io/ft_printf/internals/convert_str.c deleted file mode 100644 index 7d51a5e..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_str.c +++ /dev/null @@ -1,25 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_str.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/30 23:22:25 by cacharle #+# #+# */ -/* Updated: 2019/11/09 01:07:24 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -char *convert_str(va_list ap, t_pformat *pformat) -{ - char *str; - - str = va_arg(ap, char*); - str = str == NULL ? ft_strdup("(null)") : ft_strdup(str); - if (pformat->precision >= 0 && pformat->precision < (int)ft_strlen(str)) - str[pformat->precision] = '\0'; - str = handle_width(pformat, str); - return (str); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_uint.c b/test_mini/libft/src/io/ft_printf/internals/convert_uint.c deleted file mode 100644 index 4207165..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_uint.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_uint.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/30 23:25:40 by cacharle #+# #+# */ -/* Updated: 2019/11/05 23:44:19 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -char *convert_uint(va_list ap, t_pformat *pformat) -{ - char *str; - long long unsigned int n; - - if (pformat->flags & FLAG_SHORT) - n = (unsigned short)va_arg(ap, int); - else if (pformat->flags & FLAG_SHORT_SHORT) - n = (unsigned char)va_arg(ap, int); - else if (pformat->flags & FLAG_LONG) - n = va_arg(ap, long unsigned int); - else if (pformat->flags & FLAG_LONG_LONG) - n = va_arg(ap, long long unsigned int); - else - n = va_arg(ap, unsigned int); - str = ft_itoa_unsigned_base(n, "0123456789"); - str = handle_precision(pformat, str); - str = handle_width(pformat, str); - return (str); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/convert_written.c b/test_mini/libft/src/io/ft_printf/internals/convert_written.c deleted file mode 100644 index 4beeaef..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/convert_written.c +++ /dev/null @@ -1,28 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* convert_written.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/30 23:38:28 by cacharle #+# #+# */ -/* Updated: 2019/11/05 23:59:24 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -char *convert_written(va_list ap, t_pformat *pformat) -{ - if (pformat->flags & FLAG_SHORT) - pformat->written = (long long int*)va_arg(ap, signed char*); - if (pformat->flags & FLAG_SHORT_SHORT) - pformat->written = (long long int*)va_arg(ap, short*); - if (pformat->flags & FLAG_LONG) - pformat->written = (long long int*)va_arg(ap, long int*); - if (pformat->flags & FLAG_LONG_LONG) - pformat->written = va_arg(ap, long long int*); - else - pformat->written = (long long int*)va_arg(ap, int*); - return (NULL); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/extract.c b/test_mini/libft/src/io/ft_printf/internals/extract.c deleted file mode 100644 index c56a777..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/extract.c +++ /dev/null @@ -1,98 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* extract.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/29 00:10:36 by cacharle #+# #+# */ -/* Updated: 2019/11/10 10:33:33 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -const char *extract_flags(t_pformat *pformat, const char *fmt) -{ - if (*fmt == '\0') - return (fmt); - while (ft_strchr(FLAGS_STR, *fmt) != NULL) - { - if (*fmt == '0') - pformat->flags |= FLAG_ZERO; - if (*fmt == '-') - pformat->flags |= FLAG_MINUS; - if (*fmt == '+') - pformat->flags |= FLAG_SIGNED; - if (*fmt == ' ') - pformat->flags |= FLAG_SPACE; - if (*fmt == '#') - pformat->flags |= FLAG_ALTERNATE; - if (*fmt == '\'') - ; - fmt++; - } - if (pformat->flags & FLAG_SIGNED) - pformat->flags &= ~FLAG_SPACE; - return (fmt); -} - -const char *extract_width(t_pformat *pformat, const char *fmt) -{ - if (*fmt == '\0') - return (fmt); - if (*fmt == '*') - { - pformat->flags |= FLAG_WIDTH_WILDCARD; - fmt++; - } - if (!ft_isdigit(*fmt)) - return (fmt); - pformat->width = ft_atoi(fmt); - while (*fmt && ft_isdigit(*fmt)) - fmt++; - if (pformat->flags & FLAG_WIDTH_WILDCARD) - pformat->flags |= FLAG_WIDTH_OVERWRITE; - return (fmt); -} - -const char *extract_precision(t_pformat *pformat, const char *fmt) -{ - if (*fmt == '\0' || *fmt != '.') - return (fmt); - fmt++; - if (*fmt == '*') - { - pformat->flags |= FLAG_PRECISION_WILDCARD; - fmt++; - } - pformat->precision = ft_atoi(fmt); - while (*fmt && ft_isdigit(*fmt)) - fmt++; - return (fmt); -} - -const char *extract_length_modifier(t_pformat *pformat, const char *fmt) -{ - if (fmt[0] && fmt[0] == 'l') - { - if (fmt[1] && fmt[1] == 'l') - { - pformat->flags |= FLAG_LONG_LONG; - return (fmt + 2); - } - pformat->flags |= FLAG_LONG; - return (fmt + 1); - } - if (fmt[0] && fmt[0] == 'h') - { - if (fmt[1] && fmt[1] == 'h') - { - pformat->flags |= FLAG_SHORT_SHORT; - return (fmt + 2); - } - pformat->flags |= FLAG_SHORT; - return (fmt + 1); - } - return (fmt); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/length_modifier.c b/test_mini/libft/src/io/ft_printf/internals/length_modifier.c deleted file mode 100644 index 88226da..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/length_modifier.c +++ /dev/null @@ -1,39 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* length_modifier.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/05 23:56:07 by cacharle #+# #+# */ -/* Updated: 2019/11/09 00:50:06 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -t_big_uint length_modifier_unsigned_int(va_list ap, t_pformat *pformat) -{ - if (pformat->flags & FLAG_SHORT) - return ((unsigned short)va_arg(ap, int)); - else if (pformat->flags & FLAG_SHORT_SHORT) - return ((unsigned char)va_arg(ap, int)); - else if (pformat->flags & FLAG_LONG) - return (va_arg(ap, long unsigned int)); - else if (pformat->flags & FLAG_LONG_LONG) - return (va_arg(ap, long long unsigned int)); - return (va_arg(ap, unsigned int)); -} - -t_big_int length_modifier_int(va_list ap, t_pformat *pformat) -{ - if (pformat->flags & FLAG_SHORT) - return ((short)va_arg(ap, int)); - else if (pformat->flags & FLAG_SHORT_SHORT) - return ((signed char)va_arg(ap, int)); - else if (pformat->flags & FLAG_LONG) - return (va_arg(ap, long int)); - else if (pformat->flags & FLAG_LONG_LONG) - return (va_arg(ap, long long int)); - return (va_arg(ap, int)); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/list.c b/test_mini/libft/src/io/ft_printf/internals/list.c deleted file mode 100644 index 37f8013..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/list.c +++ /dev/null @@ -1,67 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* list.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/29 00:14:50 by cacharle #+# #+# */ -/* Updated: 2019/11/05 23:45:42 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -t_flist *list_new(t_pformat *content) -{ - t_flist *lst; - - if ((lst = (t_flist*)malloc(sizeof(t_flist))) == NULL) - return (NULL); - lst->data = content; - lst->next = NULL; - return (lst); -} - -void *list_destroy(t_flist **lst) -{ - if (lst == NULL) - return (NULL); - while (*lst != NULL) - list_pop_front(lst); - return (NULL); -} - -void list_push_front(t_flist **lst, t_flist *new) -{ - if (lst == NULL || new == NULL) - return ; - new->next = *lst; - *lst = new; -} - -void list_pop_front(t_flist **lst) -{ - t_flist *tmp; - - if (lst == NULL || *lst == NULL) - return ; - tmp = (*lst)->next; - free((*lst)->data); - free(*lst); - *lst = tmp; -} - -t_flist *list_reverse(t_flist *lst) -{ - t_flist *tmp; - - if (lst == NULL) - return (NULL); - if (lst->next == NULL) - return (lst); - tmp = list_reverse(lst->next); - lst->next->next = lst; - lst->next = NULL; - return (tmp); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/parse.c b/test_mini/libft/src/io/ft_printf/internals/parse.c deleted file mode 100644 index 4650481..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/parse.c +++ /dev/null @@ -1,61 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* parse.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/29 00:11:33 by cacharle #+# #+# */ -/* Updated: 2019/11/13 08:13:02 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -int parse(const char *format, t_flist **flist) -{ - t_flist *tmp; - t_pformat *parsed; - - *flist = NULL; - while (*format) - { - format++; - if (format[-1] != '%') - continue; - if ((parsed = parse_reduced(format)) == NULL) - return ((int)list_destroy(flist)); - if ((tmp = list_new(parsed)) == NULL) - return ((int)list_destroy(flist)); - list_push_front(flist, tmp); - format += (*flist)->data->fmt_len; - } - *flist = list_reverse(*flist); - return (1); -} - -t_pformat *parse_reduced(const char *fmt) -{ - t_pformat *pformat; - const char *start; - - if ((pformat = (t_pformat*)malloc(sizeof(t_pformat))) == NULL) - return (NULL); - pformat->precision = -1; - pformat->width = -1; - pformat->flags = 0; - start = fmt; - fmt = extract_flags(pformat, fmt); - fmt = extract_width(pformat, fmt); - fmt = extract_precision(pformat, fmt); - fmt = extract_length_modifier(pformat, fmt); - pformat->fmt_len = fmt - start + 1; - if (*fmt == '\0' || ft_strchr(SPECIFIERS_STR, *fmt) == NULL) - { - pformat->fmt_len--; - pformat->specifier = '_'; - } - else - pformat->specifier = *ft_strchr(SPECIFIERS_STR, *fmt); - return (pformat); -} diff --git a/test_mini/libft/src/io/ft_printf/internals/utils.c b/test_mini/libft/src/io/ft_printf/internals/utils.c deleted file mode 100644 index ad44980..0000000 --- a/test_mini/libft/src/io/ft_printf/internals/utils.c +++ /dev/null @@ -1,115 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* utils.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/29 00:12:40 by cacharle #+# #+# */ -/* Updated: 2019/11/13 08:49:58 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_vasprintf.h" - -static int nbrlen_radix(long long int nbr, int radix) -{ - int counter; - long long unsigned int u_nbr; - - if (nbr == 0) - return (1); - counter = 0; - u_nbr = nbr; - if (nbr < 0) - { - counter++; - u_nbr = -nbr; - } - while (u_nbr > 0) - { - u_nbr /= radix; - counter++; - } - return (counter); -} - -char *ft_itoa_base(long long int n, char *base) -{ - char *str; - int len; - int radix; - long long unsigned int u_nbr; - - radix = ft_strlen(base); - len = nbrlen_radix(n, radix); - if ((str = (char*)malloc(sizeof(char) * (len + 1))) == NULL) - return (NULL); - str[len] = '\0'; - u_nbr = n < 0 ? -n : n; - if (n < 0) - str[0] = '-'; - while (--len >= (n < 0 ? 1 : 0)) - { - str[len] = base[u_nbr % radix]; - u_nbr /= radix; - } - return (str); -} - -static int nbrlen_unsigned_radix(long long unsigned int nbr, int radix) -{ - int counter; - - if (nbr == 0) - return (1); - counter = 0; - while (nbr > 0) - { - nbr /= radix; - counter++; - } - return (counter); -} - -char *ft_itoa_unsigned_base(long long unsigned int n, char *base) -{ - char *str; - int len; - int radix; - - radix = ft_strlen(base); - len = nbrlen_unsigned_radix(n, radix); - if ((str = (char*)malloc(sizeof(char) * (len + 1))) == NULL) - return (NULL); - str[len] = '\0'; - while (--len >= 0) - { - str[len] = base[n % radix]; - n /= radix; - } - return (str); -} - -void *ft_memjoin_free(void *dst, int dst_size, void *src, int src_size) -{ - void *clone; - - if (dst == NULL) - { - if ((dst = malloc(src_size)) == NULL) - return (NULL); - ft_memcpy(dst, src, src_size); - return (dst); - } - if ((clone = malloc(dst_size)) == NULL) - return (NULL); - ft_memcpy(clone, dst, dst_size); - free(dst); - if ((dst = malloc(dst_size + src_size)) == NULL) - return (NULL); - ft_memcpy(dst, clone, dst_size); - free(clone); - ft_memcpy(dst + dst_size, src, src_size); - return (dst); -} diff --git a/test_mini/libft/src/io/ft_putchar.c b/test_mini/libft/src/io/ft_putchar.c deleted file mode 100644 index 2838f0a..0000000 --- a/test_mini/libft/src/io/ft_putchar.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_putchar.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:53:31 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:49:14 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_putchar(char c) -{ - write(STDOUT_FILENO, &c, 1); -} diff --git a/test_mini/libft/src/io/ft_putchar_fd.c b/test_mini/libft/src/io/ft_putchar_fd.c deleted file mode 100644 index 97d6f7a..0000000 --- a/test_mini/libft/src/io/ft_putchar_fd.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_putchar_fd.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:42:34 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:49:28 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_putchar_fd(char c, int fd) -{ - if (fd < 0 || fd > OPEN_MAX) - return ; - write(fd, &c, 1); -} diff --git a/test_mini/libft/src/io/ft_putendl.c b/test_mini/libft/src/io/ft_putendl.c deleted file mode 100644 index 880977e..0000000 --- a/test_mini/libft/src/io/ft_putendl.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_putendl.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:42:54 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:00:32 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_putendl(char *s) -{ - ft_putendl_fd(s, STDOUT_FILENO); -} diff --git a/test_mini/libft/src/io/ft_putendl_fd.c b/test_mini/libft/src/io/ft_putendl_fd.c deleted file mode 100644 index a8077fc..0000000 --- a/test_mini/libft/src/io/ft_putendl_fd.c +++ /dev/null @@ -1,21 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_putendl_fd.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:44:06 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:00:07 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_putendl_fd(char *s, int fd) -{ - if (s == NULL || fd < 0 || fd > OPEN_MAX) - return ; - ft_putstr_fd(s, fd); - ft_putchar_fd('\n', fd); -} diff --git a/test_mini/libft/src/io/ft_putnbr.c b/test_mini/libft/src/io/ft_putnbr.c deleted file mode 100644 index 247df40..0000000 --- a/test_mini/libft/src/io/ft_putnbr.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_putnbr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:52:33 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:59:34 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_putnbr(int n) -{ - ft_putnbr_fd(n, STDOUT_FILENO); -} diff --git a/test_mini/libft/src/io/ft_putnbr_fd.c b/test_mini/libft/src/io/ft_putnbr_fd.c deleted file mode 100644 index 169d1b5..0000000 --- a/test_mini/libft/src/io/ft_putnbr_fd.c +++ /dev/null @@ -1,30 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_putnbr_fd.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:40:35 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:46:11 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_putnbr_fd(int n, int fd) -{ - unsigned int p_n; - - if (fd < 0 || fd > OPEN_MAX) - return ; - p_n = n; - if (n < 0) - { - ft_putchar_fd('-', fd); - p_n = -n; - } - if (p_n > 9) - ft_putnbr_fd(p_n / 10, fd); - ft_putchar_fd(p_n % 10 | 0x30, fd); -} diff --git a/test_mini/libft/src/io/ft_putstr.c b/test_mini/libft/src/io/ft_putstr.c deleted file mode 100644 index 14b01a3..0000000 --- a/test_mini/libft/src/io/ft_putstr.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_putstr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:52:12 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:48:48 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_putstr(char const *s) -{ - ft_putstr_fd((char*)s, STDOUT_FILENO); -} diff --git a/test_mini/libft/src/io/ft_putstr_fd.c b/test_mini/libft/src/io/ft_putstr_fd.c deleted file mode 100644 index d0279ab..0000000 --- a/test_mini/libft/src/io/ft_putstr_fd.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_putstr_fd.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:40:15 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:47:59 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_putstr_fd(char *s, int fd) -{ - if (s == NULL || fd < 0 || fd > OPEN_MAX) - return ; - write(fd, s, ft_strlen(s)); -} diff --git a/test_mini/libft/src/lst/ft_lstbsearch.c b/test_mini/libft/src/lst/ft_lstbsearch.c deleted file mode 100644 index 0c48eb0..0000000 --- a/test_mini/libft/src/lst/ft_lstbsearch.c +++ /dev/null @@ -1,65 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstbsearch.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 09:17:51 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:12:12 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_lst.h" - -static t_ftlst *st_lstmiddle(t_ftlst *lst, t_ftlst *last) -{ - t_ftlst *slow; - t_ftlst *fast; - - if (lst == NULL) - return (NULL); - slow = lst; - fast = lst; - while (fast != last) - { - fast = fast->next; - if (fast == last) - break ; - slow = slow->next; - fast = fast->next; - } - return (slow); -} - -static t_ftlst *st_lstbsearch_rec(t_ftlst *lst, t_ftlst *last, - t_ftcompar_func cmp, const void *ref) -{ - int res; - t_ftlst *mid; - - if (lst == NULL) - return (NULL); - mid = st_lstmiddle(lst, last); - if (mid == NULL) - return (NULL); - if (mid->next == NULL) - { - if (cmp(ref, mid->data) == 0) - return (mid); - return (NULL); - } - res = cmp(ref, mid->next->data); - if (res < 0) - return (st_lstbsearch_rec(lst, mid, cmp, ref)); - else if (res > 0) - return (st_lstbsearch_rec(mid->next->next, NULL, cmp, ref)); - return (mid->next); -} - -t_ftlst *ft_lstbsearch(t_ftlst *lst, t_ftcompar_func cmp, - const void *ref) -{ - return (st_lstbsearch_rec(lst, NULL, cmp, ref)); -} diff --git a/test_mini/libft/src/lst/ft_lstdelone.c b/test_mini/libft/src/lst/ft_lstdelone.c deleted file mode 100644 index 3dfbbbb..0000000 --- a/test_mini/libft/src/lst/ft_lstdelone.c +++ /dev/null @@ -1,27 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstdelone.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:03:02 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:02:31 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Delete list node -** \param del Delete function for node's data -*/ - -void ft_lstdelone(t_ftlst *lst, void (*del)(void *)) -{ - if (lst == NULL) - return ; - if (del != NULL) - (*del)(lst->data); - free(lst); -} diff --git a/test_mini/libft/src/lst/ft_lstdestroy.c b/test_mini/libft/src/lst/ft_lstdestroy.c deleted file mode 100644 index 35da2a5..0000000 --- a/test_mini/libft/src/lst/ft_lstdestroy.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstdestroy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:02:39 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:02:37 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Destroy a list and set his pointer to NULL -** \param del Delete Function for data of each node -*/ - -void ft_lstdestroy(t_ftlst **lst, void (*del)(void *)) -{ - if (lst == NULL) - return ; - if (*lst == NULL) - return ; - ft_lstdestroy(&((*lst)->next), del); - ft_lstdelone(*lst, del); - *lst = NULL; -} diff --git a/test_mini/libft/src/lst/ft_lstiter.c b/test_mini/libft/src/lst/ft_lstiter.c deleted file mode 100644 index e46b507..0000000 --- a/test_mini/libft/src/lst/ft_lstiter.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstiter.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:03:22 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:01:39 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Iterate of list -** \param f Funtion applied to data of each node -*/ - -void ft_lstiter(t_ftlst *lst, void (*f)(void *)) -{ - if (f == NULL) - return ; - while (lst != NULL) - { - (*f)(lst->data); - lst = lst->next; - } -} diff --git a/test_mini/libft/src/lst/ft_lstlast.c b/test_mini/libft/src/lst/ft_lstlast.c deleted file mode 100644 index 97b853d..0000000 --- a/test_mini/libft/src/lst/ft_lstlast.c +++ /dev/null @@ -1,27 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstlast.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:03:40 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:02:26 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Last node -** \return List's last node -*/ - -t_ftlst *ft_lstlast(t_ftlst *lst) -{ - if (lst == NULL) - return (NULL); - while (lst->next != NULL) - lst = lst->next; - return (lst); -} diff --git a/test_mini/libft/src/lst/ft_lstlfind.c b/test_mini/libft/src/lst/ft_lstlfind.c deleted file mode 100644 index fd7e688..0000000 --- a/test_mini/libft/src/lst/ft_lstlfind.c +++ /dev/null @@ -1,22 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstlfind.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/27 18:00:37 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:24:05 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -t_ftlst *ft_lstlfind(t_ftlst *lst, t_ftcompar_func cmp, const void *ref) -{ - if (lst == NULL) - return (NULL); - if (cmp(ref, lst->data) == 0) - return (lst); - return (ft_lstlfind(lst->next, cmp, ref)); -} diff --git a/test_mini/libft/src/lst/ft_lstlsearch.c b/test_mini/libft/src/lst/ft_lstlsearch.c deleted file mode 100644 index 11c528c..0000000 --- a/test_mini/libft/src/lst/ft_lstlsearch.c +++ /dev/null @@ -1,27 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstlsearch.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/27 16:18:33 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:24:31 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -t_ftlst *ft_lstlsearch(t_ftlst *lst, t_ftcompar_func cmp, const void *ref) -{ - if (lst == NULL) - return (ft_lstnew(ref)); - if (cmp(ref, lst->data) == 0) - return (lst); - if (lst->next == NULL) - { - lst->next = ft_lstnew(ref); - return (lst->next); - } - return (ft_lstlsearch(lst->next, cmp, ref)); -} diff --git a/test_mini/libft/src/lst/ft_lstmap.c b/test_mini/libft/src/lst/ft_lstmap.c deleted file mode 100644 index 3182bb0..0000000 --- a/test_mini/libft/src/lst/ft_lstmap.c +++ /dev/null @@ -1,56 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstmap.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:03:57 by cacharle #+# #+# */ -/* Updated: 2020/02/15 23:11:42 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Clone a list and map a function to each node data -** \param lst Origin list -** \param f Function applied to each node's data -** \param del Delete function for cleanning up in case of failed allocation -** \return Mapped clone list -*/ - -t_ftlst *ft_lstmap(t_ftlst *lst, void *(*f)(void *), void (*del)(void *)) -{ - t_ftlst *mapped; - t_ftlst *tmp; - - if (lst == NULL || f == NULL) - return (NULL); - mapped = NULL; - while (lst != NULL) - { - if ((tmp = ft_lstnew((*f)(lst->data))) == NULL) - { - ft_lstdestroy(&mapped, del); - return (NULL); - } - ft_lstpush_back(&mapped, tmp); - lst = lst->next; - } - return (mapped); -} - -/* -** Rest in peace, my beautiful recursion. -** -** t_ftlst *tmp; -** -** if (lst == NULL) -** return (NULL); -** if ((tmp = ft_lstnew(lst->data)) == NULL) -** return (NULL); -** tmp->data = (*f)(tmp->data); -** tmp->next = ft_lstmap(lst->next, f); -** return (tmp); -*/ diff --git a/test_mini/libft/src/lst/ft_lstnew.c b/test_mini/libft/src/lst/ft_lstnew.c deleted file mode 100644 index 1616b71..0000000 --- a/test_mini/libft/src/lst/ft_lstnew.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstnew.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:01:16 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:01:35 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Create a list node -** \param data Pointer to data of node -*/ - -t_ftlst *ft_lstnew(void const *data) -{ - t_ftlst *elem; - - if ((elem = (t_ftlst*)malloc(sizeof(t_ftlst))) == NULL) - return (NULL); - elem->data = (void*)data; - elem->next = NULL; - return (elem); -} diff --git a/test_mini/libft/src/lst/ft_lstpop_front.c b/test_mini/libft/src/lst/ft_lstpop_front.c deleted file mode 100644 index a61350a..0000000 --- a/test_mini/libft/src/lst/ft_lstpop_front.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstpop_front_bonus.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:29:58 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:12:47 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Delete head node and replace it with next node -** \param del Delete function for node data -*/ - -void ft_lstpop_front(t_ftlst **lst, void (*del)(void *)) -{ - t_ftlst *tmp; - - if (lst == NULL || *lst == NULL) - return ; - tmp = (*lst)->next; - ft_lstdelone(*lst, del); - *lst = tmp; -} diff --git a/test_mini/libft/src/lst/ft_lstpush_back.c b/test_mini/libft/src/lst/ft_lstpush_back.c deleted file mode 100644 index 1dca078..0000000 --- a/test_mini/libft/src/lst/ft_lstpush_back.c +++ /dev/null @@ -1,30 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstpush_back.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:02:03 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:01:26 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Push new node to the list end -** \param new Pushed node -*/ - -void ft_lstpush_back(t_ftlst **alst, t_ftlst *new) -{ - if (alst == NULL) - return ; - if (*alst == NULL) - { - *alst = new; - return ; - } - ft_lstlast(*alst)->next = new; -} diff --git a/test_mini/libft/src/lst/ft_lstpush_front.c b/test_mini/libft/src/lst/ft_lstpush_front.c deleted file mode 100644 index 85df649..0000000 --- a/test_mini/libft/src/lst/ft_lstpush_front.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstpush_front.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:02:25 by cacharle #+# #+# */ -/* Updated: 2019/10/18 12:16:06 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Push node to list front -** \param new Pushed node -*/ - -void ft_lstpush_front(t_ftlst **alst, t_ftlst *new) -{ - if (alst == NULL || new == NULL) - return ; - new->next = *alst; - *alst = new; -} diff --git a/test_mini/libft/src/lst/ft_lstremove_if.c b/test_mini/libft/src/lst/ft_lstremove_if.c deleted file mode 100644 index 4070355..0000000 --- a/test_mini/libft/src/lst/ft_lstremove_if.c +++ /dev/null @@ -1,38 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstremove_if.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 09:36:49 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:20:51 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Remove node on some condition -** \param cmp Comparison function, return 0 if equal -** \param ref Reference data passed has the first arg of `cmp` -** \param del Delete function to free removed node data -*/ - -void ft_lstremove_if(t_ftlst **lst, t_ftcompar_func cmp, - const void *ref, t_ftdel_func del) -{ - t_ftlst *saved_next; - - if (lst == NULL || *lst == NULL) - return ; - if (cmp(ref, (*lst)->data) == 0) - { - saved_next = (*lst)->next; - ft_lstdelone(*lst, del); - *lst = saved_next; - ft_lstremove_if(lst, cmp, ref, del); - return ; - } - ft_lstremove_if(&(*lst)->next, cmp, ref, del); -} diff --git a/test_mini/libft/src/lst/ft_lstreverse.c b/test_mini/libft/src/lst/ft_lstreverse.c deleted file mode 100644 index 7c2778d..0000000 --- a/test_mini/libft/src/lst/ft_lstreverse.c +++ /dev/null @@ -1,22 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstreverse.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/15 12:49:14 by cacharle #+# #+# */ -/* Updated: 2020/02/15 22:53:23 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Reverse a list -*/ - -void ft_lstreverse(t_ftlst **lst) -{ - *lst = ft_lstreverse_ret(*lst); -} diff --git a/test_mini/libft/src/lst/ft_lstreverse_ret.c b/test_mini/libft/src/lst/ft_lstreverse_ret.c deleted file mode 100644 index 36c0c5c..0000000 --- a/test_mini/libft/src/lst/ft_lstreverse_ret.c +++ /dev/null @@ -1,32 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstreverse_ret.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/15 12:51:15 by cacharle #+# #+# */ -/* Updated: 2020/02/10 02:20:21 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Reverse list -** \return Pointer to reversed list -*/ - -t_ftlst *ft_lstreverse_ret(t_ftlst *lst) -{ - t_ftlst *tmp; - - if (lst == NULL) - return (NULL); - if (lst->next == NULL) - return (lst); - tmp = ft_lstreverse_ret(lst->next); - lst->next->next = lst; - lst->next = NULL; - return (tmp); -} diff --git a/test_mini/libft/src/lst/ft_lstsize.c b/test_mini/libft/src/lst/ft_lstsize.c deleted file mode 100644 index 3c6956b..0000000 --- a/test_mini/libft/src/lst/ft_lstsize.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstsize.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/09 09:04:28 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:01:44 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief List size -** \return Number of node in list -*/ - -int ft_lstsize(t_ftlst *lst) -{ - int counter; - - counter = 0; - while (lst != NULL) - { - counter++; - lst = lst->next; - } - return (counter); -} diff --git a/test_mini/libft/src/lst/ft_lstsort.c b/test_mini/libft/src/lst/ft_lstsort.c deleted file mode 100644 index 9945a0f..0000000 --- a/test_mini/libft/src/lst/ft_lstsort.c +++ /dev/null @@ -1,46 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstsort.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 01:53:55 by cacharle #+# #+# */ -/* Updated: 2020/02/16 02:18:05 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Sort list -** \param cmp Comparison function, <0 if less, 0 if equal, >0 if greater -** \note Use merge sort algorithm -*/ - -void ft_lstsort(t_ftlst **begin_list, t_ftcompar_func cmp) -{ - t_ftlst *fast; - t_ftlst *slow; - t_ftlst *middle; - - if (begin_list == NULL || *begin_list == NULL - || (*begin_list)->next == NULL) - return ; - fast = (*begin_list)->next; - slow = *begin_list; - while (fast != NULL) - { - fast = fast->next; - if (fast != NULL) - { - fast = fast->next; - slow = slow->next; - } - } - middle = slow->next; - slow->next = NULL; - ft_lstsort(begin_list, cmp); - ft_lstsort(&middle, cmp); - *begin_list = ft_lstsorted_merge(*begin_list, middle, cmp); -} diff --git a/test_mini/libft/src/lst/ft_lstsorted_merge.c b/test_mini/libft/src/lst/ft_lstsorted_merge.c deleted file mode 100644 index 995785f..0000000 --- a/test_mini/libft/src/lst/ft_lstsorted_merge.c +++ /dev/null @@ -1,43 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstsorted_merge.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 01:58:52 by cacharle #+# #+# */ -/* Updated: 2020/02/16 02:18:11 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_lst.h" - -/* -** \brief Merge sorted lists, the new list is also sorted -** \param l1 First list -** \param l2 Second list -** \param cmp Comparison function, <0 if less, 0 if equal, >0 if greater -** \return Pointer to first node of merged list -*/ - -t_ftlst *ft_lstsorted_merge(t_ftlst *l1, t_ftlst *l2, t_ftcompar_func cmp) -{ - t_ftlst *merged; - - merged = NULL; - if (l1 == NULL) - return (l2); - if (l2 == NULL) - return (l1); - if (cmp(l1->data, l2->data) < 0) - { - merged = l1; - merged->next = ft_lstsorted_merge(l1->next, l2, cmp); - } - else - { - merged = l2; - merged->next = ft_lstsorted_merge(l1, l2->next, cmp); - } - return (merged); -} diff --git a/test_mini/libft/src/mem/ft_bzero.c b/test_mini/libft/src/mem/ft_bzero.c deleted file mode 100644 index d179af0..0000000 --- a/test_mini/libft/src/mem/ft_bzero.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_bzero.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:50:10 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:29:26 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_bzero(void *s, size_t n) -{ - ft_memset(s, 0, n); -} diff --git a/test_mini/libft/src/mem/ft_calloc.c b/test_mini/libft/src/mem/ft_calloc.c deleted file mode 100644 index 24501bf..0000000 --- a/test_mini/libft/src/mem/ft_calloc.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_calloc.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 12:45:37 by cacharle #+# #+# */ -/* Updated: 2019/11/21 01:05:53 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void *ft_calloc(size_t count, size_t size) -{ - void *mem; - - if ((mem = malloc(count * size)) == NULL) - return (NULL); - ft_bzero(mem, count * size); - return (mem); -} diff --git a/test_mini/libft/src/mem/ft_memalloc.c b/test_mini/libft/src/mem/ft_memalloc.c deleted file mode 100644 index 5aab2ec..0000000 --- a/test_mini/libft/src/mem/ft_memalloc.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memalloc.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:07:14 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:28:56 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void *ft_memalloc(size_t size) -{ - return (ft_calloc(size, 1)); -} diff --git a/test_mini/libft/src/mem/ft_memccpy.c b/test_mini/libft/src/mem/ft_memccpy.c deleted file mode 100644 index 8ce656a..0000000 --- a/test_mini/libft/src/mem/ft_memccpy.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memccpy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:01:53 by cacharle #+# #+# */ -/* Updated: 2020/01/17 10:54:03 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void *ft_memccpy(void *dest, const void *src, int c, size_t n) -{ - size_t i; - t_ftbyte *cast_dest; - t_ftbyte *cast_src; - - cast_dest = (t_ftbyte*)dest; - cast_src = (t_ftbyte*)src; - i = -1; - while (++i < n) - { - cast_dest[i] = cast_src[i]; - if (cast_dest[i] == (unsigned char)c) - return (cast_dest + i + 1); - } - return (NULL); -} diff --git a/test_mini/libft/src/mem/ft_memchr.c b/test_mini/libft/src/mem/ft_memchr.c deleted file mode 100644 index 4fd8689..0000000 --- a/test_mini/libft/src/mem/ft_memchr.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memchr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:55:31 by cacharle #+# #+# */ -/* Updated: 2020/02/13 04:28:00 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void *ft_memchr(const void *s, int c, size_t n) -{ - size_t i; - t_ftbyte *cast_s; - - cast_s = (t_ftbyte*)s; - i = -1; - while (++i < n) - if (cast_s[i] == (unsigned char)c) - return (cast_s + i); - return (NULL); -} diff --git a/test_mini/libft/src/mem/ft_memcmp.c b/test_mini/libft/src/mem/ft_memcmp.c deleted file mode 100644 index 233d796..0000000 --- a/test_mini/libft/src/mem/ft_memcmp.c +++ /dev/null @@ -1,30 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memcmp.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:56:44 by cacharle #+# #+# */ -/* Updated: 2020/01/17 10:54:15 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_memcmp(const void *s1, const void *s2, size_t n) -{ - size_t i; - t_ftbyte *cast_s1; - t_ftbyte *cast_s2; - - cast_s1 = (t_ftbyte*)s1; - cast_s2 = (t_ftbyte*)s2; - if (n == 0) - return (0); - i = -1; - while (++i < n) - if (cast_s1[i] != cast_s2[i]) - return (cast_s1[i] - cast_s2[i]); - return (0); -} diff --git a/test_mini/libft/src/mem/ft_memcpy.c b/test_mini/libft/src/mem/ft_memcpy.c deleted file mode 100644 index d0ef008..0000000 --- a/test_mini/libft/src/mem/ft_memcpy.c +++ /dev/null @@ -1,33 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memcpy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:00:07 by cacharle #+# #+# */ -/* Updated: 2020/01/17 10:39:04 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void *ft_memcpy(void *dest, const void *src, size_t n) -{ - long int *long_dest; - const long int *long_src; - - if (dest == src) - return (dest); - while (n % 8 > 0) - { - n--; - ((t_ftbyte*)dest)[n] = ((t_ftbyte*)src)[n]; - } - long_dest = dest; - long_src = src; - n /= 8; - while (n-- > 0) - long_dest[n] = long_src[n]; - return (dest); -} diff --git a/test_mini/libft/src/mem/ft_memdel.c b/test_mini/libft/src/mem/ft_memdel.c deleted file mode 100644 index 2b21f33..0000000 --- a/test_mini/libft/src/mem/ft_memdel.c +++ /dev/null @@ -1,21 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memdel.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:00:56 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:22:41 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_memdel(void **ap) -{ - if (ap == NULL) - return ; - free(*ap); - *ap = NULL; -} diff --git a/test_mini/libft/src/mem/ft_memmem.c b/test_mini/libft/src/mem/ft_memmem.c deleted file mode 100644 index fa1446c..0000000 --- a/test_mini/libft/src/mem/ft_memmem.c +++ /dev/null @@ -1,58 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memmem.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/13 01:54:55 by cacharle #+# #+# */ -/* Updated: 2020/02/13 21:04:46 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_mem.h" - -#define BAD_TABLE_SIZE 256 - -static void st_bad_table_init(size_t bad_table[BAD_TABLE_SIZE], - const char *little, size_t little_len) -{ - size_t i; - - i = 0; - while (i < BAD_TABLE_SIZE) - bad_table[i++] = little_len; - i = 0; - while (i < little_len - 1) - { - bad_table[(int)little[i]] = little_len - i - 1; - i++; - } -} - -static int st_memcmp_end(const void *s1, const void *s2, size_t n) -{ - while (n-- > 0) - if (*(t_ftbyte*)(s1 + n) != *(t_ftbyte*)(s2 + n)) - return (*(t_ftbyte*)(s1 + n) - *(t_ftbyte*)(s2 + n)); - return (0); -} - -void *ft_memmem(const void *big, size_t big_len, - const void *little, size_t little_len) -{ - size_t i; - size_t bad_table[BAD_TABLE_SIZE]; - - if (big_len < little_len || little_len == 0 || big_len == 0) - return (NULL); - st_bad_table_init(bad_table, little, little_len); - i = 0; - while (i <= big_len - little_len) - { - if (st_memcmp_end(big + i, little, little_len) == 0) - return ((void*)big + i); - i += bad_table[*(t_ftbyte*)(big + i + little_len - 1)]; - } - return (NULL); -} diff --git a/test_mini/libft/src/mem/ft_memmove.c b/test_mini/libft/src/mem/ft_memmove.c deleted file mode 100644 index 2f794fd..0000000 --- a/test_mini/libft/src/mem/ft_memmove.c +++ /dev/null @@ -1,35 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memmove.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:03:21 by cacharle #+# #+# */ -/* Updated: 2020/01/17 10:39:26 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void *ft_memmove(void *dst, const void *src, size_t len) -{ - long int *long_dst; - const long int *long_src; - void *dst_copy; - - if (dst >= src) - return (ft_memcpy(dst, src, len)); - dst_copy = dst; - while (len % 8 > 0) - { - len--; - *(t_ftbyte*)dst++ = *(t_ftbyte*)src++; - } - long_dst = dst; - long_src = src; - len /= 8; - while (len-- > 0) - *long_dst++ = *long_src++; - return (dst_copy); -} diff --git a/test_mini/libft/src/mem/ft_memset.c b/test_mini/libft/src/mem/ft_memset.c deleted file mode 100644 index 89f53ff..0000000 --- a/test_mini/libft/src/mem/ft_memset.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memset.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:01:23 by cacharle #+# #+# */ -/* Updated: 2020/01/17 10:39:10 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void *ft_memset(void *s, int c, size_t n) -{ - long int buf; - long int *long_s; - - c = (unsigned char)c; - while (n % 8 > 0) - *((t_ftbyte*)s + --n) = c; - buf = (long int)c | (long int)c << 8 | (long int)c << 16 - | (long int)c << 24 | (long int)c << 32 | (long int)c << 40 - | (long int)c << 48 | (long int)c << 56; - n /= 8; - long_s = s; - while (n > 0) - long_s[--n] = buf; - return (s); -} diff --git a/test_mini/libft/src/mem/ft_memset_pattern4.c b/test_mini/libft/src/mem/ft_memset_pattern4.c deleted file mode 100644 index 112ce6d..0000000 --- a/test_mini/libft/src/mem/ft_memset_pattern4.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memset_pattern4.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/13 03:06:41 by cacharle #+# #+# */ -/* Updated: 2020/02/13 19:58:10 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_mem.h" - -void ft_memset_pattern4(void *b, const void *pattern4, size_t len) -{ - int i; - - i = len / 4; - while (i-- > 0) - ((int*)b)[i] = *(int*)pattern4; - i = len % 4; - len -= len % 4; - while (i-- > 0) - ((t_ftbyte*)b)[len + i] = ((t_ftbyte*)pattern4)[i]; -} diff --git a/test_mini/libft/src/mem/ft_memswap.c b/test_mini/libft/src/mem/ft_memswap.c deleted file mode 100644 index 8661fda..0000000 --- a/test_mini/libft/src/mem/ft_memswap.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_memswap.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/19 07:56:43 by cacharle #+# #+# */ -/* Updated: 2020/02/10 02:55:52 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_memswap(void *a, void *b, size_t size) -{ - t_ftbyte tmp; - t_ftbyte *cast_a; - t_ftbyte *cast_b; - - cast_a = (t_ftbyte*)a; - cast_b = (t_ftbyte*)b; - while (size-- > 0) - { - tmp = cast_a[size]; - cast_a[size] = cast_b[size]; - cast_b[size] = tmp; - } -} diff --git a/test_mini/libft/src/str/ft_atoi.c b/test_mini/libft/src/str/ft_atoi.c deleted file mode 100644 index d6fa5bb..0000000 --- a/test_mini/libft/src/str/ft_atoi.c +++ /dev/null @@ -1,22 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_atoi.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 09:46:16 by cacharle #+# #+# */ -/* Updated: 2020/01/15 10:56:06 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -/* -** Convert a string to an int -*/ - -int ft_atoi(const char *str) -{ - return ((int)ft_strtol(str, (char**)NULL, 10)); -} diff --git a/test_mini/libft/src/str/ft_atoi_strict.c b/test_mini/libft/src/str/ft_atoi_strict.c deleted file mode 100644 index 8be4c4b..0000000 --- a/test_mini/libft/src/str/ft_atoi_strict.c +++ /dev/null @@ -1,38 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strict_atoi.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/15 10:06:29 by cacharle #+# #+# */ -/* Updated: 2020/02/14 02:46:43 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_atoi_strict(const char *s) -{ - char *end; - long ret; - - if (*s != '-' && !ft_isdigit(*s)) - { - errno = EINVAL; - return (0); - } - errno = 0; - ret = ft_strtol(s, &end, 10); - if (errno == ERANGE || ret > INT_MAX || ret < INT_MIN) - { - errno = ERANGE; - return (0); - } - if (*end != '\0') - { - errno = EINVAL; - return (0); - } - return (ret); -} diff --git a/test_mini/libft/src/str/ft_itoa.c b/test_mini/libft/src/str/ft_itoa.c deleted file mode 100644 index 39b6e12..0000000 --- a/test_mini/libft/src/str/ft_itoa.c +++ /dev/null @@ -1,40 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_itoa.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:19:56 by cacharle #+# #+# */ -/* Updated: 2020/02/14 03:39:11 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_itoa(int n) -{ - char *str; - int len; - unsigned int u_nbr; - - len = n < 0 || n == 0 ? 1 : 0; - u_nbr = n < 0 ? -n : n; - while (u_nbr > 0) - { - u_nbr /= 10; - len++; - } - if ((str = (char*)malloc(sizeof(char) * (len + 1))) == NULL) - return (NULL); - str[len] = '\0'; - u_nbr = n < 0 ? -n : n; - if (n < 0) - str[0] = '-'; - while (--len >= (n < 0 ? 1 : 0)) - { - str[len] = (u_nbr % 10) | 0x30; - u_nbr /= 10; - } - return (str); -} diff --git a/test_mini/libft/src/str/ft_split.c b/test_mini/libft/src/str/ft_split.c deleted file mode 100644 index 6fb5964..0000000 --- a/test_mini/libft/src/str/ft_split.c +++ /dev/null @@ -1,73 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_split.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/17 08:29:02 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:08:27 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -static size_t count_segment(char const *s, char c) -{ - size_t counter; - int i; - - counter = 0; - i = 0; - while (s[i]) - { - if (s[i] == c) - { - i++; - continue ; - } - counter++; - while (s[i] && s[i] != c) - i++; - } - return (counter); -} - -static void *destroy_strs(char **strs) -{ - if (strs == NULL) - return (NULL); - while (*strs != NULL) - free(*strs++); - free(strs); - return (NULL); -} - -char **ft_split(char const *s, char c) -{ - char **strs; - size_t tab_counter; - size_t i; - size_t j; - - if (s == NULL) - return (NULL); - tab_counter = count_segment(s, c); - if ((strs = (char**)malloc(sizeof(char*) * (tab_counter + 1))) == NULL) - return (NULL); - tab_counter = 0; - j = -1; - while (s[++j]) - { - if (s[j] == c) - continue ; - i = 0; - while (s[j + i] && s[j + i] != c) - i++; - if ((strs[tab_counter++] = ft_strndup(&s[j], i)) == NULL) - return (destroy_strs(strs)); - j += i - 1; - } - strs[tab_counter] = NULL; - return (strs); -} diff --git a/test_mini/libft/src/str/ft_strcasecmp.c b/test_mini/libft/src/str/ft_strcasecmp.c deleted file mode 100644 index 044e6de..0000000 --- a/test_mini/libft/src/str/ft_strcasecmp.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strcasecmp.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 04:08:38 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:31:33 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_str.h" -#include "libft_types.h" - -int ft_strcasecmp(const char *s1, const char *s2) -{ - while (*s1 && *s2 && ft_tolower(*s1) == ft_tolower(*s2)) - { - s1++; - s2++; - } - return ((t_ftuchar)ft_tolower(*s1) - (t_ftuchar)ft_tolower(*s2)); -} diff --git a/test_mini/libft/src/str/ft_strcat.c b/test_mini/libft/src/str/ft_strcat.c deleted file mode 100644 index d5bc7e0..0000000 --- a/test_mini/libft/src/str/ft_strcat.c +++ /dev/null @@ -1,19 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strcat.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:09:41 by cacharle #+# #+# */ -/* Updated: 2019/11/21 01:03:38 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strcat(char *dest, const char *src) -{ - ft_memcpy(dest + ft_strlen(dest), src, ft_strlen(src) + 1); - return (dest); -} diff --git a/test_mini/libft/src/str/ft_strchr.c b/test_mini/libft/src/str/ft_strchr.c deleted file mode 100644 index 50bfc0a..0000000 --- a/test_mini/libft/src/str/ft_strchr.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strchr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:14:47 by cacharle #+# #+# */ -/* Updated: 2019/11/21 01:04:52 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strchr(const char *s, int c) -{ - return (ft_memchr(s, c, ft_strlen(s) + 1)); -} diff --git a/test_mini/libft/src/str/ft_strclr.c b/test_mini/libft/src/str/ft_strclr.c deleted file mode 100644 index 7e412fe..0000000 --- a/test_mini/libft/src/str/ft_strclr.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strclr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:15:18 by cacharle #+# #+# */ -/* Updated: 2019/11/21 01:11:51 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_strclr(char *s) -{ - if (s == NULL) - return ; - ft_bzero(s, ft_strlen(s)); -} diff --git a/test_mini/libft/src/str/ft_strcmp.c b/test_mini/libft/src/str/ft_strcmp.c deleted file mode 100644 index aced711..0000000 --- a/test_mini/libft/src/str/ft_strcmp.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strcmp.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:16:07 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:18:11 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_strcmp(const char *s1, const char *s2) -{ - while (*s1 && *s2 && *s1 == *s2) - { - s1++; - s2++; - } - return (*s1 - *s2); -} diff --git a/test_mini/libft/src/str/ft_strcount.c b/test_mini/libft/src/str/ft_strcount.c deleted file mode 100644 index 87e756d..0000000 --- a/test_mini/libft/src/str/ft_strcount.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strcount.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/15 09:17:48 by cacharle #+# #+# */ -/* Updated: 2019/11/15 09:19:36 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -int ft_strcount(char *str, char c) -{ - int counter; - - if (c == '\0') - return (1); - counter = 0; - while (*str) - if (*str++ == c) - counter++; - return (counter); -} diff --git a/test_mini/libft/src/str/ft_strcpy.c b/test_mini/libft/src/str/ft_strcpy.c deleted file mode 100644 index ee6ff0d..0000000 --- a/test_mini/libft/src/str/ft_strcpy.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strcpy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:38:36 by cacharle #+# #+# */ -/* Updated: 2020/01/17 11:36:19 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strcpy(char *dest, const char *src) -{ - return (ft_memcpy(dest, src, ft_strlen(src) + 1)); -} diff --git a/test_mini/libft/src/str/ft_strcspn.c b/test_mini/libft/src/str/ft_strcspn.c deleted file mode 100644 index 7cc06a5..0000000 --- a/test_mini/libft/src/str/ft_strcspn.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strcspn.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 04:30:59 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:32:15 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_str.h" - -size_t ft_strcspn(const char *s, const char *charset) -{ - int i; - - i = 0; - while (ft_strchr(charset, s[i]) == NULL) - i++; - return (i); -} diff --git a/test_mini/libft/src/str/ft_strdel.c b/test_mini/libft/src/str/ft_strdel.c deleted file mode 100644 index 05cf064..0000000 --- a/test_mini/libft/src/str/ft_strdel.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strdel.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:39:14 by cacharle #+# #+# */ -/* Updated: 2019/11/20 01:58:27 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_strdel(char **as) -{ - ft_memdel((void*)as); -} diff --git a/test_mini/libft/src/str/ft_strdup.c b/test_mini/libft/src/str/ft_strdup.c deleted file mode 100644 index b248272..0000000 --- a/test_mini/libft/src/str/ft_strdup.c +++ /dev/null @@ -1,22 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strdup.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:18:07 by cacharle #+# #+# */ -/* Updated: 2020/02/14 03:39:56 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strdup(const char *s) -{ - char *clone; - - if ((clone = (char*)malloc(sizeof(char) * (ft_strlen(s) + 1))) == NULL) - return (NULL); - return (ft_strcpy(clone, s)); -} diff --git a/test_mini/libft/src/str/ft_strequ.c b/test_mini/libft/src/str/ft_strequ.c deleted file mode 100644 index 75ccb81..0000000 --- a/test_mini/libft/src/str/ft_strequ.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strequ.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:18:34 by cacharle #+# #+# */ -/* Updated: 2019/11/20 02:00:22 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_strequ(char const *s1, char const *s2) -{ - if (s1 == NULL || s2 == NULL) - return (0); - return (ft_strcmp(s1, s2) == 0); -} diff --git a/test_mini/libft/src/str/ft_striter.c b/test_mini/libft/src/str/ft_striter.c deleted file mode 100644 index f410d24..0000000 --- a/test_mini/libft/src/str/ft_striter.c +++ /dev/null @@ -1,21 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_striter.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:38:16 by cacharle #+# #+# */ -/* Updated: 2019/11/20 02:01:32 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_striter(char *s, void (*f)(char *)) -{ - if (s == NULL || f == NULL) - return ; - while (*s) - (*f)(s++); -} diff --git a/test_mini/libft/src/str/ft_striteri.c b/test_mini/libft/src/str/ft_striteri.c deleted file mode 100644 index 05f15d4..0000000 --- a/test_mini/libft/src/str/ft_striteri.c +++ /dev/null @@ -1,27 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_striteri.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:33:09 by cacharle #+# #+# */ -/* Updated: 2019/11/20 02:01:41 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_striteri(char *s, void (*f)(unsigned int, char *)) -{ - unsigned int i; - - if (s == NULL || f == NULL) - return ; - i = 0; - while (s[i]) - { - (*f)(i, &s[i]); - i++; - } -} diff --git a/test_mini/libft/src/str/ft_strjoin.c b/test_mini/libft/src/str/ft_strjoin.c deleted file mode 100644 index b65eaa2..0000000 --- a/test_mini/libft/src/str/ft_strjoin.c +++ /dev/null @@ -1,25 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strjoin.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:35:26 by cacharle #+# #+# */ -/* Updated: 2020/02/14 03:40:39 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strjoin(char const *s1, char const *s2) -{ - char *joined; - - if (s1 == NULL || s2 == NULL) - return (NULL); - if ((joined = (char*)malloc(sizeof(char) - * (ft_strlen(s1) + ft_strlen(s2) + 1))) == NULL) - return (NULL); - return (ft_strcat(ft_strcpy(joined, s1), s2)); -} diff --git a/test_mini/libft/src/str/ft_strjoin3.c b/test_mini/libft/src/str/ft_strjoin3.c deleted file mode 100644 index e5e5530..0000000 --- a/test_mini/libft/src/str/ft_strjoin3.c +++ /dev/null @@ -1,36 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strjoin3.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 18:00:49 by charles #+# #+# */ -/* Updated: 2020/04/01 18:01:43 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -/* -** \brief Join 3 strings in a new malloc'd one -** \param s1 String 1 -** \param s2 String 2 -** \param s3 String 3 -** \return The joined string -*/ - -char *ft_strjoin3(char const *s1, char const *s2, char const *s3) -{ - char *joined; - - if (s1 == NULL || s2 == NULL || s3 == NULL) - return (NULL); - if ((joined = (char*)malloc(sizeof(char) - * (ft_strlen(s1) + ft_strlen(s2) + ft_strlen(s3) + 1))) == NULL) - return (NULL); - ft_strcpy(joined, s1); - ft_strcat(joined, s2); - ft_strcat(joined, s3); - return (joined); -} diff --git a/test_mini/libft/src/str/ft_strjoinf.c b/test_mini/libft/src/str/ft_strjoinf.c deleted file mode 100644 index 228a963..0000000 --- a/test_mini/libft/src/str/ft_strjoinf.c +++ /dev/null @@ -1,35 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strjoinf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/14 03:41:07 by cacharle #+# #+# */ -/* Updated: 2020/02/14 03:41:25 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include <stdlib.h> -#include "libft.h" -#include "libft_str.h" - -char *ft_strjoinf(char const *s1, char const *s2, t_ftstrjoinf_tag tag) -{ - char *joined; - - if (s1 == NULL || s2 == NULL) - return (NULL); - if ((joined = ft_strjoin(s1, s2)) == NULL) - return (NULL); - if (tag == FT_STRJOINF_FST) - free((void*)s1); - else if (tag == FT_STRJOINF_SND) - free((void*)s2); - else if (tag == FT_STRJOINF_ALL) - { - free((void*)s1); - free((void*)s2); - } - return (joined); -} diff --git a/test_mini/libft/src/str/ft_strlcat.c b/test_mini/libft/src/str/ft_strlcat.c deleted file mode 100644 index ce7fa0b..0000000 --- a/test_mini/libft/src/str/ft_strlcat.c +++ /dev/null @@ -1,32 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strlcat.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:31:37 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:31:08 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -size_t ft_strlcat(char *dst, const char *src, size_t size) -{ - size_t i; - size_t j; - size_t dst_len; - size_t src_len; - - dst_len = ft_strlen(dst); - src_len = ft_strlen(src); - if (size <= dst_len) - return (src_len + size); - i = 0; - j = dst_len; - while (src[i] && j < size - 1) - dst[j++] = src[i++]; - dst[j] = '\0'; - return (dst_len + src_len); -} diff --git a/test_mini/libft/src/str/ft_strlcpy.c b/test_mini/libft/src/str/ft_strlcpy.c deleted file mode 100644 index 6afb8f5..0000000 --- a/test_mini/libft/src/str/ft_strlcpy.c +++ /dev/null @@ -1,28 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strlcpy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 12:28:47 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:31:16 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -size_t ft_strlcpy(char *dst, const char *src, size_t size) -{ - unsigned int i; - - if (dst == NULL || src == NULL) - return (0); - if (size == 0) - return (ft_strlen(src)); - i = -1; - while (++i < size - 1 && src[i] != '\0') - dst[i] = src[i]; - dst[i] = '\0'; - return (ft_strlen(src)); -} diff --git a/test_mini/libft/src/str/ft_strlen.c b/test_mini/libft/src/str/ft_strlen.c deleted file mode 100644 index 0d593e1..0000000 --- a/test_mini/libft/src/str/ft_strlen.c +++ /dev/null @@ -1,41 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strlen.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:32:48 by cacharle #+# #+# */ -/* Updated: 2020/01/17 11:13:43 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -size_t ft_strlen(const char *s) -{ - unsigned long int *ptr; - const char *cpy; - - ptr = (unsigned long int*)s; - while (TRUE) - { - cpy = (const char*)ptr++; - if (cpy[0] == '\0') - return (cpy - s); - if (cpy[1] == '\0') - return (cpy + 1 - s); - if (cpy[2] == '\0') - return (cpy + 2 - s); - if (cpy[3] == '\0') - return (cpy + 3 - s); - if (cpy[4] == '\0') - return (cpy + 4 - s); - if (cpy[5] == '\0') - return (cpy + 5 - s); - if (cpy[6] == '\0') - return (cpy + 6 - s); - if (cpy[7] == '\0') - return (cpy + 7 - s); - } -} diff --git a/test_mini/libft/src/str/ft_strmap.c b/test_mini/libft/src/str/ft_strmap.c deleted file mode 100644 index 61d16f1..0000000 --- a/test_mini/libft/src/str/ft_strmap.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strmap.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:29:52 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:02:11 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strmap(char const *s, char (*f)(char)) -{ - size_t i; - size_t len; - char *mapped; - - if (s == NULL || f == NULL) - return (NULL); - len = ft_strlen(s); - if ((mapped = (char*)malloc(sizeof(char) * (len + 1))) == NULL) - return (NULL); - i = 0; - while (i < len) - { - mapped[i] = (*f)(s[i]); - i++; - } - mapped[i] = '\0'; - return (mapped); -} diff --git a/test_mini/libft/src/str/ft_strmapi.c b/test_mini/libft/src/str/ft_strmapi.c deleted file mode 100644 index 71d77e4..0000000 --- a/test_mini/libft/src/str/ft_strmapi.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strmapi.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:29:32 by cacharle #+# #+# */ -/* Updated: 2019/11/20 04:02:15 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strmapi(char *s, char (*f)(unsigned int, char)) -{ - size_t i; - size_t len; - char *mapped; - - if (s == NULL || f == NULL) - return (NULL); - len = ft_strlen(s); - if ((mapped = (char*)malloc(sizeof(char) * (len + 1))) == NULL) - return (NULL); - i = 0; - while (i < len) - { - mapped[i] = (*f)((unsigned int)i, s[i]); - i++; - } - mapped[i] = '\0'; - return (mapped); -} diff --git a/test_mini/libft/src/str/ft_strncasecmp.c b/test_mini/libft/src/str/ft_strncasecmp.c deleted file mode 100644 index aafdc8c..0000000 --- a/test_mini/libft/src/str/ft_strncasecmp.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strncasecmp.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 04:18:36 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:31:38 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_types.h" - -int ft_strncasecmp(const char *s1, const char *s2, size_t n) -{ - size_t i; - - if (n == 0) - return (0); - i = 0; - while (i + 1 < n && s1[i] && ft_tolower(s1[i]) == ft_tolower(s2[i])) - i++; - return ((t_ftuchar)ft_tolower(s1[i]) - (t_ftuchar)ft_tolower(s2[i])); -} diff --git a/test_mini/libft/src/str/ft_strncat.c b/test_mini/libft/src/str/ft_strncat.c deleted file mode 100644 index d68db0a..0000000 --- a/test_mini/libft/src/str/ft_strncat.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strncat.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:28:37 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:33:22 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strncat(char *dest, const char *src, size_t n) -{ - size_t i; - size_t j; - - i = ft_strlen(dest); - j = 0; - while (j < n && src[j]) - { - dest[i + j] = src[j]; - j++; - } - dest[i + j] = '\0'; - return (dest); -} diff --git a/test_mini/libft/src/str/ft_strncmp.c b/test_mini/libft/src/str/ft_strncmp.c deleted file mode 100644 index caa052b..0000000 --- a/test_mini/libft/src/str/ft_strncmp.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strncmp.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:27:34 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:17:50 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_types.h" - -int ft_strncmp(const char *s1, const char *s2, size_t n) -{ - size_t i; - - if (n == 0) - return (0); - i = 0; - while (i + 1 < n && s1[i] == s2[i] && s1[i]) - i++; - return ((t_ftuchar)s1[i] - (t_ftuchar)s2[i]); -} diff --git a/test_mini/libft/src/str/ft_strncpy.c b/test_mini/libft/src/str/ft_strncpy.c deleted file mode 100644 index 07a4927..0000000 --- a/test_mini/libft/src/str/ft_strncpy.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strncpy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:26:59 by cacharle #+# #+# */ -/* Updated: 2020/01/17 10:40:21 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strncpy(char *dest, const char *src, size_t n) -{ - size_t len; - - len = ft_strlen(src); - ft_memcpy(dest, src, n < len ? n : len); - if (len < n) - ft_bzero(dest + len, n - len); - return (dest); -} diff --git a/test_mini/libft/src/str/ft_strndup.c b/test_mini/libft/src/str/ft_strndup.c deleted file mode 100644 index 894ea4e..0000000 --- a/test_mini/libft/src/str/ft_strndup.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strndup.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/25 03:28:52 by cacharle #+# #+# */ -/* Updated: 2020/02/14 03:43:55 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strndup(const char *s1, size_t n) -{ - char *clone; - - if ((clone = (char*)malloc(sizeof(char) * (n + 1))) == NULL) - return (NULL); - clone[n] = '\0'; - return (ft_strncpy(clone, s1, n)); -} diff --git a/test_mini/libft/src/str/ft_strnequ.c b/test_mini/libft/src/str/ft_strnequ.c deleted file mode 100644 index e242ee7..0000000 --- a/test_mini/libft/src/str/ft_strnequ.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strnequ.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:30:27 by cacharle #+# #+# */ -/* Updated: 2019/11/20 02:00:42 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -int ft_strnequ(char const *s1, char const *s2, size_t n) -{ - if (s1 == NULL || s2 == NULL) - return (0); - return (ft_strncmp(s1, s2, n) == 0); -} diff --git a/test_mini/libft/src/str/ft_strnew.c b/test_mini/libft/src/str/ft_strnew.c deleted file mode 100644 index 1bca6d5..0000000 --- a/test_mini/libft/src/str/ft_strnew.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strnew.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:17:34 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:16:14 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strnew(size_t size) -{ - return ((char*)ft_calloc(size + 1, sizeof(char))); -} diff --git a/test_mini/libft/src/str/ft_strnlen.c b/test_mini/libft/src/str/ft_strnlen.c deleted file mode 100644 index 5e1569c..0000000 --- a/test_mini/libft/src/str/ft_strnlen.c +++ /dev/null @@ -1,25 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strnlen.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 05:21:04 by cacharle #+# #+# */ -/* Updated: 2020/02/10 05:23:23 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_str.h" - -/* -** wrong implementation since it scans beyond maxlen -*/ - -size_t ft_strnlen(const char *s, size_t maxlen) -{ - size_t len; - - len = ft_strlen(s); - return (len > maxlen ? maxlen : len); -} diff --git a/test_mini/libft/src/str/ft_strnstr.c b/test_mini/libft/src/str/ft_strnstr.c deleted file mode 100644 index 4995637..0000000 --- a/test_mini/libft/src/str/ft_strnstr.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strnstr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:25:13 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:58:42 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strnstr(const char *haystack, const char *needle, size_t len) -{ - size_t needle_len; - - needle_len = ft_strlen(needle); - if (needle_len == 0) - return ((char*)haystack); - while (*haystack && len-- >= needle_len) - { - if (ft_strnequ(haystack, needle, needle_len)) - return ((char*)haystack); - haystack++; - } - return (NULL); -} diff --git a/test_mini/libft/src/str/ft_strpbrk.c b/test_mini/libft/src/str/ft_strpbrk.c deleted file mode 100644 index 753e4d9..0000000 --- a/test_mini/libft/src/str/ft_strpbrk.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strpbrk.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 04:39:29 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:54:13 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_str.h" - -char *ft_strpbrk(const char *s, const char *charset) -{ - if (s == NULL || charset == NULL) - return (NULL); - while (*s && ft_strchr(charset, *s) == NULL) - s++; - if (*s == '\0') - return (NULL); - return ((char*)s); -} diff --git a/test_mini/libft/src/str/ft_strrchr.c b/test_mini/libft/src/str/ft_strrchr.c deleted file mode 100644 index 4cedb76..0000000 --- a/test_mini/libft/src/str/ft_strrchr.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strrchr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:26:24 by cacharle #+# #+# */ -/* Updated: 2019/11/21 18:46:27 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strrchr(const char *s, int c) -{ - size_t i; - - i = ft_strlen(s) + 1; - while (s[--i] != (char)c) - if (i == 0) - return (NULL); - return ((char*)s + i); -} diff --git a/test_mini/libft/src/str/ft_strsep.c b/test_mini/libft/src/str/ft_strsep.c deleted file mode 100644 index 2000706..0000000 --- a/test_mini/libft/src/str/ft_strsep.c +++ /dev/null @@ -1,27 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strsep.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 04:44:11 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:51:15 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_str.h" - -char *ft_strsep(char **stringp, const char *delim) -{ - char *tmp; - - if (stringp == NULL || *stringp == NULL || delim == NULL) - return (NULL); - tmp = ft_strpbrk(*stringp, delim); - if (tmp == NULL) - return (NULL); - *tmp = '\0'; - *stringp = tmp; - return (tmp); -} diff --git a/test_mini/libft/src/str/ft_strspn.c b/test_mini/libft/src/str/ft_strspn.c deleted file mode 100644 index 81814e5..0000000 --- a/test_mini/libft/src/str/ft_strspn.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strspn.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 04:29:13 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:33:11 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_str.h" - -size_t ft_strspn(const char *s, const char *charset) -{ - int i; - - i = 0; - while (ft_strchr(charset, s[i]) != NULL) - i++; - return (i); -} diff --git a/test_mini/libft/src/str/ft_strstr.c b/test_mini/libft/src/str/ft_strstr.c deleted file mode 100644 index 4d4d403..0000000 --- a/test_mini/libft/src/str/ft_strstr.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strstr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:15:29 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:58:32 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strstr(const char *haystack, const char *needle) -{ - size_t needle_len; - - needle_len = ft_strlen(needle); - if (needle_len == 0) - return ((char*)haystack); - while (*haystack) - { - if (ft_strnequ(haystack, needle, needle_len)) - return ((char*)haystack); - haystack++; - } - return (NULL); -} diff --git a/test_mini/libft/src/str/ft_strtol.c b/test_mini/libft/src/str/ft_strtol.c deleted file mode 100644 index 82276d8..0000000 --- a/test_mini/libft/src/str/ft_strtol.c +++ /dev/null @@ -1,80 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strtol.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/15 10:26:45 by cacharle #+# #+# */ -/* Updated: 2020/02/10 02:21:16 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -#define STRTOL_STD_BASE "0123456789abcdefghijklmnopqrstuvwxyz" - -static int st_strtol_handle_base(int base, const char **str) -{ - if (base > 36) - return (-1); - if (base != 16 && base != 0) - return (base); - if (base == 16 && **str == '0' && (*str)[1] == 'x') - { - *str += 2; - return (base); - } - if (**str == '0') - { - (*str)++; - if (**str == 'x') - { - (*str)++; - return (16); - } - else - return (8); - } - return (10); -} - -static long st_errno_return(int err) -{ - errno = err; - return (0); -} - -/* -** If there is no digits doesn't put str in endptr like the original, -** instead it puts the address of the char after spaces and sign. -** Too much lines and annoyance, I can't be bothered. -*/ - -long ft_strtol(const char *str, char **endptr, int base) -{ - t_ftbool is_negative; - long long nb; - char base_str[37]; - - while (ft_isspace(*str)) - str++; - is_negative = *str == '-' ? TRUE : FALSE; - if (*str == '-' || *str == '+') - str++; - if ((base = st_strtol_handle_base(base, &str)) == -1) - return (st_errno_return(EINVAL)); - ft_strncpy(base_str, STRTOL_STD_BASE, base); - base_str[base] = '\0'; - nb = 0; - while (*str != '\0' && ft_strchr(base_str, *str) != NULL) - { - nb *= base; - nb += ft_strchr(base_str, ft_tolower(*str++)) - base_str; - if (((long)nb ^ (long)(nb / base)) < 0) - errno = ERANGE; - } - if (endptr != NULL) - *endptr = (char*)str; - return (is_negative ? -nb : nb); -} diff --git a/test_mini/libft/src/str/ft_strtolower.c b/test_mini/libft/src/str/ft_strtolower.c deleted file mode 100644 index 2eb34c2..0000000 --- a/test_mini/libft/src/str/ft_strtolower.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strtolower.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 04:10:01 by cacharle #+# #+# */ -/* Updated: 2020/02/10 04:12:21 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_str.h" -#include "libft_ctype.h" - -char *ft_strtolower(char *s) -{ - int i; - - if (s == NULL) - return (NULL); - i = -1; - while (s[i]) - s[i] = ft_tolower(s[i]); - return (s); -} diff --git a/test_mini/libft/src/str/ft_strtoupper.c b/test_mini/libft/src/str/ft_strtoupper.c deleted file mode 100644 index 4a751d3..0000000 --- a/test_mini/libft/src/str/ft_strtoupper.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strtoupper.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/10 04:12:04 by cacharle #+# #+# */ -/* Updated: 2020/02/14 02:49:35 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_str.h" -#include "libft_ctype.h" - -char *ft_strtoupper(char *s) -{ - int i; - - if (s == NULL) - return (NULL); - i = -1; - while (s[i]) - s[i] = ft_toupper(s[i]); - return (s); -} diff --git a/test_mini/libft/src/str/ft_strtrim.c b/test_mini/libft/src/str/ft_strtrim.c deleted file mode 100644 index aa48826..0000000 --- a/test_mini/libft/src/str/ft_strtrim.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_strtrim.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/07 10:24:16 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:52:58 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_strtrim(char const *s1, char const *set) -{ - size_t start; - size_t len; - - if (s1 == NULL || set == NULL) - return (NULL); - start = 0; - while (s1[start] && ft_strchr(set, s1[start]) != NULL) - start++; - len = ft_strlen(&s1[start]); - if (len != 0) - while (s1[start + len - 1] - && ft_strchr(set, s1[start + len - 1]) != NULL) - len--; - return (ft_substr(s1, start, len)); -} diff --git a/test_mini/libft/src/str/ft_substr.c b/test_mini/libft/src/str/ft_substr.c deleted file mode 100644 index ad9c706..0000000 --- a/test_mini/libft/src/str/ft_substr.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_substr.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/10/17 08:28:49 by cacharle #+# #+# */ -/* Updated: 2020/02/14 03:44:42 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -char *ft_substr(char const *s, unsigned int start, size_t len) -{ - char *sub; - - if (s == NULL) - return (NULL); - if ((sub = (char*)malloc(sizeof(char) * (len + 1))) == NULL) - return (NULL); - if (start > ft_strlen(s)) - return (sub); - return (ft_strncpy(sub, s + start, len)); -} diff --git a/test_mini/libft/src/util/ft_split_destroy.c b/test_mini/libft/src/util/ft_split_destroy.c deleted file mode 100644 index bc3f4e6..0000000 --- a/test_mini/libft/src/util/ft_split_destroy.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_split_destroy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/27 16:30:55 by cacharle #+# #+# */ -/* Updated: 2020/02/27 17:52:31 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_util.h" - -void *ft_split_destroy(char **strs) -{ - int i; - - i = -1; - while (strs[++i] != NULL) - free(strs[i]); - free(strs); - return (NULL); -} diff --git a/test_mini/libft/src/vec/ft_vecdestroy.c b/test_mini/libft/src/vec/ft_vecdestroy.c deleted file mode 100644 index 781e02e..0000000 --- a/test_mini/libft/src/vec/ft_vecdestroy.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vecdestroy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 19:06:22 by charles #+# #+# */ -/* Updated: 2020/04/01 19:09:09 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_vec.h" - -/* -** \brief Destroy a vector -** \param vec Vector to destroy -** \param del Delete function applied to each element of the vector -*/ - -void ft_vecdestroy(t_ftvec *vec, void (*del)(void *elem)) -{ - if (vec == NULL) - return ; - if (del != NULL) - ft_veciter(vec, del); - free(vec->data); - free(vec); -} diff --git a/test_mini/libft/src/vec/ft_vecgrow.c b/test_mini/libft/src/vec/ft_vecgrow.c deleted file mode 100644 index bb8b8c7..0000000 --- a/test_mini/libft/src/vec/ft_vecgrow.c +++ /dev/null @@ -1,43 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vecgrow.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 19:13:07 by charles #+# #+# */ -/* Updated: 2020/04/01 21:15:20 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_vec.h" - -/* -** \brief Vector Growth factor -*/ - -#define FT_VEC_GROWTH_FACTOR 1.5 - -/* -** \brief Grow the vector capacity by a constant factor -** \param vec Vector to grow -** \return Passed vector of NULL on error -*/ - -t_ftvec *ft_vecgrow(t_ftvec *vec) -{ - size_t new_capacity; - void **new_data; - - if (vec->capacity <= 1) - new_capacity = 2; - else - new_capacity = vec->capacity * FT_VEC_GROWTH_FACTOR; - if ((new_data = (void**)malloc(sizeof(void*) * new_capacity)) == NULL) - return (NULL); - ft_memcpy(new_data, vec->data, vec->size); - free(vec->data); - vec->data = new_data; - vec->capacity = new_capacity; - return (vec); -} diff --git a/test_mini/libft/src/vec/ft_veciter.c b/test_mini/libft/src/vec/ft_veciter.c deleted file mode 100644 index ec4a917..0000000 --- a/test_mini/libft/src/vec/ft_veciter.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_veciter.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 19:09:51 by charles #+# #+# */ -/* Updated: 2020/04/01 20:15:13 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_vec.h" - -/* -** \brief Iterate a function over elements of a vector -** \param vec Iterated vector -** \param f Function applied to each elements -*/ - -void ft_veciter(t_ftvec *vec, void (*f)(void *elem)) -{ - size_t i; - - i = 0; - while (i < vec->size) - { - f(vec->data[i]); - i++; - } -} diff --git a/test_mini/libft/src/vec/ft_vecnew.c b/test_mini/libft/src/vec/ft_vecnew.c deleted file mode 100644 index 8a8736a..0000000 --- a/test_mini/libft/src/vec/ft_vecnew.c +++ /dev/null @@ -1,38 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vecnew.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 19:03:49 by charles #+# #+# */ -/* Updated: 2020/04/01 20:00:00 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_vec.h" - -/* -** \brief Create a new vector -** \param capacity Initial capacity of the underlying array -** Can't be lower than 1 -** \return Created vector or NULL on malloc error -*/ - -t_ftvec *ft_vecnew(size_t capacity) -{ - t_ftvec *vec; - - if ((vec = (t_ftvec*)malloc(sizeof(t_ftvec))) == NULL) - return (NULL); - if (capacity == 0) - capacity = 1; - if ((vec->data = (void**)malloc(sizeof(void*) * capacity)) == NULL) - { - free(vec); - return (NULL); - } - vec->capacity = capacity; - vec->size = 0; - return (vec); -} diff --git a/test_mini/libft/src/vec/ft_vecpop.c b/test_mini/libft/src/vec/ft_vecpop.c deleted file mode 100644 index 5b77b46..0000000 --- a/test_mini/libft/src/vec/ft_vecpop.c +++ /dev/null @@ -1,28 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vecpop.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 19:26:27 by charles #+# #+# */ -/* Updated: 2020/04/01 20:26:34 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_vec.h" - -/* -** \brief Pop last element of a vector -** \param vec Vector poped -** \param del Delete function applied to last element -*/ - -void ft_vecpop(t_ftvec *vec, void (*del)(void *elem)) -{ - if (vec->size == 0) - return ; - if (del != NULL) - del(vec->data[vec->size - 1]); - vec->size--; -} diff --git a/test_mini/libft/src/vec/ft_vecpush.c b/test_mini/libft/src/vec/ft_vecpush.c deleted file mode 100644 index fc903ef..0000000 --- a/test_mini/libft/src/vec/ft_vecpush.c +++ /dev/null @@ -1,30 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vecpush.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 19:22:20 by charles #+# #+# */ -/* Updated: 2020/04/01 20:20:06 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_vec.h" - -/* -** \brief Push element at the end of vector -** \param vec Vector where element will be pushed -** \param pushed Element to push -** \return Passed vector or NULL if couldnt grow vector -*/ - -t_ftvec *ft_vecpush(t_ftvec *vec, void *pushed) -{ - if (vec->capacity <= vec->size) - if (ft_vecgrow(vec) == NULL) - return (NULL); - vec->data[vec->size] = pushed; - vec->size++; - return (vec); -} diff --git a/test_mini/libft/src/vec/ft_vecremove.c b/test_mini/libft/src/vec/ft_vecremove.c deleted file mode 100644 index d24ba29..0000000 --- a/test_mini/libft/src/vec/ft_vecremove.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_vecremove.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 22:45:07 by charles #+# #+# */ -/* Updated: 2020/04/01 22:58:21 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_vec.h" - -/* -** \brief Remove element from vector -** \param vec Vector to remove from -** \param i Index of the element to remove -** \param del Delete function applied to ith element -*/ - -void ft_vecremove(t_ftvec *vec, size_t i, void (*del)(void *elem)) -{ - if (vec->size == 0 || i > vec->size - 1) - return ; - if (del != NULL) - del(vec->data[i]); - ft_memmove(vec->data + i, vec->data + i + 1, - (vec->size - i - 1) * sizeof(void*)); - vec->size--; -} |
