From 3615c73671ad3cc7e2dfab1d658a3c907b751952 Mon Sep 17 00:00:00 2001 From: starnakin Date: Thu, 29 Jun 2023 17:48:42 +0200 Subject: [PATCH] add: get env str --- src/env/env.c | 31 +++++++++++++++++++++++++++++++ src/env/env.h | 1 + 2 files changed, 32 insertions(+) diff --git a/src/env/env.c b/src/env/env.c index 82923f2..bacfb83 100644 --- a/src/env/env.c +++ b/src/env/env.c @@ -142,3 +142,34 @@ int edit_env_variable(lst** root, const char *key, const char *new_value) } return (1); } + +char **get_env_str(lst** root) +{ + lst* current = *root; + env* content; + char** tab; + size_t i; + size_t len; + + tab = malloc(sizeof(char*) * (lst_len(*root) + 1)); + if (tab == NULL) + return (NULL); + i = 0; + while (current != NULL) + { + content = current->content; + len = strlen(content->key) + 1 + strlen(content->value) + 1; + tab[i] = malloc(len * sizeof(char)); + if (tab[i] == NULL) + { + tab_free((void**) tab); + return NULL; + } + strcpy(tab[i], content->key); + strcat(tab[i], "="); + strcat(tab[i], content->value); + current = current->next; + i++; + } + return tab; +} diff --git a/src/env/env.h b/src/env/env.h index 09a7578..9b1cc7d 100644 --- a/src/env/env.h +++ b/src/env/env.h @@ -13,3 +13,4 @@ void env_del(void *ptr); char *get_env_variable(lst** root, const char* key); int add_env_variable(lst** root, const char *key, const char *value); int edit_env_variable(lst** root, const char *key, const char *new_value); +char** get_env_str(lst** root);