Fix return codes of cd, add error message to cd
authorLukas Jiriste <ljiriste@student.42prague.com>
Fri, 23 Aug 2024 14:41:51 +0000 (16:41 +0200)
committerLukas Jiriste <ljiriste@student.42prague.com>
Fri, 23 Aug 2024 14:55:29 +0000 (16:55 +0200)
src/builtins/cd.c

index 3d6c35fd3d4cb4814d98b3f3134622b3f9b129e7..31979b632a5f38601822a07ad66b3f0183aab573 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/08/02 16:37:48 by ljiriste          #+#    #+#             */
-/*   Updated: 2024/08/02 18:37:45 by ljiriste         ###   ########.fr       */
+/*   Updated: 2024/08/23 16:54:38 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -24,7 +24,10 @@ int  chdir_wrapper(const char *path, t_execution_env *env)
        if (!path || path[0] == '\0')
                return (0);
        if (chdir(path))
-               return (3);
+       {
+               ft_dprintf(STDERR_FILENO, "cd: %s: No such file or directory\n", path);
+               return (1);
+       }
        cwd = getcwd(NULL, 0);
        if (!cwd)
                return (1);
@@ -32,7 +35,7 @@ int   chdir_wrapper(const char *path, t_execution_env *env)
        {
                chdir(get_env_var_value(env, "PWD"));
                free(cwd);
-               return (2);
+               return (1);
        }
        free(cwd);
        return (0);
@@ -44,5 +47,6 @@ int   cd(int argc, char **argv, t_execution_env *env)
                return (chdir_wrapper("~", env));
        if (argc == 2)
                return (chdir_wrapper(argv[1], env));
+       ft_putstr_fd("cd: too many arguments\n", STDERR_FILENO);
        return (1);
 }