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