newer libft
This commit is contained in:
parent
78f5ce8f03
commit
b1a66b8617
@ -20,15 +20,15 @@ SOURCES = ft_atoi.c ft_bzero.c ft_calloc.c ft_isalnum.c ft_isalpha.c \
|
||||
ft_strlen.c ft_strmapi.c ft_strncmp.c ft_strnstr.c ft_strrchr.c \
|
||||
ft_strtrim.c ft_substr.c ft_tolower.c ft_toupper.c
|
||||
|
||||
BONUS_SOURCES = ft_lstadd_back.c ft_lstadd_front.c ft_lstclear.c \
|
||||
ft_lstdelone.c ft_lstiter.c ft_lstlast.c ft_lstmap.c \
|
||||
ft_lstnew.c ft_lstsize.c
|
||||
BONUS_SOURCES = ft_lstadd_back_bonus.c ft_lstadd_front_bonus.c ft_lstclear_bonus.c \
|
||||
ft_lstdelone_bonus.c ft_lstiter_bonus.c ft_lstlast_bonus.c ft_lstmap_bonus.c \
|
||||
ft_lstnew_bonus.c ft_lstsize_bonus.c
|
||||
|
||||
OBJECTS = $(SOURCES:.c=.o)
|
||||
|
||||
BONUS_OBJECTS = $(BONUS_SOURCES:.c=.o)
|
||||
|
||||
CC = gcc
|
||||
CC = cc
|
||||
CFLAGS = -Wall -Wextra -Werror
|
||||
|
||||
all: $(NAME)
|
||||
|
||||
@ -17,7 +17,7 @@ void *ft_calloc(size_t nmemb, size_t size)
|
||||
{
|
||||
void *ptr;
|
||||
|
||||
if (nmemb && nmemb > (size_t) -1 / nmemb)
|
||||
if (nmemb && size > (size_t) -1 / nmemb)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -11,20 +11,22 @@
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *))
|
||||
{
|
||||
t_list *new_list;
|
||||
t_list *new_elem;
|
||||
void *new_content;
|
||||
|
||||
if (!lst || !f)
|
||||
return (NULL);
|
||||
new_list = NULL;
|
||||
while (lst)
|
||||
{
|
||||
new_elem = ft_lstnew(f(lst->content));
|
||||
new_content = f(lst->content);
|
||||
new_elem = ft_lstnew(new_content);
|
||||
if (!new_elem)
|
||||
{
|
||||
del(new_content);
|
||||
ft_lstclear(&new_list, del);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "libft.h"
|
||||
|
||||
static int count_words(char const *s, char c)
|
||||
@ -29,6 +30,16 @@ static int count_words(char const *s, char c)
|
||||
return (n);
|
||||
}
|
||||
|
||||
static void *free_arr(int n, char ***arr)
|
||||
{
|
||||
while (n-- > 0)
|
||||
{
|
||||
free((*arr)[n]);
|
||||
}
|
||||
free(*arr);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
char **ft_split(char const *s, char c)
|
||||
{
|
||||
char **result;
|
||||
@ -36,8 +47,6 @@ char **ft_split(char const *s, char c)
|
||||
int i;
|
||||
int j;
|
||||
|
||||
if (!s)
|
||||
return (NULL);
|
||||
result = malloc((count_words(s, c) + 1) * sizeof(char *));
|
||||
if (!result)
|
||||
return (NULL);
|
||||
@ -51,7 +60,9 @@ char **ft_split(char const *s, char c)
|
||||
while (s[i + j] && s[i + j] != c)
|
||||
j++;
|
||||
if (j)
|
||||
result[n++] = ft_substr(s, i, j);
|
||||
result[n] = ft_substr(s, i, j);
|
||||
if (j && !result[n++])
|
||||
return (free_arr(n, &result));
|
||||
i += j;
|
||||
}
|
||||
result[n] = NULL;
|
||||
|
||||
@ -14,15 +14,15 @@
|
||||
|
||||
size_t ft_strlcat(char *dst, const char *src, size_t size)
|
||||
{
|
||||
unsigned int src_len;
|
||||
unsigned int dst_len;
|
||||
unsigned int i;
|
||||
size_t src_len;
|
||||
size_t dst_len;
|
||||
size_t i;
|
||||
|
||||
src_len = ft_strlen(src);
|
||||
if (size == 0)
|
||||
return (src_len);
|
||||
dst_len = ft_strlen(dst);
|
||||
if (dst_len >= (long int) size)
|
||||
if (dst_len >= size)
|
||||
return (size + src_len);
|
||||
i = 0;
|
||||
while (src[i] && i < size - dst_len - 1)
|
||||
|
||||
@ -19,11 +19,11 @@ char *ft_strrchr(const char *s, int c)
|
||||
result = NULL;
|
||||
while (*s)
|
||||
{
|
||||
if (*(unsigned char *) s == (unsigned char) c)
|
||||
if (*s == (char) c)
|
||||
result = (char *) s;
|
||||
s++;
|
||||
}
|
||||
if ('\0' == c)
|
||||
if ('\0' == (char) c)
|
||||
result = (char *) s;
|
||||
return (result);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user