diff options
Diffstat (limited to '')
-rw-r--r-- | src/m_init.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/m_init.c b/src/m_init.c index 8b8a994..91baf7c 100644 --- a/src/m_init.c +++ b/src/m_init.c @@ -12,7 +12,9 @@ #include <libft.h> #include <stdlib.h> +#include <limits.h> +#include "d_define.h" #include "s_struct.h" #include "u_vars.h" #include "u_vars_next.h" @@ -20,17 +22,21 @@ void m_init_custom_vars(t_msh *msh) { - char *home; - char fmt[255]; + char home[PATH_MAX]; + char fmt[PATH_MAX]; u_subst_var_value("$PS1", FT_DEFAULT_PS_ONE, msh); u_subst_var_value("$PS2", FT_DEFAULT_PS_TWO, msh); u_subst_var_value("$PS3", FT_DEFAULT_PS_THR, msh); u_subst_var_value("$PS4", FT_DEFAULT_PS_FOU, msh); - if ((home = u_get_var_value("$HOME", msh)) != NULL) + u_get_var_value(home, "$HISTFILE", PATH_MAX, msh); + if (home[0] == C_NUL) { - ft_sprintf(fmt, "%s/%s", home, FT_DEFAULT_HISTFILE); - u_subst_var_value("$HISTFILE", fmt, msh); - ft_memdel((void*)&home); + u_get_var_value(home, "$HOME", PATH_MAX, msh); + if (home[0] != C_NUL) + { + ft_sprintf(fmt, "%s/%s", home, FT_DEFAULT_HISTFILE); + u_subst_var_value("$HISTFILE", fmt, msh); + } } } |