diff options
| author | nass1pro <nass1pro@gmail.com> | 2020-06-12 13:52:58 +0200 |
|---|---|---|
| committer | nass1pro <nass1pro@gmail.com> | 2020-06-13 11:45:50 +0200 |
| commit | d971bd8d16608f316396aba7a579d0b1f1af5aeb (patch) | |
| tree | 98ec558582ed20a120e13b4a376fd206fb620da0 /test_mini/libft/src/mem/ft_memmem.c | |
| parent | 3136f59540a8dd29e2f096be5a8943e2ddd28431 (diff) | |
| download | minishell-d971bd8d16608f316396aba7a579d0b1f1af5aeb.tar.gz minishell-d971bd8d16608f316396aba7a579d0b1f1af5aeb.tar.bz2 minishell-d971bd8d16608f316396aba7a579d0b1f1af5aeb.zip | |
Added e_token enum
Diffstat (limited to 'test_mini/libft/src/mem/ft_memmem.c')
| -rw-r--r-- | test_mini/libft/src/mem/ft_memmem.c | 58 |
1 files changed, 0 insertions, 58 deletions
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); -} |
