23 result = ft_strdup(
"");
25 while (i < top && result)
27 tmp = ft_strjoin(result,
"/");
30 result = ft_strjoin(
"", stack[i]);
32 result = ft_strjoin(tmp, stack[i]);
36 if (!result || !result[0])
39 return (ft_strdup(
"/"));
52 segs = ft_split(path,
'/');
64 else if (segs[i][0] &&
ft_strcmp(segs[i],
".") != 0)
65 stack[top++] = segs[i];
86 joined = ft_strjoin(base,
"/");
89 result = ft_strjoin(joined, arg);
103 old_dup = ft_strdup(
"");
105 old_dup = ft_strdup(old_pwd);
void update_pwd_vars(t_shell *shell, char *old_pwd, char *new_pwd)
int change_dir(t_shell *shell, char *new_pwd)
static char * build_path(char **stack, int top)
char * compute_logical_pwd(t_shell *shell, char *arg)
char * normalize_logical_path(char *path)
void free_str_array(char **arr)
NULL-terminated string dizisini serbest bırakır.
char * get_env_value(t_list *env_list, char *key)
Environment listesinde key'e göre değer döndürür.
int update_env_value(t_list *env_list, char *key, char *new_value)
Mevcut env değişkeninin değerini günceller.
Minishell ana header dosyası
int ft_strcmp(const char *s1, const char *s2)