aboutsummaryrefslogtreecommitdiff
path: root/src/env_to_strlst.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/env_to_strlst.c')
-rw-r--r--src/env_to_strlst.c30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/env_to_strlst.c b/src/env_to_strlst.c
index 3a58df9..5806d96 100644
--- a/src/env_to_strlst.c
+++ b/src/env_to_strlst.c
@@ -3,10 +3,10 @@
/* ::: :::::::: */
/* env_to_strlst.c :+: :+: :+: */
/* +:+ +:+ +:+ */
-/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* By: chuhlig <chuhlig@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
-/* Created: 2024/10/21 14:52:08 by dkaiser #+# #+# */
-/* Updated: 2024/10/21 15:07:33 by dkaiser ### ########.fr */
+/* Created: 2024/12/17 19:22:28 by chuhlig #+# #+# */
+/* Updated: 2025/01/18 18:50:49 by chuhlig ### ########.fr */
/* */
/* ************************************************************************** */
@@ -15,20 +15,32 @@
static char *get_var_assign(t_env *cur);
-char **env_to_strlst(t_env *env)
+static int getsize(t_env *env)
{
int size;
t_env *cur;
- char **result;
- int i;
size = 0;
cur = env;
- while (cur != NULL)
+ while (cur)
{
- size++;
+ if (!ft_strchr(cur->name, '?'))
+ size++;
cur = cur->next;
}
+ return (size);
+}
+
+char **env_to_strlst(t_env *env)
+{
+ int size;
+ t_env *cur;
+ char **result;
+ int i;
+
+ size = 0;
+ cur = env;
+ size = getsize(env);
result = malloc(sizeof(char *) * (size + 1));
if (result == NULL)
return (NULL);
@@ -36,6 +48,8 @@ char **env_to_strlst(t_env *env)
cur = env;
while (i < size)
{
+ if (ft_strchr(cur->name, '?'))
+ cur = cur->next;
result[i] = get_var_assign(cur);
cur = cur->next;
i++;