AHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
This commit is contained in:
parent
d21e3a9025
commit
01b559a96f
14
Makefile
14
Makefile
|
@ -48,13 +48,13 @@ _SRC += ft_strmapi.c
|
||||||
|
|
||||||
_SRC += ft_lstnew.c
|
_SRC += ft_lstnew.c
|
||||||
_SRC += ft_lstadd_front.c
|
_SRC += ft_lstadd_front.c
|
||||||
# _SRC += ft_lstadd_back.c
|
_SRC += ft_lstsize.c
|
||||||
# _SRC += ft_lstclear
|
_SRC += ft_lstlast.c
|
||||||
# _SRC += ft_lstdelone.c
|
_SRC += ft_lstadd_back.c
|
||||||
# _SRC += ft_lstiter.c
|
_SRC += ft_lstclear.c
|
||||||
# _SRC += ft_lstlast.c
|
_SRC += ft_lstdelone.c
|
||||||
# _SRC += ft_lstmap.c
|
_SRC += ft_lstiter.c
|
||||||
# _SRC += ft_lstsize.c
|
_SRC += ft_lstmap.c
|
||||||
|
|
||||||
_SRC += ft_char_in_charset.c
|
_SRC += ft_char_in_charset.c
|
||||||
_SRC += ft_isspace.c
|
_SRC += ft_isspace.c
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_lstadd_back.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/06/24 16:29:20 by tosuman #+# #+# */
|
||||||
|
/* Updated: 2023/06/24 16:38:53 by tosuman ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
void ft_lstadd_back(t_list **lst, t_list *new)
|
||||||
|
{
|
||||||
|
t_list *last;
|
||||||
|
|
||||||
|
if (!lst)
|
||||||
|
return ;
|
||||||
|
if (!*lst)
|
||||||
|
{
|
||||||
|
*lst = new;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
last = ft_lstlast(*lst);
|
||||||
|
last->next = new;
|
||||||
|
}
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/06/14 11:57:15 by tosuman #+# #+# */
|
/* Created: 2023/06/14 11:57:15 by tosuman #+# #+# */
|
||||||
/* Updated: 2023/06/14 11:57:15 by tosuman ### ########.fr */
|
/* Updated: 2023/06/24 16:38:36 by tosuman ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -14,10 +14,8 @@
|
||||||
|
|
||||||
void ft_lstadd_front(t_list **lst, t_list *new)
|
void ft_lstadd_front(t_list **lst, t_list *new)
|
||||||
{
|
{
|
||||||
if (lst)
|
if (!lst)
|
||||||
{
|
return ;
|
||||||
if (*lst)
|
new->next = *lst;
|
||||||
new->next = *lst;
|
*lst = new;
|
||||||
*lst = new;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_lstclear.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/06/24 16:47:41 by tosuman #+# #+# */
|
||||||
|
/* Updated: 2023/06/24 17:06:04 by tosuman ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "libft.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
void ft_lstclear(t_list **lst, void (*del)(void *))
|
||||||
|
{
|
||||||
|
t_list *tmp;
|
||||||
|
|
||||||
|
if (!lst || !del)
|
||||||
|
return ;
|
||||||
|
tmp = *lst;
|
||||||
|
while (tmp)
|
||||||
|
{
|
||||||
|
*lst = tmp->next;
|
||||||
|
ft_lstdelone(tmp, del);
|
||||||
|
tmp = *lst;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_lstdelone.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/06/24 16:44:13 by tosuman #+# #+# */
|
||||||
|
/* Updated: 2023/06/24 16:45:34 by tosuman ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "libft.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
void ft_lstdelone(t_list *lst, void (*del)(void *))
|
||||||
|
{
|
||||||
|
del(lst->content);
|
||||||
|
free(lst);
|
||||||
|
}
|
22
ft_lstiter.c
22
ft_lstiter.c
|
@ -0,0 +1,22 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_lstiter.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/06/24 16:57:28 by tosuman #+# #+# */
|
||||||
|
/* Updated: 2023/06/24 17:26:38 by tosuman ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
void ft_lstiter(t_list *lst, void (*f)(void *))
|
||||||
|
{
|
||||||
|
while (lst)
|
||||||
|
{
|
||||||
|
(*f)(lst->content);
|
||||||
|
lst = lst->next;
|
||||||
|
}
|
||||||
|
}
|
22
ft_lstlast.c
22
ft_lstlast.c
|
@ -0,0 +1,22 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_lstlast.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/06/24 16:26:09 by tosuman #+# #+# */
|
||||||
|
/* Updated: 2023/06/24 16:28:25 by tosuman ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
t_list *ft_lstlast(t_list *lst)
|
||||||
|
{
|
||||||
|
if (!lst)
|
||||||
|
return (lst);
|
||||||
|
while (lst->next)
|
||||||
|
lst = lst->next;
|
||||||
|
return (lst);
|
||||||
|
}
|
42
ft_lstmap.c
42
ft_lstmap.c
|
@ -0,0 +1,42 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_lstmap.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/06/24 17:10:04 by tosuman #+# #+# */
|
||||||
|
/* Updated: 2023/06/26 20:32:34 by tosuman ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "libft.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *))
|
||||||
|
{
|
||||||
|
t_list *new_lst;
|
||||||
|
t_list *new_elem;
|
||||||
|
|
||||||
|
if (!lst || !f)
|
||||||
|
return (0);
|
||||||
|
new_lst = (void *)0;
|
||||||
|
while (lst)
|
||||||
|
{
|
||||||
|
new_elem = ft_lstnew(f(lst->content));
|
||||||
|
if (!new_elem)
|
||||||
|
{
|
||||||
|
while (new_lst)
|
||||||
|
{
|
||||||
|
new_elem = new_lst->next;
|
||||||
|
del(new_lst->content);
|
||||||
|
free(new_lst);
|
||||||
|
new_lst = new_elem;
|
||||||
|
}
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
ft_lstadd_back(&new_lst, new_elem);
|
||||||
|
lst = lst->next;
|
||||||
|
}
|
||||||
|
return (new_lst);
|
||||||
|
}
|
|
@ -6,12 +6,13 @@
|
||||||
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/06/09 14:55:31 by tosuman #+# #+# */
|
/* Created: 2023/06/09 14:55:31 by tosuman #+# #+# */
|
||||||
/* Updated: 2023/06/09 14:55:31 by tosuman ### ########.fr */
|
/* Updated: 2023/06/24 17:36:37 by tosuman ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "libft.h"
|
#include "libft.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
t_list *ft_lstnew(void *content)
|
t_list *ft_lstnew(void *content)
|
||||||
{
|
{
|
||||||
|
@ -21,6 +22,6 @@ t_list *ft_lstnew(void *content)
|
||||||
if (!new)
|
if (!new)
|
||||||
return (0);
|
return (0);
|
||||||
new->content = content;
|
new->content = content;
|
||||||
new->next = 0;
|
new->next = (void *)0;
|
||||||
return (new);
|
return (new);
|
||||||
}
|
}
|
||||||
|
|
26
ft_lstsize.c
26
ft_lstsize.c
|
@ -0,0 +1,26 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_lstsize.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/06/24 15:46:41 by tosuman #+# #+# */
|
||||||
|
/* Updated: 2023/06/24 16:25:28 by tosuman ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
int ft_lstsize(t_list *lst)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
while (lst)
|
||||||
|
{
|
||||||
|
lst = lst -> next;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return (i);
|
||||||
|
}
|
34
ft_strlcat.c
34
ft_strlcat.c
|
@ -6,7 +6,7 @@
|
||||||
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/05/11 16:55:00 by tosuman #+# #+# */
|
/* Created: 2023/05/11 16:55:00 by tosuman #+# #+# */
|
||||||
/* Updated: 2023/06/02 20:02:14 by tischmid ### ########.fr */
|
/* Updated: 2023/06/26 20:41:08 by tosuman ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -23,10 +23,10 @@ size_t ft_strlcat(char *dst, char const *src, size_t size)
|
||||||
while (src[slen])
|
while (src[slen])
|
||||||
++slen;
|
++slen;
|
||||||
idx = 0;
|
idx = 0;
|
||||||
while (dst[idx])
|
while (dst[idx] && idx < size)
|
||||||
++idx;
|
++idx;
|
||||||
dlen = idx;
|
dlen = idx;
|
||||||
if (dlen > size)
|
if (dlen == size)
|
||||||
return (slen + size);
|
return (slen + size);
|
||||||
sidx = 0;
|
sidx = 0;
|
||||||
size -= dlen;
|
size -= dlen;
|
||||||
|
@ -35,31 +35,3 @@ size_t ft_strlcat(char *dst, char const *src, size_t size)
|
||||||
dst[idx] = 0;
|
dst[idx] = 0;
|
||||||
return (dlen + slen);
|
return (dlen + slen);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Alternative implementation
|
|
||||||
size_t ft_strlcat(char *dst, char const *src, size_t size)
|
|
||||||
{
|
|
||||||
size_t dst_len;
|
|
||||||
size_t src_len;
|
|
||||||
|
|
||||||
if ((!dst || !src) && size == 0)
|
|
||||||
return (0);
|
|
||||||
dst_len = 0;
|
|
||||||
src_len = -1;
|
|
||||||
while (*dst++)
|
|
||||||
++dst_len;
|
|
||||||
while (src[++src_len])
|
|
||||||
;
|
|
||||||
if (size <= dst_len)
|
|
||||||
return (size + src_len);
|
|
||||||
if (--dst && dst_len > size)
|
|
||||||
return (size + dst_len);
|
|
||||||
while (src_len-- && ++dst_len < size)
|
|
||||||
*dst++ = *src++;
|
|
||||||
if (dst_len-- == size)
|
|
||||||
--dst_len;
|
|
||||||
*dst = 0;
|
|
||||||
return (dst_len + src_len);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
9
libft.h
9
libft.h
|
@ -6,7 +6,7 @@
|
||||||
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
/* By: tosuman <timo42@proton.me> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/05/11 11:31:44 by tosuman #+# #+# */
|
/* Created: 2023/05/11 11:31:44 by tosuman #+# #+# */
|
||||||
/* Updated: 2023/06/02 21:25:33 by tischmid ### ########.fr */
|
/* Updated: 2023/06/24 17:16:29 by tosuman ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -61,5 +61,12 @@ int ft_char_in_charset(char c, char const *charset);
|
||||||
UINT ft_abs(int n);
|
UINT ft_abs(int n);
|
||||||
t_list *ft_lstnew(void *content);
|
t_list *ft_lstnew(void *content);
|
||||||
void ft_lstadd_front(t_list **lst, t_list *new);
|
void ft_lstadd_front(t_list **lst, t_list *new);
|
||||||
|
int ft_lstsize(t_list *lst);
|
||||||
|
t_list *ft_lstlast(t_list *lst);
|
||||||
|
void ft_lstadd_back(t_list **lst, t_list *new);
|
||||||
|
void ft_lstdelone(t_list *lst, void (*del)(void *));
|
||||||
|
void ft_lstclear(t_list **lst, void (*del)(void *));
|
||||||
|
void ft_lstiter(t_list *lst, void (*f)(void *));
|
||||||
|
t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue