Normedout cmd_cd.c

This commit is contained in:
Tanguy MAZE 2020-01-24 18:59:26 +01:00
parent 40718a99ac
commit 79e2ca6f1b
2 changed files with 37 additions and 15 deletions

16
norm.txt Normal file
View File

@ -0,0 +1,16 @@
Norme: ./srcs/main.c
Error (line 38): function main has 49 lines
Error (line 38, col 0): main has 6 variables
--
Norme: ./srcs/cmd_cd.c
Error: 7 functions in the file
Error (line 120): function cmd_cd has 33 lines
--
Norme: ./srcs/ms_exec.c
Error: 6 functions in the file
Error (line 59): function check_path_dot has 26 lines
Error (line 89): function check_path has 51 lines
Error (line 144): function exec_cmd has 30 lines
--
Norme: ./srcs/ms_ext.c
Error: 6 functions in the file

View File

@ -6,7 +6,7 @@
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/01/07 16:44:40 by tmaze #+# #+# */
/* Updated: 2020/01/23 23:37:53 by tmaze ### ########.fr */
/* Updated: 2020/01/24 18:54:51 by tmaze ### ########.fr */
/* */
/* ************************************************************************** */
@ -21,6 +21,15 @@ void *put_error_cd(char *file, char *msg)
return (NULL);
}
int put_error_cd2(char *file, char *msg)
{
ft_putstr("cd: ");
ft_putstr(file);
ft_putstr(": ");
ft_putendl(msg);
return (1);
}
char *check_path_slash_cd(char *exec)
{
int i;
@ -52,23 +61,16 @@ int cmd_cd_update_env(char *path, t_env **env, char opt)
ft_bzero(p_path, 4096);
if (!(pwd = ft_envgetelem("PWD", *env)))
{
put_error_cd(path, "env var PWD undefined");
return (1);
}
return (put_error_cd2(path, "env var PWD undefined"));
if (getcwd(p_path, 4096) == NULL || (oldpwd = ft_strdup(pwd->val)) == NULL
|| ft_realpath(path, &c_path) == NULL)
{
put_error_cd(path, "error");
return (1);
}
return (put_error_cd2(path, "error"));
if (ft_envupdate("PWD", *env, ((opt == 'P') ? p_path : c_path)) == NULL
|| ft_envupdate("OLDPWD", *env, oldpwd) == NULL)
{
put_error_cd(path, "error");
ft_strdel(&oldpwd);
ft_strdel(&c_path);
return (1);
return (put_error_cd2(path, "error"));
}
ft_strdel(&oldpwd);
ft_strdel(&c_path);
@ -126,15 +128,19 @@ int cmd_cd(char **argv, t_env **env)
i = 0;
if ((opt = cd_getparams(argv, &i)) == '\0')
return (1);
if (!argv[i] && (elem = ft_envgetelem("HOME", *env)) != NULL && elem->val != NULL)
if (!argv[i] && (elem = ft_envgetelem("HOME", *env)) != NULL
&& elem->val != NULL)
return (cmd_cd_core(elem->val, env, opt));
else if (argv[i] && argv[i][0] == '/')
return (cmd_cd_core(argv[i], env, opt));
else if (argv[i] && argv[i][0] == '-' && (elem = ft_envgetelem("OLDPWD", *env)) != NULL)
else if (argv[i] && argv[i][0] == '-'
&& (elem = ft_envgetelem("OLDPWD", *env)) != NULL)
return (cmd_cd_core(elem->val, env, opt));
else if (argv[i] && argv[i][0] != '/' && (elem = ft_envgetelem("PWD", *env)) != NULL && elem->val != NULL)
else if (argv[i] && argv[i][0] != '/'
&& (elem = ft_envgetelem("PWD", *env)) != NULL && elem->val != NULL)
{
if ((path = ft_strnew(ft_strlen(elem->val) + ft_strlen(argv[i]) + 1)) == NULL)
if ((path = ft_strnew(ft_strlen(elem->val)
+ ft_strlen(argv[i]) + 1)) == NULL)
put_error_cd(argv[i], "memory error");
if (path == NULL)
return (1);