ajout memrealloc et modif token_append sur les char esc et esc2

This commit is contained in:
wescande 2017-02-08 18:46:16 +01:00
parent a99ef894e7
commit 6c8ea86a24
4 changed files with 38 additions and 4 deletions

View file

@ -98,6 +98,7 @@ glob/lib_perso/ft_ld_reverse.c\
glob/lib_perso/ft_ld_size.c\
glob/lib_perso/ft_ld_swap.c\
glob/lib_perso/ft_ld_to_tab.c\
glob/lib_perso/ft_memrealloc.c\
glob/lib_perso/ft_strjoinf.c\
glob/lib_perso/ft_strsubf.c\
glob/lib_perso/ft_tabdel.c\

View file

@ -6,7 +6,7 @@
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/01/04 16:31:18 by wescande #+# #+# */
/* Updated: 2017/02/07 19:40:59 by wescande ### ########.fr */
/* Updated: 2017/02/08 13:54:57 by wescande ### ########.fr */
/* */
/* ************************************************************************** */
@ -114,4 +114,5 @@ char *ft_strsubf(char *s, unsigned int start,
void ft_tabdel(char ***mytab);
int ft_tablen(char **mytab);
void *ft_memrealloc(void *ptr, size_t old_s, size_t new_s);
#endif

View file

@ -0,0 +1,30 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_memrealloc.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: wescande <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/05 13:44:36 by wescande #+# #+# */
/* Updated: 2017/02/08 13:54:33 by wescande ### ########.fr */
/* */
/* ************************************************************************** */
#include "glob.h"
void *ft_memrealloc(void *ptr, size_t old_s, size_t new_s)
{
void *n_ptr;
if (!ptr)
return (ft_memalloc(new_s));
if (!old_s)
{
ft_memdel(&ptr);
return (ft_memalloc(new_s));
}
n_ptr = ft_memalloc(new_s);
ft_memcpy(n_ptr, ptr, old_s);
ft_memdel(ptr);
return (n_ptr);
}

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/11 17:18:42 by jhalford #+# #+# */
/* Updated: 2017/02/07 15:32:08 by wescande ### ########.fr */
/* Updated: 2017/02/08 13:55:31 by wescande ### ########.fr */
/* */
/* ************************************************************************** */
@ -21,10 +21,12 @@ int token_append(t_token *token, char c, short int esc, short int esc2)
{
token->size += 8;
token->data = (char *)ft_realloc(token->data, token->size + 1);
token->esc = (unsigned char *)ft_realloc((char *)token->esc,
token->esc = (unsigned char *)ft_memrealloc((char *)token->esc,
(token->size >> 3),
(token->size >> 3) + 1);
token->esc[token->size >> 3] = 0;
token->esc2 = (unsigned char *)ft_realloc((char *)token->esc2,
token->esc2 = (unsigned char *)ft_memrealloc((char *)token->esc2,
(token->size >> 3),
(token->size >> 3) + 1);
token->esc2[token->size >> 3] = 0;
}