static char *build_pwd(char *str, char *pwd) { int i; int size; size = 0; i = (*str == '~' || *str == '-') ? 1 : 0; while ((size = ft_strlenc(&str[i], '/')) != -1) { if (!size || (!ft_strncmp(&str[i], ".", size) && size == 1)) i++; else if (!ft_strncmp(&str[i], "..", size) && size == 2) { pwd = ft_path_back(pwd, '/'); if (!*pwd) *pwd = '/'; i += size; } else { pwd = ft_strcat(pwd, "/"); pwd = ft_strncat(pwd, &str[i], size); i += size; } } return (pwd); }
void ft_gnl_cut(char *ref, char **s1, char **s2) { int size1; int size2; size1 = ft_strlenc(ref, '\n'); size2 = ft_ban_neg(ft_strlen(ref) - size1 - 1); *s1 = ft_strsub(ref, 0, size1); *s2 = ft_strsub(ref, size1 + 1, size2); ft_strdel(&ref); }