aboutsummaryrefslogtreecommitdiff
path: root/src/env_to_strlst.c
diff options
context:
space:
mode:
authorDominik Kaiser2025-01-14 16:40:30 +0100
committerGitHub2025-01-14 16:40:30 +0100
commit398b0d39cbbe2cdabbfae00f799181a37754d5c1 (patch)
tree397ae613dd39a35a6c91e7e30426f86ade4e24bb /src/env_to_strlst.c
parent00ad7429f223c85e99da6ffa8f7dade0c73c97b5 (diff)
parent553204e584dd08987902c7693e47744192e6bd85 (diff)
downloadminishell-398b0d39cbbe2cdabbfae00f799181a37754d5c1.tar.gz
minishell-398b0d39cbbe2cdabbfae00f799181a37754d5c1.zip
Merge branch 'main' into echo-builtint
Diffstat (limited to 'src/env_to_strlst.c')
-rw-r--r--src/env_to_strlst.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/env_to_strlst.c b/src/env_to_strlst.c
new file mode 100644
index 0000000..3a58df9
--- /dev/null
+++ b/src/env_to_strlst.c
@@ -0,0 +1,58 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* env_to_strlst.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2024/10/21 14:52:08 by dkaiser #+# #+# */
+/* Updated: 2024/10/21 15:07:33 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+#include "minishell.h"
+
+static char *get_var_assign(t_env *cur);
+
+char **env_to_strlst(t_env *env)
+{
+ int size;
+ t_env *cur;
+ char **result;
+ int i;
+
+ size = 0;
+ cur = env;
+ while (cur != NULL)
+ {
+ size++;
+ cur = cur->next;
+ }
+ result = malloc(sizeof(char *) * (size + 1));
+ if (result == NULL)
+ return (NULL);
+ i = 0;
+ cur = env;
+ while (i < size)
+ {
+ result[i] = get_var_assign(cur);
+ cur = cur->next;
+ i++;
+ }
+ result[i] = NULL;
+ return (result);
+}
+
+static char *get_var_assign(t_env *cur)
+{
+ char *left_side;
+ char *result;
+
+ left_side = ft_strjoin(cur->name, "=");
+ if (left_side == NULL)
+ return (NULL);
+ result = ft_strjoin(left_side, cur->value);
+ free(left_side);
+ return (result);
+}