From d3ec77154d06d504bc414fb809cafd3ce5a22684 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 8 Nov 2016 16:28:32 +0100 Subject: [PATCH 01/10] lst functions improvements --- libftasm/includes/libft.h | 2 +- libftasm/includes/lst.h | 3 ++- libftasm/src/ft_printf/lib_pad.c | 2 +- libftasm/src/ft_printf/lib_pad_sharp.c | 2 +- libftasm/src/lst/ft_lst_cfree.c | 2 +- libftasm/src/lst/ft_lst_delif.c | 31 +++++++++----------------- libftasm/src/lst/ft_lst_delsub.c | 2 +- libftasm/src/lst/ft_lst_removeif.c | 5 ++--- libftasm/src/lst/ft_lstdel.c | 6 ++--- libftasm/src/lst/ft_lstdelone.c | 4 ++-- libftasm/src/mem/ft_memalloc.c | 2 +- libftasm/src/mem/ft_memcpy.c | 2 +- libftasm/src/time/ft_time_isrecent.c | 4 ++-- 13 files changed, 29 insertions(+), 38 deletions(-) diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index 00637c9d..c6e8c0b6 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ -/* Updated: 2016/11/07 15:46:27 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 11:25:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/includes/lst.h b/libftasm/includes/lst.h index 241962dd..3b851fff 100644 --- a/libftasm/includes/lst.h +++ b/libftasm/includes/lst.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:27:46 by jhalford #+# #+# */ -/* Updated: 2016/11/07 13:31:28 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 11:25:38 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,6 +23,7 @@ struct s_list typedef struct s_list t_list; t_list *ft_lstnew(void const *content, size_t content_size); +void ft_lstdel(t_list **alst, void (*del)(void *, size_t)); void ft_lstdelone(t_list **alst, void (*del)(void *, size_t)); void ft_lstadd(t_list **alst, t_list *new); void ft_lstiter(t_list *lst, void (*f)(t_list *elem)); diff --git a/libftasm/src/ft_printf/lib_pad.c b/libftasm/src/ft_printf/lib_pad.c index 0ec1d1bf..f2efe4b8 100644 --- a/libftasm/src/ft_printf/lib_pad.c +++ b/libftasm/src/ft_printf/lib_pad.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:45 by jhalford #+# #+# */ -/* Updated: 2016/11/07 16:58:00 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 10:18:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/ft_printf/lib_pad_sharp.c b/libftasm/src/ft_printf/lib_pad_sharp.c index c1d79a05..e6d57063 100644 --- a/libftasm/src/ft_printf/lib_pad_sharp.c +++ b/libftasm/src/ft_printf/lib_pad_sharp.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:48 by jhalford #+# #+# */ -/* Updated: 2016/11/07 16:58:09 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 10:18:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/lst/ft_lst_cfree.c b/libftasm/src/lst/ft_lst_cfree.c index 1cd33c11..3297a219 100644 --- a/libftasm/src/lst/ft_lst_cfree.c +++ b/libftasm/src/lst/ft_lst_cfree.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:09:10 by jhalford #+# #+# */ -/* Updated: 2016/11/04 11:09:11 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 11:09:49 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/lst/ft_lst_delif.c b/libftasm/src/lst/ft_lst_delif.c index 03fe045e..2e319aa9 100644 --- a/libftasm/src/lst/ft_lst_delif.c +++ b/libftasm/src/lst/ft_lst_delif.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:09:12 by jhalford #+# #+# */ -/* Updated: 2016/11/04 11:47:22 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 15:00:24 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,32 +14,23 @@ void ft_lst_delif( t_list **alst, - void *data_ref, int (*cmp)(), + void *data_ref, + int (*cmp)(), void (*del)(void *, size_t)) { - t_list *last; - t_list *current; t_list *tmp; + t_list **indirect; - last = NULL; - current = *alst; - tmp = NULL; - while (current) + indirect = alst; + while (*indirect) { - if ((*cmp)(current->content, data_ref) == 0) + if ((*cmp)((*indirect)->content, data_ref) == 0) { - if (current == *alst) - *alst = current->next; - else - last->next = current->next; - tmp = current; - current = current->next; - ft_lstdelone(&tmp, del); + tmp = (*indirect); + (*indirect) = (*indirect)->next; + (*del)(tmp->content, tmp->content_size); } else - { - last = current; - current = current->next; - } + indirect = &(*indirect)->next; } } diff --git a/libftasm/src/lst/ft_lst_delsub.c b/libftasm/src/lst/ft_lst_delsub.c index baa77125..005e9dd2 100644 --- a/libftasm/src/lst/ft_lst_delsub.c +++ b/libftasm/src/lst/ft_lst_delsub.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:09:15 by jhalford #+# #+# */ -/* Updated: 2016/11/04 12:00:41 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 13:36:17 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/lst/ft_lst_removeif.c b/libftasm/src/lst/ft_lst_removeif.c index 85874721..747c15dc 100644 --- a/libftasm/src/lst/ft_lst_removeif.c +++ b/libftasm/src/lst/ft_lst_removeif.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:09:30 by jhalford #+# #+# */ -/* Updated: 2016/11/04 13:07:22 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 11:52:33 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,15 +17,14 @@ t_list *ft_lst_removeif(t_list **alst, void *data_ref, int (*cmp)()) t_list *tmp; t_list **indirect; - tmp = NULL; indirect = alst; while (*indirect) { if ((*cmp)((*indirect)->content, data_ref) == 0) { tmp = (*indirect); - tmp->next = NULL; (*indirect) = (*indirect)->next; + tmp->next = NULL; return (tmp); } indirect = &(*indirect)->next; diff --git a/libftasm/src/lst/ft_lstdel.c b/libftasm/src/lst/ft_lstdel.c index b8056396..4d4e1312 100644 --- a/libftasm/src/lst/ft_lstdel.c +++ b/libftasm/src/lst/ft_lstdel.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 15:18:57 by jhalford #+# #+# */ -/* Updated: 2016/11/03 16:40:21 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 13:36:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ void ft_lstdel(t_list **alst, void (*del)(void *, size_t)) { - if ((*alst)->next) + if (alst && *alst && (*alst)->next) ft_lstdel(&(*alst)->next, del); - ft_lstdelone(&(*alst), del); + ft_lstdelone(alst, del); } diff --git a/libftasm/src/lst/ft_lstdelone.c b/libftasm/src/lst/ft_lstdelone.c index 1aa876b5..d9b05960 100644 --- a/libftasm/src/lst/ft_lstdelone.c +++ b/libftasm/src/lst/ft_lstdelone.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:15 by jhalford #+# #+# */ -/* Updated: 2016/11/03 15:15:51 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 13:45:13 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ void ft_lstdelone(t_list **alst, void (*del)(void *, size_t)) { - if (*alst) + if (alst && *alst) { if (del) (*del)((*alst)->content, (*alst)->content_size); diff --git a/libftasm/src/mem/ft_memalloc.c b/libftasm/src/mem/ft_memalloc.c index a94572ed..bb1bd18d 100644 --- a/libftasm/src/mem/ft_memalloc.c +++ b/libftasm/src/mem/ft_memalloc.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:25 by jhalford #+# #+# */ -/* Updated: 2016/11/03 14:57:25 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 13:15:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/mem/ft_memcpy.c b/libftasm/src/mem/ft_memcpy.c index 38a72390..37e9051f 100644 --- a/libftasm/src/mem/ft_memcpy.c +++ b/libftasm/src/mem/ft_memcpy.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:31 by jhalford #+# #+# */ -/* Updated: 2016/11/07 13:10:31 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 13:17:29 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/time/ft_time_isrecent.c b/libftasm/src/time/ft_time_isrecent.c index 032feb58..0a01102d 100644 --- a/libftasm/src/time/ft_time_isrecent.c +++ b/libftasm/src/time/ft_time_isrecent.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 18:01:04 by jhalford #+# #+# */ -/* Updated: 2016/11/03 18:01:19 by jhalford ### ########.fr */ +/* Updated: 2016/11/08 16:12:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ int ft_time_isrecent(time_t event) time_t now; now = time(&now); - if (now - event > 0 && now - event < 6 * 365 / 12 * 24 * 60 * 60) + if (now - event >= 0 && now - event <= 6 * 365 / 12 * 24 * 60 * 60) return (1); else return (0); From ece5c61bea5cc8ec61ed548cbb4ed03ba0f19b8c Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 10 Nov 2016 12:28:45 +0100 Subject: [PATCH 02/10] sstrfree --- libftasm/includes/libft.h | 5 +++-- libftasm/src/sstr/ft_sstradd.c | 5 +++-- libftasm/src/sstr/ft_sstrfree.c | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 libftasm/src/sstr/ft_sstrfree.c diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index c6e8c0b6..b51bd194 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ -/* Updated: 2016/11/08 11:25:08 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 12:14:04 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -106,11 +106,12 @@ size_t ft_uilen(unsigned int n); size_t ft_lllen(long long n); size_t ft_lllen_base(long long n, int base); +char **ft_sstradd(char **list, char *new); void ft_sstrsort(char **list, int size, int (*cmp)()); void ft_sstrprint(char **list, char sep); char **ft_sstrdup(char **list); -char **ft_sstradd(char **list, char *new); void ft_sstrdel(char **sstr, int index); +void ft_sstrfree(char **sstr); int ft_time_isrecent(time_t event); diff --git a/libftasm/src/sstr/ft_sstradd.c b/libftasm/src/sstr/ft_sstradd.c index 4ec7bac9..e88b1651 100644 --- a/libftasm/src/sstr/ft_sstradd.c +++ b/libftasm/src/sstr/ft_sstradd.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 18:03:58 by jhalford #+# #+# */ -/* Updated: 2016/11/03 18:04:23 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 12:15:23 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,7 +22,8 @@ char **ft_sstradd(char **sstr, char *new) size = 0; while (sstr && sstr[size]) size++; - newlist = (char **)malloc(sizeof(char *) * (size + 3)); + if (!(newlist = (char **)malloc(sizeof(char *) * (size + 2)))) + return (NULL); while (sstr && *sstr) newlist[i++] = *sstr++; newlist[i++] = new; diff --git a/libftasm/src/sstr/ft_sstrfree.c b/libftasm/src/sstr/ft_sstrfree.c new file mode 100644 index 00000000..05686e2b --- /dev/null +++ b/libftasm/src/sstr/ft_sstrfree.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_sstrfree.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/08 17:01:24 by jhalford #+# #+# */ +/* Updated: 2016/11/10 12:11:20 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_sstrfree(char **sstr) +{ + int i; + + i = 0; + while (sstr[i]) + { + ft_strdel(sstr + i); + i++; + } +} From b3e78bb758f4771dbb888673ea3a2c077218404c Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 10 Nov 2016 17:07:05 +0100 Subject: [PATCH 03/10] env subdir for getenv --- libftasm/includes/libft.h | 12 ++++++++- libftasm/src/env/ft_getenv.c | 27 +++++++++++++++++++ libftasm/src/ft_printf/ft_conversion.c | 2 +- .../src/ft_printf/ft_fmt_validate_flags.c | 7 ++--- libftasm/src/ft_printf/ft_printf.c | 2 +- libftasm/src/ft_printf/ft_printf_parse.c | 2 +- libftasm/src/str/ft_strcat.c | 4 +-- libftasm/src/str/ft_strjoin.c | 2 +- libftasm/src/str/ft_strlen.c | 2 +- 9 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 libftasm/src/env/ft_getenv.c diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index b51bd194..37fc15c2 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ -/* Updated: 2016/11/10 12:14:04 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 14:40:54 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,6 +31,14 @@ # define FT_MAX(a, b) ((a) > (b) ? (a) : (b)) # define FT_DIST(a, b) (FT_ABS((a) - (b))) +typedef struct s_stof t_stof; + +struct s_stof +{ + char *name; + int (*f)(); +}; + void ft_debug(void); void *ft_memset(void *b, int c, size_t len); @@ -118,4 +126,6 @@ int ft_time_isrecent(time_t event); char *ft_path_notdir(char *path); int ft_printf(const char *format, ...); + +char *ft_getenv(char **env, char *key); #endif diff --git a/libftasm/src/env/ft_getenv.c b/libftasm/src/env/ft_getenv.c new file mode 100644 index 00000000..3c733605 --- /dev/null +++ b/libftasm/src/env/ft_getenv.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_getenv.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/10 14:30:00 by jhalford #+# #+# */ +/* Updated: 2016/11/10 14:30:27 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_getenv(char **env, char *key) +{ + if (!env) + return (NULL); + while (*env) + { + /* ft_printf("%s\n", env[i]); */ + if (ft_strcmp(*env, key) == '=') + return (*env + ft_strlen(key) + 1); + env++; + } + return (NULL); +} diff --git a/libftasm/src/ft_printf/ft_conversion.c b/libftasm/src/ft_printf/ft_conversion.c index 3dbd8429..e1908f19 100644 --- a/libftasm/src/ft_printf/ft_conversion.c +++ b/libftasm/src/ft_printf/ft_conversion.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:31:48 by jhalford #+# #+# */ -/* Updated: 2016/11/07 16:56:28 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 12:59:25 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/ft_printf/ft_fmt_validate_flags.c b/libftasm/src/ft_printf/ft_fmt_validate_flags.c index 82962cf4..cba3f389 100644 --- a/libftasm/src/ft_printf/ft_fmt_validate_flags.c +++ b/libftasm/src/ft_printf/ft_fmt_validate_flags.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 16:53:07 by jhalford #+# #+# */ -/* Updated: 2016/11/07 17:25:47 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 13:02:07 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,12 +38,15 @@ static void ft_fmt_validate_flag_conv(t_fmt *fmt) i = 0; flag_ptr = fmt->flags; + while (fmt->conversion != g_convs[i].id) + i++; while (*flag_ptr) { flag = *flag_ptr; if (!ft_strchr(g_convs[i].allowed_flags, flag)) { ft_fmt_error_flag_conv(flag, fmt->conversion); + /* ft_printf("allowed flags:%s\n", g_convs[i].allowed_flags); */ if (flag == '#') *flag_ptr = '.'; } @@ -56,8 +59,6 @@ void ft_fmt_validate_flags(t_fmt *fmt) int i; i = 0; - while (fmt->conversion != g_convs[i].id) - i++; ft_fmt_validate_flag_conv(fmt); ft_fmt_validate_flag_flag(fmt); } diff --git a/libftasm/src/ft_printf/ft_printf.c b/libftasm/src/ft_printf/ft_printf.c index 3f37644a..5c79a190 100644 --- a/libftasm/src/ft_printf/ft_printf.c +++ b/libftasm/src/ft_printf/ft_printf.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:27 by jhalford #+# #+# */ -/* Updated: 2016/11/07 16:20:10 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 12:59:41 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/ft_printf/ft_printf_parse.c b/libftasm/src/ft_printf/ft_printf_parse.c index 86a6cf74..fe3d2674 100644 --- a/libftasm/src/ft_printf/ft_printf_parse.c +++ b/libftasm/src/ft_printf/ft_printf_parse.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:24 by jhalford #+# #+# */ -/* Updated: 2016/11/07 16:56:47 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 12:59:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/str/ft_strcat.c b/libftasm/src/str/ft_strcat.c index b2947ea8..f376d850 100644 --- a/libftasm/src/str/ft_strcat.c +++ b/libftasm/src/str/ft_strcat.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/08/07 10:56:53 by jhalford #+# #+# */ -/* Updated: 2016/08/20 23:16:44 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 12:18:00 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,7 +19,7 @@ char *ft_strcat(char *s1, const char *s2) size = ft_strlen(s1); j = 0; - while (s2[j] != '\0') + while (s2 && s2[j]) { s1[size + j] = s2[j]; j++; diff --git a/libftasm/src/str/ft_strjoin.c b/libftasm/src/str/ft_strjoin.c index 58a57d14..943ded51 100644 --- a/libftasm/src/str/ft_strjoin.c +++ b/libftasm/src/str/ft_strjoin.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:58:18 by jhalford #+# #+# */ -/* Updated: 2016/11/03 14:58:18 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 10:14:09 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/str/ft_strlen.c b/libftasm/src/str/ft_strlen.c index 4075825e..536f2bcf 100644 --- a/libftasm/src/str/ft_strlen.c +++ b/libftasm/src/str/ft_strlen.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:58:22 by jhalford #+# #+# */ -/* Updated: 2016/11/03 14:58:23 by jhalford ### ########.fr */ +/* Updated: 2016/11/10 10:14:18 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 3eef8e3f7b3439406cca5caa52059dcdd5842dec Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 11 Nov 2016 20:57:21 +0100 Subject: [PATCH 04/10] realloc, havent tested it yet :OOOO --- libftasm/includes/libft.h | 4 +++- libftasm/src/mem/ft_memalloc.c | 2 +- libftasm/src/mem/ft_memchr.c | 2 +- libftasm/src/mem/ft_memcpy.c | 2 +- libftasm/src/mem/ft_memmove.c | 2 +- libftasm/src/mem/ft_realloc.c | 23 +++++++++++++++++++++++ 6 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 libftasm/src/mem/ft_realloc.c diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index 37fc15c2..311a94f2 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ -/* Updated: 2016/11/10 14:40:54 by jhalford ### ########.fr */ +/* Updated: 2016/11/11 17:47:12 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -128,4 +128,6 @@ char *ft_path_notdir(char *path); int ft_printf(const char *format, ...); char *ft_getenv(char **env, char *key); + +void *ft_realloc(void *data, int size) #endif diff --git a/libftasm/src/mem/ft_memalloc.c b/libftasm/src/mem/ft_memalloc.c index bb1bd18d..505043f8 100644 --- a/libftasm/src/mem/ft_memalloc.c +++ b/libftasm/src/mem/ft_memalloc.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:25 by jhalford #+# #+# */ -/* Updated: 2016/11/08 13:15:50 by jhalford ### ########.fr */ +/* Updated: 2016/11/11 17:40:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/mem/ft_memchr.c b/libftasm/src/mem/ft_memchr.c index 47eccf3b..96ddf009 100644 --- a/libftasm/src/mem/ft_memchr.c +++ b/libftasm/src/mem/ft_memchr.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:28 by jhalford #+# #+# */ -/* Updated: 2016/11/03 14:57:29 by jhalford ### ########.fr */ +/* Updated: 2016/11/11 17:41:21 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/mem/ft_memcpy.c b/libftasm/src/mem/ft_memcpy.c index 37e9051f..0b95291e 100644 --- a/libftasm/src/mem/ft_memcpy.c +++ b/libftasm/src/mem/ft_memcpy.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:31 by jhalford #+# #+# */ -/* Updated: 2016/11/08 13:17:29 by jhalford ### ########.fr */ +/* Updated: 2016/11/11 17:39:00 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/mem/ft_memmove.c b/libftasm/src/mem/ft_memmove.c index 996c5cb3..904d1aca 100644 --- a/libftasm/src/mem/ft_memmove.c +++ b/libftasm/src/mem/ft_memmove.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:34 by jhalford #+# #+# */ -/* Updated: 2016/11/07 13:46:42 by jhalford ### ########.fr */ +/* Updated: 2016/11/11 17:41:14 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/mem/ft_realloc.c b/libftasm/src/mem/ft_realloc.c new file mode 100644 index 00000000..33f6c10c --- /dev/null +++ b/libftasm/src/mem/ft_realloc.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_realloc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/11 17:37:53 by jhalford #+# #+# */ +/* Updated: 2016/11/11 17:41:30 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_realloc(void *data, int size) +{ + void *new; + + new = ft_memalloc(size); + ft_memcpy(new, data, size); + ft_memdel(&data); + return (new); +} From 50f9e3d0d0bd427f8ac8b7eb2d0a8da888674ce8 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sat, 12 Nov 2016 23:54:09 +0100 Subject: [PATCH 05/10] naming convention change for dlst, btree functions --- libftasm/includes/btree.h | 30 ++++++++++++ libftasm/includes/dlst.h | 13 +++--- libftasm/includes/libft.h | 3 +- libftasm/src/btree/btree_apply_by_level.c | 46 +++++++++++++++++++ libftasm/src/btree/btree_apply_infix.c | 23 ++++++++++ libftasm/src/btree/btree_apply_prefix.c | 22 +++++++++ libftasm/src/btree/btree_apply_suffix.c | 23 ++++++++++ libftasm/src/btree/btree_create_node.c | 24 ++++++++++ libftasm/src/btree/btree_insert_data.c | 42 +++++++++++++++++ libftasm/src/btree/btree_level_count.c | 21 +++++++++ libftasm/src/btree/btree_search_item.c | 30 ++++++++++++ ...ft_dlst_add_after.c => ft_dlstadd_after.c} | 2 +- ..._dlst_add_before.c => ft_dlstadd_before.c} | 2 +- libftasm/src/dlst/ft_dlstdel.c | 11 +++++ .../{ft_dlst_delone.c => ft_dlstdelone.c} | 2 +- .../dlst/{ft_dlst_last.c => ft_dlstlast.c} | 2 +- .../src/dlst/{ft_dlst_new.c => ft_dlstnew.c} | 2 +- .../dlst/{ft_dlst_size.c => ft_dlstsize.c} | 2 +- libftasm/src/get_next_line/get_next_line.c | 4 +- libftasm/src/mem/ft_realloc.c | 4 +- libftasm/src/path/ft_path_findfile.c | 0 21 files changed, 292 insertions(+), 16 deletions(-) create mode 100644 libftasm/includes/btree.h create mode 100644 libftasm/src/btree/btree_apply_by_level.c create mode 100644 libftasm/src/btree/btree_apply_infix.c create mode 100644 libftasm/src/btree/btree_apply_prefix.c create mode 100644 libftasm/src/btree/btree_apply_suffix.c create mode 100644 libftasm/src/btree/btree_create_node.c create mode 100644 libftasm/src/btree/btree_insert_data.c create mode 100644 libftasm/src/btree/btree_level_count.c create mode 100644 libftasm/src/btree/btree_search_item.c rename libftasm/src/dlst/{ft_dlst_add_after.c => ft_dlstadd_after.c} (95%) rename libftasm/src/dlst/{ft_dlst_add_before.c => ft_dlstadd_before.c} (95%) create mode 100644 libftasm/src/dlst/ft_dlstdel.c rename libftasm/src/dlst/{ft_dlst_delone.c => ft_dlstdelone.c} (94%) rename libftasm/src/dlst/{ft_dlst_last.c => ft_dlstlast.c} (96%) rename libftasm/src/dlst/{ft_dlst_new.c => ft_dlstnew.c} (95%) rename libftasm/src/dlst/{ft_dlst_size.c => ft_dlstsize.c} (97%) create mode 100644 libftasm/src/path/ft_path_findfile.c diff --git a/libftasm/includes/btree.h b/libftasm/includes/btree.h new file mode 100644 index 00000000..ab5b587e --- /dev/null +++ b/libftasm/includes/btree.h @@ -0,0 +1,30 @@ +#ifndef BTREE_H +# define BTREE_H + +#include "libft.h" + +typedef struct s_btree t_btree; + +struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +}; + +t_btree *btree_create_node(void *item); + +void btree_insert_data( + t_btree **root, + void *item, + int (*cmpf)(void *, void *)); + +void *btree_search_item(t_btree *root, + void *data_ref, int (*cmpf)(void *, void *)); + +int btree_level_count(t_btree *root); +void btree_apply_prefix(t_btree *root, void (*applyf)(void *)); +void btree_apply_infix(t_btree *root, void (*applyf)(void *)); +void btree_apply_suffix(t_btree *root, void (*applyf)(void *)); + +#endif diff --git a/libftasm/includes/dlst.h b/libftasm/includes/dlst.h index ffcf518f..42d73729 100644 --- a/libftasm/includes/dlst.h +++ b/libftasm/includes/dlst.h @@ -23,12 +23,13 @@ struct s_dlist typedef struct s_dlist t_dlist; -void ft_dlst_add_after(t_dlist **alst, t_dlist *new); -void ft_dlst_add_before(t_dlist **alst, t_dlist *new); -void ft_dlst_delone(t_dlist **alst, void (*del)(void *, size_t)); -int ft_dlst_size(t_dlist *list); -t_dlist *ft_dlst_new(void const *content, size_t content_size); -t_dlist *ft_dlst_last(t_dlist *list); +void ft_dlstadd_after(t_dlist **alst, t_dlist *new); +void ft_dlstadd_before(t_dlist **alst, t_dlist *new); +void ft_dlstdel(t_dlist **alst, void (*del)(void *, size_t)); +void ft_dlstdelone(t_dlist **alst, void (*del)(void *, size_t)); +int ft_dlstsize(t_dlist *list); +t_dlist *ft_dlstnew(void const *content, size_t content_size); +t_dlist *ft_dlstlast(t_dlist *list); char *ft_dlsttostr(t_dlist *list); #endif diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index 311a94f2..39f21ec7 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -16,6 +16,7 @@ # include "ft_xattr.h" # include "lst.h" # include "dlst.h" +# include "btree.h" # include # include @@ -129,5 +130,5 @@ int ft_printf(const char *format, ...); char *ft_getenv(char **env, char *key); -void *ft_realloc(void *data, int size) +void *ft_realloc(void *data, int size); #endif diff --git a/libftasm/src/btree/btree_apply_by_level.c b/libftasm/src/btree/btree_apply_by_level.c new file mode 100644 index 00000000..0cb2c4bd --- /dev/null +++ b/libftasm/src/btree/btree_apply_by_level.c @@ -0,0 +1,46 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_apply_by_level.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/08/19 12:06:15 by jhalford #+# #+# */ +/* Updated: 2016/08/23 17:49:17 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +int g_level = 0; + +static void btree_apply_to_level( + t_btree *root, + int level, + int is_first_elem, + void (*applyf)(void *item, int current_level, int is_first_elem)) +{ + if (level == g_level) + { + (*applyf)(root->item, level, is_first_elem); + return ; + } + if (root->left) + btree_apply_to_level(root->left, level + 1, is_first_elem, applyf); + if (root->right) + btree_apply_to_level(root->right, level + 1, 0, applyf); +} + +void btree_apply_by_level( + t_btree *root, + void (*applyf)(void *item, int current_level, int is_first_elem)) +{ + int height; + + height = btree_level_count(root); + while (g_level < height) + { + btree_apply_to_level(root, 0, 1, applyf); + g_level++; + } +} diff --git a/libftasm/src/btree/btree_apply_infix.c b/libftasm/src/btree/btree_apply_infix.c new file mode 100644 index 00000000..65d2b5d6 --- /dev/null +++ b/libftasm/src/btree/btree_apply_infix.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_create_node.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ +/* Updated: 2016/08/18 21:10:05 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +void btree_apply_infix(t_btree *root, void (*applyf)(void *)) +{ + if (root->left) + btree_apply_infix(root->left, applyf); + (*applyf)(root->item); + if (root->right) + btree_apply_infix(root->right, applyf); + return ; +} diff --git a/libftasm/src/btree/btree_apply_prefix.c b/libftasm/src/btree/btree_apply_prefix.c new file mode 100644 index 00000000..e7e4332c --- /dev/null +++ b/libftasm/src/btree/btree_apply_prefix.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_create_node.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ +/* Updated: 2016/08/18 21:06:44 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +void btree_apply_prefix(t_btree *root, void (*applyf)(void *)) +{ + (*applyf)(root->item); + if (root->left) + btree_apply_prefix(root->left, applyf); + if (root->right) + btree_apply_prefix(root->right, applyf); +} diff --git a/libftasm/src/btree/btree_apply_suffix.c b/libftasm/src/btree/btree_apply_suffix.c new file mode 100644 index 00000000..9cf8b4ea --- /dev/null +++ b/libftasm/src/btree/btree_apply_suffix.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_create_node.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ +/* Updated: 2016/08/18 21:11:19 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +void btree_apply_suffix(t_btree *root, void (*applyf)(void *)) +{ + if (root->left) + btree_apply_suffix(root->left, applyf); + if (root->right) + btree_apply_suffix(root->right, applyf); + (*applyf)(root->item); + return ; +} diff --git a/libftasm/src/btree/btree_create_node.c b/libftasm/src/btree/btree_create_node.c new file mode 100644 index 00000000..b50c4be4 --- /dev/null +++ b/libftasm/src/btree/btree_create_node.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_create_node.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ +/* Updated: 2016/08/19 23:32:10 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +t_btree *btree_create_node(void *item) +{ + t_btree *node; + + node = (t_btree *)malloc(sizeof(t_btree)); + node->left = 0; + node->right = 0; + node->item = item; + return (node); +} diff --git a/libftasm/src/btree/btree_insert_data.c b/libftasm/src/btree/btree_insert_data.c new file mode 100644 index 00000000..1c88672e --- /dev/null +++ b/libftasm/src/btree/btree_insert_data.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_create_node.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ +/* Updated: 2016/08/19 14:12:59 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +void btree_insert_data( + t_btree **root, + void *item, + int (*cmpf)(void *, void *)) +{ + t_btree *node; + + if (!*root) + { + *root = btree_create_node(item); + return ; + } + node = *root; + if ((*cmpf)(item, node->item) < 0) + { + if (node->left) + btree_insert_data(&node->left, item, cmpf); + else + node->left = btree_create_node(item); + } + else + { + if (node->right) + btree_insert_data(&node->right, item, cmpf); + else + node->right = btree_create_node(item); + } +} diff --git a/libftasm/src/btree/btree_level_count.c b/libftasm/src/btree/btree_level_count.c new file mode 100644 index 00000000..41248654 --- /dev/null +++ b/libftasm/src/btree/btree_level_count.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_create_node.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ +/* Updated: 2016/08/25 17:46:00 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +int btree_level_count(t_btree *root) +{ + return (root + ? 1 + FT_MAX(btree_level_count(root->left), + btree_level_count(root->right)) + : 0); +} diff --git a/libftasm/src/btree/btree_search_item.c b/libftasm/src/btree/btree_search_item.c new file mode 100644 index 00000000..a7a1eb68 --- /dev/null +++ b/libftasm/src/btree/btree_search_item.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_create_node.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ +/* Updated: 2016/08/23 19:04:56 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +void *btree_search_item(t_btree *root, + void *data_ref, int (*cmpf)(void *, void *)) +{ + void *out; + + out = NULL; + if (root) + { + out = btree_search_item(root->left, data_ref, cmpf); + if (!out && ((*cmpf)(root->item, data_ref) == 0)) + out = root->item; + if (!out) + out = btree_search_item(root->right, data_ref, cmpf); + } + return (out); +} diff --git a/libftasm/src/dlst/ft_dlst_add_after.c b/libftasm/src/dlst/ft_dlstadd_after.c similarity index 95% rename from libftasm/src/dlst/ft_dlst_add_after.c rename to libftasm/src/dlst/ft_dlstadd_after.c index c1fa36eb..caec607d 100644 --- a/libftasm/src/dlst/ft_dlst_add_after.c +++ b/libftasm/src/dlst/ft_dlstadd_after.c @@ -12,7 +12,7 @@ #include "libft.h" -void ft_dlst_add_after(t_dlist **alst, t_dlist *new) +void ft_dlstadd_after(t_dlist **alst, t_dlist *new) { if (new) { diff --git a/libftasm/src/dlst/ft_dlst_add_before.c b/libftasm/src/dlst/ft_dlstadd_before.c similarity index 95% rename from libftasm/src/dlst/ft_dlst_add_before.c rename to libftasm/src/dlst/ft_dlstadd_before.c index 5025986c..e2d6b2e8 100644 --- a/libftasm/src/dlst/ft_dlst_add_before.c +++ b/libftasm/src/dlst/ft_dlstadd_before.c @@ -12,7 +12,7 @@ #include "libft.h" -void ft_dlst_add_before(t_dlist **alst, t_dlist *new) +void ft_dlstadd_before(t_dlist **alst, t_dlist *new) { if (new) { diff --git a/libftasm/src/dlst/ft_dlstdel.c b/libftasm/src/dlst/ft_dlstdel.c new file mode 100644 index 00000000..43131fb7 --- /dev/null +++ b/libftasm/src/dlst/ft_dlstdel.c @@ -0,0 +1,11 @@ +#include "libft.h" + +void ft_dlstdel(t_dlist **alst, void (*del)(void *, size_t)) +{ + if (alst && *alst) + { + ft_dlstdel(&(*alst)->next, del); + ft_dlstdel(&(*alst)->prev, del); + } + ft_dlstdelone(alst, del); +} diff --git a/libftasm/src/dlst/ft_dlst_delone.c b/libftasm/src/dlst/ft_dlstdelone.c similarity index 94% rename from libftasm/src/dlst/ft_dlst_delone.c rename to libftasm/src/dlst/ft_dlstdelone.c index ff83b296..a83bf62e 100644 --- a/libftasm/src/dlst/ft_dlst_delone.c +++ b/libftasm/src/dlst/ft_dlstdelone.c @@ -12,7 +12,7 @@ #include "libft.h" -void ft_dlst_delone(t_dlist **alst, void (*del)(void *, size_t)) +void ft_dlstdelone(t_dlist **alst, void (*del)(void *, size_t)) { t_dlist *tmp; diff --git a/libftasm/src/dlst/ft_dlst_last.c b/libftasm/src/dlst/ft_dlstlast.c similarity index 96% rename from libftasm/src/dlst/ft_dlst_last.c rename to libftasm/src/dlst/ft_dlstlast.c index 9772cc0c..1286c32c 100644 --- a/libftasm/src/dlst/ft_dlst_last.c +++ b/libftasm/src/dlst/ft_dlstlast.c @@ -12,7 +12,7 @@ #include "libft.h" -t_dlist *ft_dlst_last(t_dlist *list) +t_dlist *ft_dlstlast(t_dlist *list) { while (list && list->next) list = list->next; diff --git a/libftasm/src/dlst/ft_dlst_new.c b/libftasm/src/dlst/ft_dlstnew.c similarity index 95% rename from libftasm/src/dlst/ft_dlst_new.c rename to libftasm/src/dlst/ft_dlstnew.c index 8725382f..dfe32bdc 100644 --- a/libftasm/src/dlst/ft_dlst_new.c +++ b/libftasm/src/dlst/ft_dlstnew.c @@ -12,7 +12,7 @@ #include "libft.h" -t_dlist *ft_dlst_new(void const *content, size_t content_size) +t_dlist *ft_dlstnew(void const *content, size_t content_size) { t_dlist *new; diff --git a/libftasm/src/dlst/ft_dlst_size.c b/libftasm/src/dlst/ft_dlstsize.c similarity index 97% rename from libftasm/src/dlst/ft_dlst_size.c rename to libftasm/src/dlst/ft_dlstsize.c index 9777bb11..b536efa2 100644 --- a/libftasm/src/dlst/ft_dlst_size.c +++ b/libftasm/src/dlst/ft_dlstsize.c @@ -12,7 +12,7 @@ #include "libft.h" -int ft_dlst_size(t_dlist *list) +int ft_dlstsize(t_dlist *list) { int size; t_dlist *tmp; diff --git a/libftasm/src/get_next_line/get_next_line.c b/libftasm/src/get_next_line/get_next_line.c index 3263c520..cc8d1cdf 100644 --- a/libftasm/src/get_next_line/get_next_line.c +++ b/libftasm/src/get_next_line/get_next_line.c @@ -13,7 +13,7 @@ #include "libft.h" #define BUFF_SIZE 32 -static char *ft_realloc(char *line, int size) +static char *ft_strrealloc(char *line, int size) { char *str; @@ -41,7 +41,7 @@ static int ft_loop_read(int fd, char **line, char (*save)[]) ft_strcat(*line, buf); return (1); } - if ((*line = ft_realloc(*line, ret)) == NULL) + if ((*line = ft_strrealloc(*line, ret)) == NULL) return (-1); ft_strcat(*line, buf); } diff --git a/libftasm/src/mem/ft_realloc.c b/libftasm/src/mem/ft_realloc.c index 33f6c10c..f64a50d0 100644 --- a/libftasm/src/mem/ft_realloc.c +++ b/libftasm/src/mem/ft_realloc.c @@ -16,8 +16,10 @@ void *ft_realloc(void *data, int size) { void *new; + ft_printf("realloc befor: '%s'\n", data); new = ft_memalloc(size); - ft_memcpy(new, data, size); + ft_memcpy(new, data, ft_strlen(data)); ft_memdel(&data); + ft_printf("realloc after: '%s'\n", new); return (new); } diff --git a/libftasm/src/path/ft_path_findfile.c b/libftasm/src/path/ft_path_findfile.c new file mode 100644 index 00000000..e69de29b From 3c58cb010ddd29041ff3a48e90524fdf9e3f92d8 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sun, 13 Nov 2016 23:59:19 +0100 Subject: [PATCH 06/10] btree new nodes now mallocs and memcpy --- libftasm/includes/btree.h | 5 +++-- libftasm/src/btree/btree_create_node.c | 17 ++++++++++++++--- libftasm/src/lst/ft_lstnew.c | 10 +++------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/libftasm/includes/btree.h b/libftasm/includes/btree.h index ab5b587e..6e6d4215 100644 --- a/libftasm/includes/btree.h +++ b/libftasm/includes/btree.h @@ -7,12 +7,13 @@ typedef struct s_btree t_btree; struct s_btree { + void *item; + size_t content_size; struct s_btree *left; struct s_btree *right; - void *item; }; -t_btree *btree_create_node(void *item); +t_btree *btree_create_node(void const *item, size_t content_size); void btree_insert_data( t_btree **root, diff --git a/libftasm/src/btree/btree_create_node.c b/libftasm/src/btree/btree_create_node.c index b50c4be4..83170a7f 100644 --- a/libftasm/src/btree/btree_create_node.c +++ b/libftasm/src/btree/btree_create_node.c @@ -12,13 +12,24 @@ #include "btree.h" -t_btree *btree_create_node(void *item) +t_btree *btree_create_node(void const *item, size_t content_size) { t_btree *node; - node = (t_btree *)malloc(sizeof(t_btree)); + if (!(node = (t_btree *)malloc(sizeof(t_btree)))) + return (NULL); node->left = 0; node->right = 0; - node->item = item; return (node); + if (!content) + { + new->content_size = 0; + new->item = NULL; + } + else + { + new->content_size = content_size; + new->item = ft_memalloc(content_size + 1); + ft_memcpy(new->item, item, content_size); + } } diff --git a/libftasm/src/lst/ft_lstnew.c b/libftasm/src/lst/ft_lstnew.c index 1ad8c10a..302aff27 100644 --- a/libftasm/src/lst/ft_lstnew.c +++ b/libftasm/src/lst/ft_lstnew.c @@ -16,23 +16,19 @@ t_list *ft_lstnew(void const *content, size_t content_size) { t_list *new; + if (!(new = (t_list *)malloc(sizeof(*new)))) + return (NULL); + new->next = NULL; if (!content) { - new = malloc(sizeof(*new)); - if (!new) - return (NULL); new->content_size = 0; new->content = NULL; } else { - new = (t_list *)malloc(sizeof(*new)); - if (!new) - return (NULL); new->content_size = content_size; new->content = ft_memalloc(content_size + 1); ft_memcpy(new->content, content, content_size); } - new->next = NULL; return (new); } From 23cf5a7972f67aad17146436b3084c7ac48887b5 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 15 Nov 2016 20:21:15 +0100 Subject: [PATCH 07/10] btree stuff --- libftasm/includes/btree.h | 2 ++ libftasm/includes/libft.h | 3 +- libftasm/src/btree/btree_apply_infix.c | 2 +- libftasm/src/btree/btree_apply_suffix.c | 2 +- libftasm/src/btree/btree_create_node.c | 14 ++++----- libftasm/src/btree/btree_insert_data.c | 13 ++++---- libftasm/src/btree/btree_print.c | 41 +++++++++++++++++++++++++ libftasm/src/dlst/ft_dlstdel.c | 38 ++++++++++++++++++++--- libftasm/src/dlst/ft_dlstdelone.c | 2 +- libftasm/src/dlst/ft_dlstrtostr.c | 4 +-- libftasm/src/lst/ft_lst_delif.c | 2 +- libftasm/src/lst/ft_lstdelone.c | 2 +- libftasm/src/math/ft_addrcmp.c | 18 +++++++++++ libftasm/src/path/ft_path_findfile.c | 0 libftasm/src/sstr/ft_sstradd.c | 2 +- libftasm/src/sstr/ft_sstrfree.c | 11 +++++-- 16 files changed, 127 insertions(+), 29 deletions(-) create mode 100644 libftasm/src/btree/btree_print.c create mode 100644 libftasm/src/math/ft_addrcmp.c delete mode 100644 libftasm/src/path/ft_path_findfile.c diff --git a/libftasm/includes/btree.h b/libftasm/includes/btree.h index 6e6d4215..c31ca5a2 100644 --- a/libftasm/includes/btree.h +++ b/libftasm/includes/btree.h @@ -18,6 +18,7 @@ t_btree *btree_create_node(void const *item, size_t content_size); void btree_insert_data( t_btree **root, void *item, + size_t content_size, int (*cmpf)(void *, void *)); void *btree_search_item(t_btree *root, @@ -27,5 +28,6 @@ int btree_level_count(t_btree *root); void btree_apply_prefix(t_btree *root, void (*applyf)(void *)); void btree_apply_infix(t_btree *root, void (*applyf)(void *)); void btree_apply_suffix(t_btree *root, void (*applyf)(void *)); +void btree_print(t_btree* tree, void (*printer)(t_btree *tree)); #endif diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index 39f21ec7..f3714ec2 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ -/* Updated: 2016/11/11 17:47:12 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 16:31:04 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -114,6 +114,7 @@ size_t ft_ilen_base(int n, int base); size_t ft_uilen(unsigned int n); size_t ft_lllen(long long n); size_t ft_lllen_base(long long n, int base); +int ft_addrcmp(void *a, void *b); char **ft_sstradd(char **list, char *new); void ft_sstrsort(char **list, int size, int (*cmp)()); diff --git a/libftasm/src/btree/btree_apply_infix.c b/libftasm/src/btree/btree_apply_infix.c index 65d2b5d6..f4b95302 100644 --- a/libftasm/src/btree/btree_apply_infix.c +++ b/libftasm/src/btree/btree_apply_infix.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ -/* Updated: 2016/08/18 21:10:05 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 11:58:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/btree/btree_apply_suffix.c b/libftasm/src/btree/btree_apply_suffix.c index 9cf8b4ea..08f01881 100644 --- a/libftasm/src/btree/btree_apply_suffix.c +++ b/libftasm/src/btree/btree_apply_suffix.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ -/* Updated: 2016/08/18 21:11:19 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 16:08:23 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/btree/btree_create_node.c b/libftasm/src/btree/btree_create_node.c index 83170a7f..18f50233 100644 --- a/libftasm/src/btree/btree_create_node.c +++ b/libftasm/src/btree/btree_create_node.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ -/* Updated: 2016/08/19 23:32:10 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 16:11:49 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,14 +14,13 @@ t_btree *btree_create_node(void const *item, size_t content_size) { - t_btree *node; + t_btree *new; - if (!(node = (t_btree *)malloc(sizeof(t_btree)))) + if (!(new = (t_btree *)malloc(sizeof(t_btree)))) return (NULL); - node->left = 0; - node->right = 0; - return (node); - if (!content) + new->left = 0; + new->right = 0; + if (!item) { new->content_size = 0; new->item = NULL; @@ -32,4 +31,5 @@ t_btree *btree_create_node(void const *item, size_t content_size) new->item = ft_memalloc(content_size + 1); ft_memcpy(new->item, item, content_size); } + return (new); } diff --git a/libftasm/src/btree/btree_insert_data.c b/libftasm/src/btree/btree_insert_data.c index 1c88672e..a6e262fc 100644 --- a/libftasm/src/btree/btree_insert_data.c +++ b/libftasm/src/btree/btree_insert_data.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/08/16 13:43:51 by jhalford #+# #+# */ -/* Updated: 2016/08/19 14:12:59 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 16:12:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,28 +15,29 @@ void btree_insert_data( t_btree **root, void *item, + size_t content_size, int (*cmpf)(void *, void *)) { t_btree *node; if (!*root) { - *root = btree_create_node(item); + *root = btree_create_node(item, content_size); return ; } node = *root; if ((*cmpf)(item, node->item) < 0) { if (node->left) - btree_insert_data(&node->left, item, cmpf); + btree_insert_data(&node->left, item, content_size, cmpf); else - node->left = btree_create_node(item); + node->left = btree_create_node(item, content_size); } else { if (node->right) - btree_insert_data(&node->right, item, cmpf); + btree_insert_data(&node->right, item, content_size, cmpf); else - node->right = btree_create_node(item); + node->right = btree_create_node(item, content_size); } } diff --git a/libftasm/src/btree/btree_print.c b/libftasm/src/btree/btree_print.c new file mode 100644 index 00000000..c236a5d2 --- /dev/null +++ b/libftasm/src/btree/btree_print.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_print.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/14 18:06:24 by jhalford #+# #+# */ +/* Updated: 2016/11/14 18:26:32 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "btree.h" + +static void print_offset(int offset) +{ + int i; + for (i = 0; i < offset; ++i) + { + ft_putstr(" "); + } +} + +void btree_print(t_btree* tree, void (*printer)(t_btree *tree)) +{ + static int offset = 0; + + print_offset(offset); + + if (tree == NULL) + { + ft_putendl("-"); + return; + } + (*printer)(tree); + + offset += 3; + btree_print(tree->right, printer); + btree_print(tree->left, printer); + offset -= 3; +} diff --git a/libftasm/src/dlst/ft_dlstdel.c b/libftasm/src/dlst/ft_dlstdel.c index 43131fb7..24adc231 100644 --- a/libftasm/src/dlst/ft_dlstdel.c +++ b/libftasm/src/dlst/ft_dlstdel.c @@ -1,11 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_dlstdel.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/14 17:55:40 by jhalford #+# #+# */ +/* Updated: 2016/11/14 17:57:46 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "libft.h" +static void ft_dlstdelback(t_dlist **alst, void (*del)(void *, size_t)) +{ + if (alst && *alst && del) + { + ft_dlstdelback(&(*alst)->prev, del); + ft_dlstdelone(alst, del); + } +} + +static void ft_dlstdelfront(t_dlist **alst, void (*del)(void *, size_t)) +{ + if (alst && *alst && del) + { + ft_dlstdelfront(&(*alst)->next, del); + ft_dlstdelone(alst, del); + } +} + void ft_dlstdel(t_dlist **alst, void (*del)(void *, size_t)) { - if (alst && *alst) + if (alst && *alst && del) { - ft_dlstdel(&(*alst)->next, del); - ft_dlstdel(&(*alst)->prev, del); + ft_dlstdelback(&(*alst)->prev, del); + ft_dlstdelfront(&(*alst)->next, del); + ft_dlstdelone(alst, del); } - ft_dlstdelone(alst, del); } diff --git a/libftasm/src/dlst/ft_dlstdelone.c b/libftasm/src/dlst/ft_dlstdelone.c index a83bf62e..55826853 100644 --- a/libftasm/src/dlst/ft_dlstdelone.c +++ b/libftasm/src/dlst/ft_dlstdelone.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:27:13 by jhalford #+# #+# */ -/* Updated: 2016/11/07 13:27:13 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 17:52:58 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/dlst/ft_dlstrtostr.c b/libftasm/src/dlst/ft_dlstrtostr.c index be96ba71..e92e4d8a 100644 --- a/libftasm/src/dlst/ft_dlstrtostr.c +++ b/libftasm/src/dlst/ft_dlstrtostr.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:27:29 by jhalford #+# #+# */ -/* Updated: 2016/11/07 13:31:08 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 16:13:24 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,7 @@ char *ft_dlsttostr(t_dlist *list) return (NULL); while (list->prev) list = list->prev; - str = (char *)ft_strnew(sizeof(char) * (ft_dlst_size(list) + 2)); + str = (char *)ft_strnew(sizeof(char) * (ft_dlstsize(list) + 2)); while (list) { ft_strcat(str, (char *)list->content); diff --git a/libftasm/src/lst/ft_lst_delif.c b/libftasm/src/lst/ft_lst_delif.c index 2e319aa9..b1d11a0a 100644 --- a/libftasm/src/lst/ft_lst_delif.c +++ b/libftasm/src/lst/ft_lst_delif.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:09:12 by jhalford #+# #+# */ -/* Updated: 2016/11/08 15:00:24 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 16:55:27 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/lst/ft_lstdelone.c b/libftasm/src/lst/ft_lstdelone.c index d9b05960..a360b486 100644 --- a/libftasm/src/lst/ft_lstdelone.c +++ b/libftasm/src/lst/ft_lstdelone.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:15 by jhalford #+# #+# */ -/* Updated: 2016/11/08 13:45:13 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 15:50:00 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/math/ft_addrcmp.c b/libftasm/src/math/ft_addrcmp.c new file mode 100644 index 00000000..f3b4f790 --- /dev/null +++ b/libftasm/src/math/ft_addrcmp.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_addrcmp.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/14 15:59:10 by jhalford #+# #+# */ +/* Updated: 2016/11/14 15:59:39 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_addrcmp(void *a, void *b) +{ + return (a - b); +} diff --git a/libftasm/src/path/ft_path_findfile.c b/libftasm/src/path/ft_path_findfile.c deleted file mode 100644 index e69de29b..00000000 diff --git a/libftasm/src/sstr/ft_sstradd.c b/libftasm/src/sstr/ft_sstradd.c index e88b1651..55cad1f1 100644 --- a/libftasm/src/sstr/ft_sstradd.c +++ b/libftasm/src/sstr/ft_sstradd.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 18:03:58 by jhalford #+# #+# */ -/* Updated: 2016/11/10 12:15:23 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 16:31:02 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/sstr/ft_sstrfree.c b/libftasm/src/sstr/ft_sstrfree.c index 05686e2b..14a833eb 100644 --- a/libftasm/src/sstr/ft_sstrfree.c +++ b/libftasm/src/sstr/ft_sstrfree.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/08 17:01:24 by jhalford #+# #+# */ -/* Updated: 2016/11/10 12:11:20 by jhalford ### ########.fr */ +/* Updated: 2016/11/14 11:08:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,9 +17,14 @@ void ft_sstrfree(char **sstr) int i; i = 0; - while (sstr[i]) + if (sstr) { + while (sstr[i]) + { + ft_strdel(sstr + i); + i++; + } ft_strdel(sstr + i); - i++; + free(sstr); } } From 045906145d2235b7a1b0c2dfa6ace11850b8dbc1 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 16 Nov 2016 10:56:06 +0100 Subject: [PATCH 08/10] printf fd --- libftasm/includes/ft_printf.h | 4 +++- libftasm/includes/libft.h | 3 ++- libftasm/src/ft_printf/ft_printf.c | 27 +++++++++++++++++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/libftasm/includes/ft_printf.h b/libftasm/includes/ft_printf.h index 176d89df..9a439cec 100644 --- a/libftasm/includes/ft_printf.h +++ b/libftasm/includes/ft_printf.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:22:54 by jhalford #+# #+# */ -/* Updated: 2016/11/07 17:26:13 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 10:53:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,6 +42,8 @@ struct s_fmt t_conv conv; }; +int ft_vdprintf(int fd, const char *format, va_list ap); + extern t_conv g_convs[]; t_fmt *ft_fmt_init(void); diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index c6e8c0b6..5a0c26ca 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ -/* Updated: 2016/11/08 11:25:08 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 10:53:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -117,4 +117,5 @@ int ft_time_isrecent(time_t event); char *ft_path_notdir(char *path); int ft_printf(const char *format, ...); +int ft_dprintf(int fd, const char *format, ...); #endif diff --git a/libftasm/src/ft_printf/ft_printf.c b/libftasm/src/ft_printf/ft_printf.c index 3f37644a..a782bd0d 100644 --- a/libftasm/src/ft_printf/ft_printf.c +++ b/libftasm/src/ft_printf/ft_printf.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:27 by jhalford #+# #+# */ -/* Updated: 2016/11/07 16:20:10 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 10:55:16 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,12 +27,26 @@ t_conv g_convs[] = int ft_printf(const char *format, ...) { - va_list ap1; + va_list ap; + + va_start(ap, format); + return(ft_vdprintf(0, format, ap)); +} + +int ft_dprintf(int fd, const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + return(ft_vdprintf(fd, format, ap)); +} + +int ft_vdprintf(int fd, const char *format, va_list ap) +{ char *str; char final[1000]; t_fmt *fmt; - va_start(ap1, format); str = ft_strdup(format); ft_bzero(final, 1000); while (*str) @@ -40,16 +54,17 @@ int ft_printf(const char *format, ...) if (*str == '%') { str++; - if (!(fmt = ft_printf_parse(&str, ap1))) + if (!(fmt = ft_printf_parse(&str, ap))) return (1); if (!fmt->valid) ft_strncat(final, &fmt->conversion, 1); else - ft_strcat(final, ft_transform(fmt, ap1)); + ft_strcat(final, ft_transform(fmt, ap)); } else ft_strncat(final, str++, 1); } - ft_putstr(final); + ft_putstr_fd(final, fd); + ft_strdel(&str); return (0); } From b7ce8460ff85cb5560037b951fc4da3dd7791910 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 16 Nov 2016 10:58:30 +0100 Subject: [PATCH 09/10] merge fix --- libftasm/includes/libft.h | 6 +----- libftasm/src/ft_printf/ft_printf.c | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index 91e507d6..bbebfb96 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -6,11 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ -<<<<<<< HEAD -/* Updated: 2016/11/16 10:53:34 by jhalford ### ########.fr */ -======= -/* Updated: 2016/11/14 16:31:04 by jhalford ### ########.fr */ ->>>>>>> a3f7d30e3fc482af179207682b48ae052d422bdf +/* Updated: 2016/11/16 10:58:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/ft_printf/ft_printf.c b/libftasm/src/ft_printf/ft_printf.c index 696e7a4f..d58717e0 100644 --- a/libftasm/src/ft_printf/ft_printf.c +++ b/libftasm/src/ft_printf/ft_printf.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:27 by jhalford #+# #+# */ -/* Updated: 2016/11/16 10:57:25 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 10:58:04 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 8d1ece5280905c5c29496f4d054e52530fb181a7 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 16 Nov 2016 18:33:01 +0100 Subject: [PATCH 10/10] some printf leaks --- libftasm/includes/btree.h | 16 ++++++++++++++-- libftasm/src/btree/btree_apply_by_level.c | 8 ++++---- libftasm/src/btree/btree_print.c | 13 +++++++------ libftasm/src/dlst/ft_dlstdel.c | 4 ++-- libftasm/src/env/ft_getenv.c | 3 +-- libftasm/src/ft_printf/ft_conversion.c | 8 ++++---- libftasm/src/ft_printf/ft_fmt_validate_flags.c | 3 +-- libftasm/src/ft_printf/ft_printf.c | 17 +++++++++++------ libftasm/src/ft_printf/ft_transform.c | 9 ++------- libftasm/src/ft_printf/lib_fmt.c | 2 +- libftasm/src/ft_printf/lib_pad.c | 4 ++-- libftasm/src/ft_printf/lib_pad_sharp.c | 2 +- libftasm/src/lst/ft_lst_delif.c | 3 ++- libftasm/src/lst/ft_lst_removeif.c | 2 +- libftasm/src/lst/ft_lstdel.c | 10 +++++++--- libftasm/src/lst/ft_lstdelone.c | 4 ++-- libftasm/src/mem/ft_memdel.c | 9 ++++++--- libftasm/src/mem/ft_realloc.c | 4 +--- libftasm/src/path/ft_path_notdir.c | 2 +- libftasm/src/str/ft_strcatf.c | 2 +- libftasm/src/str/ft_strsub.c | 5 ++--- 21 files changed, 73 insertions(+), 57 deletions(-) diff --git a/libftasm/includes/btree.h b/libftasm/includes/btree.h index c31ca5a2..d328eed8 100644 --- a/libftasm/includes/btree.h +++ b/libftasm/includes/btree.h @@ -1,7 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/16 11:13:15 by jhalford #+# #+# */ +/* Updated: 2016/11/16 11:14:02 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + #ifndef BTREE_H # define BTREE_H -#include "libft.h" +# include "libft.h" typedef struct s_btree t_btree; @@ -28,6 +40,6 @@ int btree_level_count(t_btree *root); void btree_apply_prefix(t_btree *root, void (*applyf)(void *)); void btree_apply_infix(t_btree *root, void (*applyf)(void *)); void btree_apply_suffix(t_btree *root, void (*applyf)(void *)); -void btree_print(t_btree* tree, void (*printer)(t_btree *tree)); +void btree_print(t_btree *tree, void (*printer)(t_btree *tree)); #endif diff --git a/libftasm/src/btree/btree_apply_by_level.c b/libftasm/src/btree/btree_apply_by_level.c index 0cb2c4bd..09619fee 100644 --- a/libftasm/src/btree/btree_apply_by_level.c +++ b/libftasm/src/btree/btree_apply_by_level.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/08/19 12:06:15 by jhalford #+# #+# */ -/* Updated: 2016/08/23 17:49:17 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 11:14:28 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,9 +31,9 @@ static void btree_apply_to_level( btree_apply_to_level(root->right, level + 1, 0, applyf); } -void btree_apply_by_level( - t_btree *root, - void (*applyf)(void *item, int current_level, int is_first_elem)) +void btree_apply_by_level( + t_btree *root, + void (*applyf)(void *item, int current_level, int is_first_elem)) { int height; diff --git a/libftasm/src/btree/btree_print.c b/libftasm/src/btree/btree_print.c index c236a5d2..748a94c5 100644 --- a/libftasm/src/btree/btree_print.c +++ b/libftasm/src/btree/btree_print.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 18:06:24 by jhalford #+# #+# */ -/* Updated: 2016/11/14 18:26:32 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 11:24:32 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,25 +15,26 @@ static void print_offset(int offset) { int i; - for (i = 0; i < offset; ++i) + + i = 0; + while (i < offset) { ft_putstr(" "); + i++; } } -void btree_print(t_btree* tree, void (*printer)(t_btree *tree)) +void btree_print(t_btree *tree, void (*printer)(t_btree *tree)) { static int offset = 0; print_offset(offset); - if (tree == NULL) { ft_putendl("-"); - return; + return ; } (*printer)(tree); - offset += 3; btree_print(tree->right, printer); btree_print(tree->left, printer); diff --git a/libftasm/src/dlst/ft_dlstdel.c b/libftasm/src/dlst/ft_dlstdel.c index 24adc231..43d0eb63 100644 --- a/libftasm/src/dlst/ft_dlstdel.c +++ b/libftasm/src/dlst/ft_dlstdel.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:55:40 by jhalford #+# #+# */ -/* Updated: 2016/11/14 17:57:46 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 11:15:40 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,7 @@ static void ft_dlstdelfront(t_dlist **alst, void (*del)(void *, size_t)) } } -void ft_dlstdel(t_dlist **alst, void (*del)(void *, size_t)) +void ft_dlstdel(t_dlist **alst, void (*del)(void *, size_t)) { if (alst && *alst && del) { diff --git a/libftasm/src/env/ft_getenv.c b/libftasm/src/env/ft_getenv.c index 3c733605..65ff27a7 100644 --- a/libftasm/src/env/ft_getenv.c +++ b/libftasm/src/env/ft_getenv.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 14:30:00 by jhalford #+# #+# */ -/* Updated: 2016/11/10 14:30:27 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 11:24:52 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,6 @@ char *ft_getenv(char **env, char *key) return (NULL); while (*env) { - /* ft_printf("%s\n", env[i]); */ if (ft_strcmp(*env, key) == '=') return (*env + ft_strlen(key) + 1); env++; diff --git a/libftasm/src/ft_printf/ft_conversion.c b/libftasm/src/ft_printf/ft_conversion.c index e1908f19..f8844a94 100644 --- a/libftasm/src/ft_printf/ft_conversion.c +++ b/libftasm/src/ft_printf/ft_conversion.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:31:48 by jhalford #+# #+# */ -/* Updated: 2016/11/10 12:59:25 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 18:30:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -33,9 +33,9 @@ char *ft_unsigned_conversion(t_fmt *fmt, va_list ap) while (fmt->conversion != g_convs[i].id) i++; if (!*fmt->modifier - || ft_strcmp(fmt->modifier, "hh") == 0 - || ft_strcmp(fmt->modifier, "h") == 0 - || ft_strcmp(fmt->modifier, "z") == 0) + || ft_strequ(fmt->modifier, "hh") + || ft_strequ(fmt->modifier, "h") + || ft_strequ(fmt->modifier, "z")) { uiarg = va_arg(ap, int); return (ft_uitoa_base(uiarg, g_convs[i].base)); diff --git a/libftasm/src/ft_printf/ft_fmt_validate_flags.c b/libftasm/src/ft_printf/ft_fmt_validate_flags.c index cba3f389..3f5892e1 100644 --- a/libftasm/src/ft_printf/ft_fmt_validate_flags.c +++ b/libftasm/src/ft_printf/ft_fmt_validate_flags.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 16:53:07 by jhalford #+# #+# */ -/* Updated: 2016/11/10 13:02:07 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 11:15:55 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -46,7 +46,6 @@ static void ft_fmt_validate_flag_conv(t_fmt *fmt) if (!ft_strchr(g_convs[i].allowed_flags, flag)) { ft_fmt_error_flag_conv(flag, fmt->conversion); - /* ft_printf("allowed flags:%s\n", g_convs[i].allowed_flags); */ if (flag == '#') *flag_ptr = '.'; } diff --git a/libftasm/src/ft_printf/ft_printf.c b/libftasm/src/ft_printf/ft_printf.c index d58717e0..ca094456 100644 --- a/libftasm/src/ft_printf/ft_printf.c +++ b/libftasm/src/ft_printf/ft_printf.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:27 by jhalford #+# #+# */ -/* Updated: 2016/11/16 10:58:04 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 18:30:10 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,7 @@ int ft_printf(const char *format, ...) va_list ap; va_start(ap, format); - return(ft_vdprintf(0, format, ap)); + return (ft_vdprintf(1, format, ap)); } int ft_dprintf(int fd, const char *format, ...) @@ -38,16 +38,17 @@ int ft_dprintf(int fd, const char *format, ...) va_list ap; va_start(ap, format); - return(ft_vdprintf(fd, format, ap)); + return (ft_vdprintf(fd, format, ap)); } int ft_vdprintf(int fd, const char *format, va_list ap) { char *str; + char *transform; char final[1000]; t_fmt *fmt; - str = ft_strdup(format); + str = (char *)format; ft_bzero(final, 1000); while (*str) { @@ -59,12 +60,16 @@ int ft_vdprintf(int fd, const char *format, va_list ap) if (!fmt->valid) ft_strncat(final, &fmt->conversion, 1); else - ft_strcat(final, ft_transform(fmt, ap)); + { + transform = ft_transform(fmt, ap); + ft_strcat(final, transform); + free(transform); + } + free(fmt); } else ft_strncat(final, str++, 1); } ft_putstr_fd(final, fd); - ft_strdel(&str); return (0); } diff --git a/libftasm/src/ft_printf/ft_transform.c b/libftasm/src/ft_printf/ft_transform.c index cfdcd863..edadbed2 100644 --- a/libftasm/src/ft_printf/ft_transform.c +++ b/libftasm/src/ft_printf/ft_transform.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:32 by jhalford #+# #+# */ -/* Updated: 2016/11/07 16:40:15 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 17:56:37 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,6 @@ char *ft_transform(t_fmt *fmt, va_list ap) { - char *buf; char *ret; int i; @@ -24,11 +23,7 @@ char *ft_transform(t_fmt *fmt, va_list ap) fmt->conv = g_convs[i]; ret = (*fmt->conv.converter)(fmt, ap); if (fmt->width > (int)ft_strlen(ret)) - { - buf = ret; - ret = (char *)malloc(sizeof(char) * (fmt->width + 5)); - ft_strcpy(ret, buf); - } + ret = ft_realloc(ret, fmt->width + 5); if (ft_strchr(fmt->flags, '-')) ft_pad_right(ret, fmt); else diff --git a/libftasm/src/ft_printf/lib_fmt.c b/libftasm/src/ft_printf/lib_fmt.c index 5cb86398..5865af59 100644 --- a/libftasm/src/ft_printf/lib_fmt.c +++ b/libftasm/src/ft_printf/lib_fmt.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:35 by jhalford #+# #+# */ -/* Updated: 2016/11/07 17:22:26 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 17:46:16 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/ft_printf/lib_pad.c b/libftasm/src/ft_printf/lib_pad.c index f2efe4b8..20919955 100644 --- a/libftasm/src/ft_printf/lib_pad.c +++ b/libftasm/src/ft_printf/lib_pad.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:45 by jhalford #+# #+# */ -/* Updated: 2016/11/08 10:18:08 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 18:13:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,7 +24,7 @@ void ft_pad_left(char *str, t_fmt *fmt) { char sign; - sign = '\0'; + sign = 0; if (str[0] == '-' || str[0] == '+' || str[0] == ' ') { sign = str[0]; diff --git a/libftasm/src/ft_printf/lib_pad_sharp.c b/libftasm/src/ft_printf/lib_pad_sharp.c index e6d57063..bca9add2 100644 --- a/libftasm/src/ft_printf/lib_pad_sharp.c +++ b/libftasm/src/ft_printf/lib_pad_sharp.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 13:33:48 by jhalford #+# #+# */ -/* Updated: 2016/11/08 10:18:20 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 17:56:42 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/lst/ft_lst_delif.c b/libftasm/src/lst/ft_lst_delif.c index b1d11a0a..62a76754 100644 --- a/libftasm/src/lst/ft_lst_delif.c +++ b/libftasm/src/lst/ft_lst_delif.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:09:12 by jhalford #+# #+# */ -/* Updated: 2016/11/14 16:55:27 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 18:23:24 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,6 +28,7 @@ void ft_lst_delif( { tmp = (*indirect); (*indirect) = (*indirect)->next; + ft_printf("free'd at %p\n", tmp); (*del)(tmp->content, tmp->content_size); } else diff --git a/libftasm/src/lst/ft_lst_removeif.c b/libftasm/src/lst/ft_lst_removeif.c index 747c15dc..2cf2d53d 100644 --- a/libftasm/src/lst/ft_lst_removeif.c +++ b/libftasm/src/lst/ft_lst_removeif.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:09:30 by jhalford #+# #+# */ -/* Updated: 2016/11/08 11:52:33 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 14:00:07 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/lst/ft_lstdel.c b/libftasm/src/lst/ft_lstdel.c index 4d4e1312..5a97607e 100644 --- a/libftasm/src/lst/ft_lstdel.c +++ b/libftasm/src/lst/ft_lstdel.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 15:18:57 by jhalford #+# #+# */ -/* Updated: 2016/11/08 13:36:19 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 18:24:38 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,11 @@ void ft_lstdel(t_list **alst, void (*del)(void *, size_t)) { - if (alst && *alst && (*alst)->next) + if (alst && *alst && del) + { + ft_printf("free'd at %p\n", *alst); ft_lstdel(&(*alst)->next, del); - ft_lstdelone(alst, del); + ft_lstdelone(alst, del); + *alst = NULL; + } } diff --git a/libftasm/src/lst/ft_lstdelone.c b/libftasm/src/lst/ft_lstdelone.c index a360b486..fe144be3 100644 --- a/libftasm/src/lst/ft_lstdelone.c +++ b/libftasm/src/lst/ft_lstdelone.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:15 by jhalford #+# #+# */ -/* Updated: 2016/11/14 15:50:00 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 18:22:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,6 +19,6 @@ void ft_lstdelone(t_list **alst, void (*del)(void *, size_t)) if (del) (*del)((*alst)->content, (*alst)->content_size); free(*alst); + *alst = NULL; } - *alst = NULL; } diff --git a/libftasm/src/mem/ft_memdel.c b/libftasm/src/mem/ft_memdel.c index 7745391e..52e6508b 100644 --- a/libftasm/src/mem/ft_memdel.c +++ b/libftasm/src/mem/ft_memdel.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:57:33 by jhalford #+# #+# */ -/* Updated: 2016/11/03 14:57:33 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 12:23:13 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,6 +14,9 @@ void ft_memdel(void **ap) { - free(*ap); - *ap = NULL; + if (ap && *ap) + { + free(*ap); + *ap = NULL; + } } diff --git a/libftasm/src/mem/ft_realloc.c b/libftasm/src/mem/ft_realloc.c index f64a50d0..1f57254d 100644 --- a/libftasm/src/mem/ft_realloc.c +++ b/libftasm/src/mem/ft_realloc.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/11 17:37:53 by jhalford #+# #+# */ -/* Updated: 2016/11/11 17:41:30 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 17:56:17 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,10 +16,8 @@ void *ft_realloc(void *data, int size) { void *new; - ft_printf("realloc befor: '%s'\n", data); new = ft_memalloc(size); ft_memcpy(new, data, ft_strlen(data)); ft_memdel(&data); - ft_printf("realloc after: '%s'\n", new); return (new); } diff --git a/libftasm/src/path/ft_path_notdir.c b/libftasm/src/path/ft_path_notdir.c index 14342adf..d85fe56b 100644 --- a/libftasm/src/path/ft_path_notdir.c +++ b/libftasm/src/path/ft_path_notdir.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/04 11:45:07 by jhalford #+# #+# */ -/* Updated: 2016/11/04 11:45:08 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 12:07:21 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/str/ft_strcatf.c b/libftasm/src/str/ft_strcatf.c index 12bf4de0..c4520d64 100644 --- a/libftasm/src/str/ft_strcatf.c +++ b/libftasm/src/str/ft_strcatf.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/07 15:46:03 by jhalford #+# #+# */ -/* Updated: 2016/11/07 15:46:11 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 17:58:02 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftasm/src/str/ft_strsub.c b/libftasm/src/str/ft_strsub.c index bf883507..67e74782 100644 --- a/libftasm/src/str/ft_strsub.c +++ b/libftasm/src/str/ft_strsub.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/03 14:58:43 by jhalford #+# #+# */ -/* Updated: 2016/11/03 14:58:43 by jhalford ### ########.fr */ +/* Updated: 2016/11/16 17:52:01 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,8 +17,7 @@ char *ft_strsub(char const *s, unsigned int start, size_t len) char *out; size_t i; - out = (char *)malloc(sizeof(char) * (len + 1)); - if (!out) + if (!(out = (char *)malloc(sizeof(char) * (len + 1)))) return (NULL); i = -1; while (++i < len)