retif matching du glob sur du star

This commit is contained in:
wescande 2017-03-09 03:47:39 +01:00
parent c481059520
commit 1aaccbe586
3 changed files with 7 additions and 4 deletions

View file

@ -6,7 +6,7 @@
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */ /* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2017/01/30 12:07:16 by wescande #+# #+# */ /* Created: 2017/01/30 12:07:16 by wescande #+# #+# */
/* Updated: 2017/03/08 14:50:58 by wescande ### ########.fr */ /* Updated: 2017/03/09 03:24:59 by wescande ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -40,6 +40,7 @@ static void dir_list_content(t_glob *gl, char **str, char *pat,
ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + gl->cur_dir * 2 * ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + gl->cur_dir * 2 *
(path_tmp[0] == '.' && path_tmp[1] == '/'))); (path_tmp[0] == '.' && path_tmp[1] == '/')));
} }
gl->pat = pat;
ft_strdel(&path_tmp); ft_strdel(&path_tmp);
} }
} }

View file

@ -6,7 +6,7 @@
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */ /* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */
/* Updated: 2017/03/08 23:31:22 by ariard ### ########.fr */ /* Updated: 2017/03/09 03:24:24 by wescande ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */ /* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2017/01/24 17:30:23 by wescande #+# #+# */ /* Created: 2017/01/24 17:30:23 by wescande #+# #+# */
/* Updated: 2017/03/08 14:35:43 by wescande ### ########.fr */ /* Updated: 2017/03/09 03:24:48 by wescande ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -69,15 +69,18 @@ static int match_bracket(t_glob *gl, char c)
static int match_star(t_glob *gl, char *str, char *full_word) static int match_star(t_glob *gl, char *str, char *full_word)
{ {
char *fix; char *fix;
char *pat;
if (gl->pat[1] == '*' && if (gl->pat[1] == '*' &&
!is_char_esc(gl->esc, ((char **)gl->m_pat->content)[0], gl->pat + 1)) !is_char_esc(gl->esc, ((char **)gl->m_pat->content)[0], gl->pat + 1))
dir_research(gl, full_word, gl->pat + 1, 1); dir_research(gl, full_word, gl->pat + 1, 1);
if (!*gl->pat || (*gl->pat == '*' && !*++gl->pat)) if (!*gl->pat || (*gl->pat == '*' && !*++gl->pat))
return (1); return (1);
pat = gl->pat;
fix = str + ft_strlen(str); fix = str + ft_strlen(str);
while (fix > str) while (fix > str)
{ {
gl->pat = pat;
if (match_pattern(gl, fix, full_word)) if (match_pattern(gl, fix, full_word))
return (1); return (1);
--fix; --fix;
@ -90,7 +93,6 @@ static char *manage_pat(t_glob *gl, char *pat, char *str)
if (pat[0] == '.' && pat[1] == '/' if (pat[0] == '.' && pat[1] == '/'
&& ((str[0] == '.' && str[1] != '/') || str[0] != '.')) && ((str[0] == '.' && str[1] != '/') || str[0] != '.'))
{ {
DG("%s vs %s", pat, str);
gl->cur_dir = 0; gl->cur_dir = 0;
return (pat + 2); return (pat + 2);
} }