diff options
Diffstat (limited to 'src/env.c')
| -rw-r--r-- | src/env.c | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 09:21:24 by cacharle #+# #+# */ -/* Updated: 2020/06/09 16:15:47 by charles ### ########.fr */ +/* Updated: 2020/06/12 10:51:10 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -67,8 +67,9 @@ char *env_search(t_env env, char *key) char *env_search_first_match(t_env env, const char *haystack) { - int len; + size_t len; size_t i; + size_t key_len; if (ft_isdigit(*haystack)) return (NULL); @@ -76,13 +77,15 @@ char *env_search_first_match(t_env env, const char *haystack) while (ft_isalnum(haystack[len]) || haystack[len] == '_') len++; if (len == 0) - return ("$"); - i = 0; - while (i < env->size - 1) + return (NULL); + i = -1; + while (++i < env->size - 1) { + key_len = ft_strchr(env->data[i], '=') - (char*)env->data[i]; + if (len != key_len) + continue ; if (ft_strncmp((char*)env->data[i], haystack, len) == 0) - return (ft_strchr((char*)env->data[i], '=') + 1); - i++; + return (ft_strchr(env->data[i], '=') + 1); } return (NULL); } |
