working on args

This commit is contained in:
gazhonsepaskwa
2025-02-04 10:39:10 +01:00
parent 3f9b6d9d7b
commit 8a4d1be7f4
4 changed files with 91 additions and 28 deletions

View File

@@ -68,6 +68,7 @@ char *ft_tabstr(char **tab);
int is_charset(char c, char *set);
void free_tab(char **tab);
char **free_all(char **tab, int count);
void add_to_tab(char ***tab, char *str);
void ft_put_c_fd(char c, int fd);
void ft_put_s_fd(char *s, int fd);

View File

@@ -0,0 +1,56 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* add_to_tab.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/02/04 09:59:01 by nalebrun #+# #+# */
/* Updated: 2025/02/04 09:59:01 by nalebrun ### ########.fr */
/* */
/* ************************************************************************** */
#include "../../libft.h"
static void free_null_ptr(void *ptr)
{
if (ptr != NULL)
{
free(ptr);
ptr = NULL;
}
}
static char **add_space_to_tab(char **tab, int count)
{
char **new_env;
int i;
i = 0;
new_env = malloc(sizeof(char *) * (count + 1));
if (!new_env)
return (NULL);
new_env[count] = NULL;
while (tab[i] && i < count)
{
new_env[i] = ft_strdup(tab[i]);
free_null_ptr(tab[i]);
i++;
}
free_null_ptr(tab);
return (new_env);
}
void add_to_tab(char ***tab, char *str)
{
char **tmp;
int i;
tmp = *tab;
i = 0;
while ((*tab)[i])
i++;
*tab = add_space_to_tab(*tab, i + 1);
free(tmp);
(*tab)[i] = ft_strdup(str);
}