From b1267254008b75f3bfea5a9c47dee525e7da1860 Mon Sep 17 00:00:00 2001
From: JozanLeClerc <bousset.rudy@gmail.com>
Date: Sat, 12 Dec 2020 18:19:38 +0100
Subject: Good

---
 TODO.org          |  1 +
 src/m_funptr.c    |  2 +-
 src/m_funptr.h    |  2 +-
 src/s_init.c      |  4 ++--
 src/s_init_next.c | 22 ++++++++++++++++------
 5 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/TODO.org b/TODO.org
index 6ae8fef..6f2018b 100644
--- a/TODO.org
+++ b/TODO.org
@@ -58,6 +58,7 @@
 ** DONE macOS compliancy
 ** DONE No fixed int
    CLOSED: [2020-10-28 Wed 01:40]
+** TODO export qwe="'123'"; echo $qwe <--- show squotes like bash
 
 * Stuff to add
 ** DONE builtins to pipes
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 ;
 	}
 }
-- 
cgit v1.2.3