rectif du glob sur l'affichage du pattern quand pas de match, et ajout du / quand match avec un dossier

This commit is contained in:
wescande 2017-03-08 14:53:11 +01:00
parent 4ee0f24632
commit e2a254863c
3 changed files with 12 additions and 8 deletions

View file

@ -6,7 +6,7 @@
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/01/30 12:07:16 by wescande #+# #+# */
/* Updated: 2017/02/24 22:04:49 by ariard ### ########.fr */
/* Updated: 2017/03/08 14:50:58 by wescande ### ########.fr */
/* */
/* ************************************************************************** */
@ -49,9 +49,13 @@ int dir_research(t_glob *gl, char *p,
{
DIR *dir;
struct dirent *in;
int ret;
ret = 0;
if (!pat)
{
gl->found = 1;
ft_ld_pushfront(&gl->match, ft_strjoin(p, "/"));
return (0);
}
if ((ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') && is_directory(p))
{
dir = opendir(p);
@ -60,5 +64,5 @@ int dir_research(t_glob *gl, char *p,
(char *[2]){p, in->d_name}, pat, recursive);
closedir(dir);
}
return (ret);
return (0);
}

View file

@ -6,7 +6,7 @@
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/01/04 16:29:54 by wescande #+# #+# */
/* Updated: 2017/03/03 20:38:53 by wescande ### ########.fr */
/* Updated: 2017/03/08 14:50:56 by wescande ### ########.fr */
/* */
/* ************************************************************************** */
@ -66,8 +66,7 @@ char **glob(char *pat, unsigned char *esc,
else
dir_research(&gl, "/", gl.pat + 1, 0);
if (!gl.found)
ft_ld_pushfront(&gl.match,
ft_strjoin(gl.cur_dir ? "" : "./", CH(gl.m_pat)[0]));
ft_ld_pushfront(&gl.match, ft_strdup(CH(gl.m_pat)[0]));
if (!gl.m_pat->next)
break ;
gl.m_pat = gl.m_pat->next;

View file

@ -6,7 +6,7 @@
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/01/24 17:30:23 by wescande #+# #+# */
/* Updated: 2017/02/24 22:06:01 by ariard ### ########.fr */
/* Updated: 2017/03/08 14:35:43 by wescande ### ########.fr */
/* */
/* ************************************************************************** */
@ -90,6 +90,7 @@ static char *manage_pat(t_glob *gl, char *pat, char *str)
if (pat[0] == '.' && pat[1] == '/'
&& ((str[0] == '.' && str[1] != '/') || str[0] != '.'))
{
DG("%s vs %s", pat, str);
gl->cur_dir = 0;
return (pat + 2);
}