diff options
Diffstat (limited to '')
| -rw-r--r-- | src/m_funptr.c | 2 | ||||
| -rw-r--r-- | src/m_funptr.h | 2 | ||||
| -rw-r--r-- | src/s_init.c | 4 | ||||
| -rw-r--r-- | src/s_init_next.c | 22 | 
4 files changed, 20 insertions, 10 deletions
diff --git a/src/m_funptr.c b/src/m_funptr.c index 2ae09f6..bd2e777 100644 --- a/src/m_funptr.c +++ b/src/m_funptr.c @@ -19,7 +19,7 @@  #include "m_funptr.h"  #include "s_struct.h" -void	init_buptr(t_msh *msh) +void	m_init_buptr(t_msh *msh)  {  	msh->bu_ptr[B_ID_ECHO] = b_echo;  	msh->bu_ptr[B_ID_CD] = b_cd; diff --git a/src/m_funptr.h b/src/m_funptr.h index f5375b9..a1d5f69 100644 --- a/src/m_funptr.h +++ b/src/m_funptr.h @@ -15,6 +15,6 @@  # include "s_struct.h" -void	init_buptr(t_msh *msh); +void	m_init_buptr(t_msh *msh);  #endif diff --git a/src/s_init.c b/src/s_init.c index 7e1c4e5..1e86727 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -117,10 +117,10 @@ t_msh		*s_init_msh(int argc, char *const argv[], char *const envp[])  	msh->argc = argc - 1;  	msh->argv = (char**)argv;  	msh->ret = 0; -	init_buptr(msh); +	m_init_buptr(msh);  	s_null_some(msh);  	s_set_cwd(cwd, msh); -	if ((msh->cwd = ft_strdup(cwd)) == NULL) +	if (cwd[0] != C_NUL && (msh->cwd = ft_strdup(cwd)) == NULL)  	{  		ft_delwords(msh->envp);  		ft_memdel((void*)&msh); diff --git a/src/s_init_next.c b/src/s_init_next.c index 3cc676d..1271b53 100644 --- a/src/s_init_next.c +++ b/src/s_init_next.c @@ -20,6 +20,7 @@  #endif  #include <paths.h>  #include <stdlib.h> +#include <string.h>  #include <unistd.h>  #include "b_export_next.h" @@ -118,21 +119,30 @@ void		s_set_cwd(char cwd[], t_msh *msh)  	char	fmt[PATH_MAX];  	DIR		*dir; +	return ;  	u_get_var_value(cwd, "$PWD", PATH_MAX, msh);  	if (cwd[0] == C_NUL)  	{ -		getcwd(cwd, PATH_MAX); -		ft_sprintf(fmt, "%s=%s", "PWD", cwd); -		b_export_with_equals(fmt, msh); +		if (getcwd(cwd, PATH_MAX) != NULL) +		{ +			ft_sprintf(fmt, "%s=%s", "PWD", cwd); +			b_export_with_equals(fmt, msh); +		} +		else +			ft_dprintf(STDERR_FILENO, "minishell: %s\n", strerror(errno));  		return ;  	}  	if ((dir = opendir(cwd)) != NULL)  		closedir(dir);  	else if (errno == ENOENT)  	{ -		getcwd(cwd, PATH_MAX); -		ft_sprintf(fmt, "%s=%s", "PWD", cwd); -		b_export_with_equals(fmt, msh); +		if (getcwd(cwd, PATH_MAX) != NULL) +		{ +			ft_sprintf(fmt, "%s=%s", "PWD", cwd); +			b_export_with_equals(fmt, msh); +		} +		else +			ft_dprintf(STDERR_FILENO, "minishell: %s\n", strerror(errno));  		return ;  	}  }  | 
