purge ancien files et mise a jour libftH
This commit is contained in:
BIN
.Makefile.swn
BIN
.Makefile.swn
Binary file not shown.
BIN
.Makefile.swo
BIN
.Makefile.swo
Binary file not shown.
BIN
.Makefile.swp
BIN
.Makefile.swp
Binary file not shown.
8
Makefile
8
Makefile
@@ -20,6 +20,7 @@ CFLAGS += -Wall -Wextra -Werror
|
||||
SRCS = ft_memset.c \
|
||||
ft_bzero.c \
|
||||
ft_memcpy.c \
|
||||
ft_memccpy.c \
|
||||
ft_memmove.c \
|
||||
ft_memchr.c \
|
||||
ft_memcmp.c \
|
||||
@@ -38,8 +39,8 @@ SRCS = ft_memset.c \
|
||||
ft_strlcat.c \
|
||||
ft_strnstr.c \
|
||||
ft_atoi.c \
|
||||
ft_strdup.c \
|
||||
ft_calloc.c \
|
||||
ft_strdup.c \
|
||||
\
|
||||
ft_substr.c \
|
||||
ft_strjoin.c \
|
||||
@@ -56,12 +57,12 @@ ODIR = ./builds
|
||||
OBJS = $(SRCS:%.c=$(ODIR)/%.o)
|
||||
|
||||
SRCB = ft_lstnew.c \
|
||||
ft_lstadd.c \
|
||||
ft_lstadd_front.c \
|
||||
ft_lstsize \
|
||||
ft_lstlast \
|
||||
ft_lstadd_back \
|
||||
ft_lstdelone.c \
|
||||
ft_lstdel.c \
|
||||
ft_lstclear.c \
|
||||
ft_lstiter.c \
|
||||
ft_lstmap.c \
|
||||
\
|
||||
@@ -81,7 +82,6 @@ SRCB = ft_lstnew.c \
|
||||
ft_strnequ.c \
|
||||
ft_strnew.c \
|
||||
ft_memalloc.c \
|
||||
ft_memccpy.c \
|
||||
ft_memdel.c \
|
||||
ft_putchar.c \
|
||||
ft_putendl.c \
|
||||
|
||||
223
OLDMakefile
223
OLDMakefile
@@ -1,223 +0,0 @@
|
||||
##
|
||||
# # ------------------------------------------------------
|
||||
# # utiliser le makefile pour creer une librairie statique
|
||||
# # ------------------------------------------------------
|
||||
##
|
||||
##
|
||||
## - - - - - - - -
|
||||
## compiler des .o
|
||||
## - - - - - - - -
|
||||
##
|
||||
##
|
||||
## quand on ecrit un programme il contient un main et les
|
||||
## fonctions dont le main a besoin (ex ft_putchar) :
|
||||
##
|
||||
### #include <unistd.h>
|
||||
###
|
||||
### void ft_putchar(char c)
|
||||
### {
|
||||
### write(1, &c, 1);
|
||||
### }
|
||||
###
|
||||
### int main()
|
||||
### {
|
||||
### ft_putchar('0');
|
||||
### return (0);
|
||||
### }
|
||||
##
|
||||
## on peut compiler ce fichier avec gcc en faisant :
|
||||
## gcc file.c
|
||||
## et ca sort un executable a.out
|
||||
## si on l'execute "./a.out" ca ecrit 0 dans la console
|
||||
##
|
||||
## mais pour ne pas reecrire a chaque fois ft_putchar
|
||||
## on peut la mettre dans une librairie qu'on inclue dans
|
||||
## le fichier qui l'utilise...
|
||||
## si on sort ft_putchar du fichier :
|
||||
##
|
||||
### int main()
|
||||
### {
|
||||
### ft_putchar('0');
|
||||
### return (0);
|
||||
### }
|
||||
##
|
||||
## et qu'on l'execute "gcc file.c" on va avoir une erreur
|
||||
## car file.c utilise ft_putchar mais gcc ne sait pas ce
|
||||
## que c'est, donc il faut qu'on le rajoute a la compilation
|
||||
## on peut par exemple l'ecrire dans un fichier ft_putchar.c
|
||||
##
|
||||
### #include <unistd.h>
|
||||
###
|
||||
### void ft_putchar(char c)
|
||||
### {
|
||||
### write(1, &c, 1);
|
||||
### }
|
||||
##
|
||||
## et compiler les deux :
|
||||
## gcc file.c ft_putchar.c
|
||||
##
|
||||
## ca fonctionne mais gcc doit a chaque fois recompiler
|
||||
## ft_putchar.c alors qu'il n'est pas modifie, donc on peut
|
||||
## le compiler une bonne fois pour toute et le rajouter a la
|
||||
## compilation finale quand on en a besoin sans que l'ordi
|
||||
## ait a tout retraduire dans son langage
|
||||
##
|
||||
## mais si on essaye de compiler ft_putchar seul
|
||||
## gcc ft_putchar.c
|
||||
## ca nous donne une erreur car pour compiler, gcc a besoin
|
||||
## de trouver un main !
|
||||
##
|
||||
## on va donc utiliser l'option -c pour
|
||||
## creer une fichier objet .o qui est deja traduit en langue
|
||||
## d'ordinateur et pret a etre rajoute a la compilation :
|
||||
## gcc -c ft_putchar.c --> donne ft_putchar.o
|
||||
## qu'on peut compiler avec le fichier qui contient le main :
|
||||
##
|
||||
## gcc file.c ft_putchar.o
|
||||
##
|
||||
## on a nos bouts de codes comme ft_putchar.o dans des fichiers
|
||||
## objets prets a etre ajoutes a la compilation du main
|
||||
##
|
||||
## on va maintenant voir comment faire une libraire qui contien
|
||||
## tous nos fichiers objets
|
||||
##
|
||||
##
|
||||
## - - - - - - - -
|
||||
## creer une lib.a
|
||||
## - - - - - - - -
|
||||
##
|
||||
##
|
||||
## pour mettre tous les fichiers .o dans un seul fichier .a
|
||||
## on utilise un programme d'archive ar avec les options rc
|
||||
## r indique d'inserer les .o en remplacant si necessaire
|
||||
## c de creer une nouvelle archive
|
||||
## le nom de l'archive doit commencer par lib et finir en .a :
|
||||
## ar rc nom_de_l'archive fichier_1.o fichier_2.o etc
|
||||
##
|
||||
## ar rc libtest.a ft_putchar.o
|
||||
##
|
||||
## on obtient un fichier libtest.a qui contient les fichiers
|
||||
## objets .o
|
||||
##
|
||||
## on peut l'utiliser a la compilation de cette manniere :
|
||||
##
|
||||
## gcc file.c -L. -ltest
|
||||
##
|
||||
## -L indique ou est la librairie (ici elle est dans le
|
||||
## dossier courant .)
|
||||
## -l indique son nom ("test" car on n'indique pas lib et .a)
|
||||
##
|
||||
##
|
||||
# # -----------------------------------------------
|
||||
# # ecrire un make file pour aider a la compilation
|
||||
# # -----------------------------------------------
|
||||
##
|
||||
##
|
||||
## exemple d'un makefilede basic
|
||||
##
|
||||
### NAME = libtest.h
|
||||
### CC = gcc
|
||||
### CFLAGS = -I. -c
|
||||
### SRCS = example01.c \
|
||||
### example02.c
|
||||
### OBJ = $(SRCS:.c=.o) |ecrit les fichiers .c en .o
|
||||
###
|
||||
### all: $(NAME) |make execute sa premiere regle NAME
|
||||
### $(NAME): $(OBJ) |NAME execute d'abord OBJ
|
||||
### ar -rc $@ $< |
|
||||
##
|
||||
## Make a des built-in pattern rules :
|
||||
## https://www.gnu.org/software/make/manual/html_node/Catalogue-of-Rules.html
|
||||
## par exemple pour construire des .o a partir de .c
|
||||
## qui sont utilisees par défaut si les variables
|
||||
## sont bien nomee (genre CC ou CFLAGS)
|
||||
##
|
||||
## cependant si on veut mettre les fichiers .o dans un
|
||||
## sous-fichier BUILDS il n'y a pas de built-in pattern
|
||||
## il faut donc l'ecrire nous-meme :
|
||||
##
|
||||
### NAME = libtest.h
|
||||
### CC = gcc
|
||||
### CFLAGS = -I.
|
||||
### SRCS = example01.c \
|
||||
### example02.c
|
||||
### ODIR = ./builds
|
||||
### OBJS = $(addprefix $(ODIR)/, $(SRCS:.c=.o))
|
||||
###
|
||||
### all: $(NAME)
|
||||
### $(NAME): $(OBJS)
|
||||
### ar -rc $@ $<
|
||||
###
|
||||
### $(ODIR)/%.o : %.c
|
||||
### $(COMPILE.c) -o $@ $<
|
||||
##
|
||||
## cette regle est appellee par $(OBJS) puisque
|
||||
## cette variable appelle la regle $(ODIR/file.o)
|
||||
##
|
||||
## COMPILE est une built-in variable qui execute
|
||||
## les regles CC et CFLAGS avec l'option -c
|
||||
##
|
||||
## % = "tout"
|
||||
## $@ = "la valeur a gauche de :"
|
||||
## $< = "la premiere valeur a droite de :"
|
||||
## $^ = "toutes les valeurs a droite de :"
|
||||
##
|
||||
##
|
||||
|
||||
|
||||
# ----------------------------------------------------------- #
|
||||
# #
|
||||
# variables modifiables #
|
||||
# #
|
||||
# ----------------------------------------------------------- #
|
||||
|
||||
NAME = libft.a
|
||||
|
||||
DEPS = libft.h
|
||||
|
||||
SDIR = ./src
|
||||
ODIR = ./build
|
||||
IDIR = ./includes
|
||||
|
||||
CC = gcc
|
||||
CFLAGS = -Wall -Wextra -Werror -I$(IDIR)
|
||||
|
||||
|
||||
# ----------------------------------------------------------- #
|
||||
# #
|
||||
# ne pas modifier en dessous #
|
||||
# #
|
||||
# ----------------------------------------------------------- #
|
||||
|
||||
## SUB_SDIR sera utilise pour creer les sous dossiers :
|
||||
## avec mkdir -p ODIR/subdir1 ODIR/subdir2 ODIR/subdir3 etc...
|
||||
## find $(SDIR) cherche recursivement tous le contenu de SDIR
|
||||
## -type d ne trouve que les dossiers, pas les fichiers
|
||||
## -mindepth 1 ne liste pas le dossier SDIR
|
||||
## subst transform arg1 en arg2 dans arg3
|
||||
|
||||
SUB_SDIR = $(shell find $(SDIR) -mindepth 1 -type d)
|
||||
SRC = $(shell find $(SDIR) -type f -not -name '.*' -name '*.c')
|
||||
OBJ = $(subst $(SDIR), $(ODIR), $(SRC:.c=.o))
|
||||
|
||||
all: $(ODIR) $(NAME)
|
||||
|
||||
$(ODIR):
|
||||
mkdir -p $(subst $(SDIR), $(ODIR), $(SUB_SDIR))
|
||||
|
||||
$(ODIR)/%.o: $(SDIR)/%.c
|
||||
$(COMPILE.c) -o $@ $<
|
||||
|
||||
$(NAME): $(OBJ)
|
||||
ar -rc $@ $^
|
||||
@ranlib $@
|
||||
|
||||
clean:
|
||||
/bin/rm -rf $(ODIR)
|
||||
|
||||
fclean: clean
|
||||
/bin/rm -f $(NAME)
|
||||
|
||||
re: fclean all
|
||||
|
||||
.PHONY: clean
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
OLDlibft.a
BIN
OLDlibft.a
Binary file not shown.
BIN
OLDlibft.fr.pdf
BIN
OLDlibft.fr.pdf
Binary file not shown.
@@ -1,18 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_isalnum.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:09:33 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/14 21:09:37 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
int ft_isalnum(int c)
|
||||
{
|
||||
return (ft_isalpha(c) || ft_isdigit(c));
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_isalpha.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:09:44 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/14 21:09:46 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
int ft_isalpha(int c)
|
||||
{
|
||||
return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_isascii.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:09:53 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/14 21:09:55 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
int ft_isascii(int c)
|
||||
{
|
||||
return (c >= 0 && c <= 127);
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_isdigit.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:10:01 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/14 21:10:05 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
int ft_isdigit(int c)
|
||||
{
|
||||
return (c >= '0' && c <= '9');
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_isprint.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:10:19 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/14 21:10:20 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
int ft_isprint(int c)
|
||||
{
|
||||
return (c >= 32 && c < 127);
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_issort.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/16 15:18:14 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/16 15:18:15 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
int ft_issort(int *tab, int length, int (*f)(int, int))
|
||||
{
|
||||
int i;
|
||||
|
||||
i = -1;
|
||||
if (!tab)
|
||||
return (0);
|
||||
while (++i < length - 1)
|
||||
if (f(tab[i], tab[i + 1]) > 0)
|
||||
return (0);
|
||||
return (1);
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_lstadd.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:10:33 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/16 13:58:54 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void ft_lstadd(t_list **alst, t_list *new)
|
||||
{
|
||||
new->next = *alst;
|
||||
*alst = new;
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_lstdel.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:10:49 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/16 13:59:10 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void ft_lstdel(t_list **alst, void (*del)(void *, size_t))
|
||||
{
|
||||
if ((*alst)->next)
|
||||
ft_lstdel(&(*alst)->next, del);
|
||||
ft_lstdelone(alst, del);
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_lstdelone.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:10:59 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/16 13:59:22 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void ft_lstdelone(t_list **alst, void (*del)(void *, size_t))
|
||||
{
|
||||
del((*alst)->content, (*alst)->content_size);
|
||||
free(*alst);
|
||||
*alst = NULL;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_lstiter.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:11:14 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/16 14:01:10 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void ft_lstiter(t_list *lst, void (*f)(t_list *elem))
|
||||
{
|
||||
if (!lst)
|
||||
return ;
|
||||
if (lst->next)
|
||||
ft_lstiter(lst->next, f);
|
||||
f(lst);
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_lstmap.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:11:20 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/16 14:01:23 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
|
||||
{
|
||||
t_list *new;
|
||||
t_list *tmp;
|
||||
|
||||
if (!lst)
|
||||
return (NULL);
|
||||
tmp = f(lst);
|
||||
new = tmp;
|
||||
while (lst->next)
|
||||
{
|
||||
lst = lst->next;
|
||||
if (!(tmp->next = f(lst)))
|
||||
{
|
||||
free(tmp->next);
|
||||
return (NULL);
|
||||
}
|
||||
tmp = tmp->next;
|
||||
}
|
||||
return (new);
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_lstnew.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:11:42 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/16 14:01:36 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
t_list *ft_lstnew(void const *content, size_t content_size)
|
||||
{
|
||||
t_list *lst;
|
||||
|
||||
if (!(lst = (t_list *)malloc(sizeof(*lst))))
|
||||
return (NULL);
|
||||
if (!content)
|
||||
{
|
||||
lst->content = NULL;
|
||||
lst->content_size = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!(lst->content = malloc(content_size)))
|
||||
return (NULL);
|
||||
ft_memcpy(lst->content, content, content_size);
|
||||
lst->content_size = content_size;
|
||||
}
|
||||
lst->next = NULL;
|
||||
return (lst);
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_memalloc.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:11:58 by hulamy #+# #+# */
|
||||
/* Updated: 2019/04/03 15:42:06 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
/*
|
||||
** allocate size byte of memory and return a pointer to the allocated memory
|
||||
*/
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void *ft_memalloc(size_t size)
|
||||
{
|
||||
void *tmp;
|
||||
|
||||
if (!(tmp = malloc(size)))
|
||||
return (NULL);
|
||||
ft_bzero(tmp, size);
|
||||
return (tmp);
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_memccpy.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:12:10 by hulamy #+# #+# */
|
||||
/* Updated: 2019/04/03 15:42:41 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
/*
|
||||
** copy string until character is found and place cursor in dst
|
||||
** after last byte copied
|
||||
*/
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void *ft_memccpy(void *dst, const void *src, int c, size_t n)
|
||||
{
|
||||
unsigned char *dest;
|
||||
unsigned char *sourc;
|
||||
size_t i;
|
||||
|
||||
i = -1;
|
||||
dest = (unsigned char *)dst;
|
||||
sourc = (unsigned char *)src;
|
||||
while (++i < n)
|
||||
{
|
||||
dest[i] = sourc[i];
|
||||
if (sourc[i] == (unsigned char)c)
|
||||
return (dst + i + 1);
|
||||
}
|
||||
return (NULL);
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_memchr.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:12:32 by hulamy #+# #+# */
|
||||
/* Updated: 2019/04/03 15:43:14 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
/*
|
||||
** locate character in string and return its position
|
||||
*/
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void *ft_memchr(const void *s, int c, size_t n)
|
||||
{
|
||||
unsigned char *sbis;
|
||||
size_t i;
|
||||
|
||||
sbis = (unsigned char *)s;
|
||||
i = -1;
|
||||
while (++i < n)
|
||||
if (sbis[i] == (unsigned char)c)
|
||||
return ((void *)sbis + i);
|
||||
return (NULL);
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_memcmp.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:13:04 by hulamy #+# #+# */
|
||||
/* Updated: 2019/04/03 15:43:41 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
/*
|
||||
** compare two bytes strings (doesnt recognize a null terminated string)
|
||||
** and return value of difference between first two different character
|
||||
*/
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
int ft_memcmp(const void *s1, const void *s2, size_t n)
|
||||
{
|
||||
unsigned char *frst;
|
||||
unsigned char *scnd;
|
||||
size_t i;
|
||||
|
||||
i = 0;
|
||||
frst = (unsigned char *)s1;
|
||||
scnd = (unsigned char *)s2;
|
||||
while (i < n && frst[i] == scnd[i])
|
||||
i++;
|
||||
return ((i == n) ? 0 : frst[i] - scnd[i]);
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_memcpy.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:13:17 by hulamy #+# #+# */
|
||||
/* Updated: 2019/04/03 15:43:56 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
/*
|
||||
** copy n characters from src to dst and return dst
|
||||
*/
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void *ft_memcpy(void *dst, const void *src, size_t n)
|
||||
{
|
||||
size_t i;
|
||||
char *ptr;
|
||||
char *ptr2;
|
||||
|
||||
ptr = (char *)dst;
|
||||
ptr2 = (char *)src;
|
||||
i = -1;
|
||||
while (++i < n)
|
||||
ptr[i] = ptr2[i];
|
||||
return (dst);
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_memdel.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:13:26 by hulamy #+# #+# */
|
||||
/* Updated: 2019/04/03 15:44:12 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
/*
|
||||
** free memory
|
||||
*/
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void ft_memdel(void **ap)
|
||||
{
|
||||
if (ap && *ap)
|
||||
{
|
||||
free(*ap);
|
||||
*ap = 0;
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_memmove.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:13:34 by hulamy #+# #+# */
|
||||
/* Updated: 2019/04/03 15:44:28 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
/*
|
||||
** copy n characters from src to dst in a non destructive way and return dst
|
||||
*/
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void *ft_memmove(void *dst, const void *src, size_t len)
|
||||
{
|
||||
int i;
|
||||
char *source;
|
||||
char *dest;
|
||||
|
||||
i = -1;
|
||||
source = (char *)src;
|
||||
dest = (char *)dst;
|
||||
if (source < dest)
|
||||
while ((int)(--len) >= 0)
|
||||
dest[len] = source[len];
|
||||
else
|
||||
while (++i < (int)len)
|
||||
dest[i] = source[i];
|
||||
return (dst);
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_memset.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:13:41 by hulamy #+# #+# */
|
||||
/* Updated: 2019/04/03 15:44:44 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
/*
|
||||
** copy n time a character in a string and return the string
|
||||
*/
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void *ft_memset(void *b, int c, size_t len)
|
||||
{
|
||||
char *ptr;
|
||||
size_t i;
|
||||
|
||||
ptr = (char *)b;
|
||||
i = 0;
|
||||
while (i < len)
|
||||
ptr[i++] = c;
|
||||
return (b);
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_putchar.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:14:00 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/14 21:14:01 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void ft_putchar(char c)
|
||||
{
|
||||
write(1, &c, 1);
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ft_putchar_fd.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2018/11/14 21:14:14 by hulamy #+# #+# */
|
||||
/* Updated: 2018/11/14 21:14:15 by hulamy ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "libft.h"
|
||||
|
||||
void ft_putchar_fd(char c, int fd)
|
||||
{
|
||||
write(fd, &c, 1);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user