From f991d97d6060098002c0585898d5d9b7e37c2c0d Mon Sep 17 00:00:00 2001 From: savalet Date: Wed, 12 Feb 2025 17:34:45 +0100 Subject: [PATCH] Add unset env func --- src/env.c | 14 ++++++++++++++ src/env.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/env.c b/src/env.c index 04215e5..bb864a4 100644 --- a/src/env.c +++ b/src/env.c @@ -16,12 +16,14 @@ #include "u_mem.h" #include "u_str.h" +__attribute__((nonnull)) void debug_env_entries(env_t *env) { for (size_t i = 0; i < env->sz; i++) U_DEBUG("Env entry [%lu] [%s]\n", i, env->env[i]); } +__attribute__((nonnull)) char *get_env_value(env_t *env, char const *key) { for (size_t i = 0; i < env->sz; i++) @@ -30,6 +32,18 @@ char *get_env_value(env_t *env, char const *key) return NULL; } +__attribute__((nonnull)) +bool unset_env(env_t *env, char *key) +{ + for (size_t i = 0; i < env->sz; i++) { + if (u_strncmp(env->env[i], key, u_strlen(key)) == 0) { + env->env[i] = NULL; + return true; + } + } + return false; +} + static __attribute__((nonnull)) bool ensure_env_capacity(env_t *env) { diff --git a/src/env.h b/src/env.h index cd8b7f3..5c59346 100644 --- a/src/env.h +++ b/src/env.h @@ -7,6 +7,7 @@ #ifndef ENV_H #define ENV_H + #include #include #define BASE_ENV_CAP 128 @@ -21,4 +22,5 @@ void debug_env_entries(env_t *env); env_t parse_env(char **env); char *get_env_value(env_t *env, char const *key); +bool unset_env(env_t *env, char *key); #endif