diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index dd568f8f..4ba55910 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/28 00:14:11 by wescande ### ########.fr */ +/* Updated: 2017/01/30 12:12:23 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -40,7 +40,7 @@ typedef struct s_expand unsigned char *esc; char **split; char *s1; -} t_expand; +} t_expand; char **glob(const char *str, const unsigned char *esc, char **env); void expand_brace(t_glob *tglob); @@ -48,9 +48,15 @@ void glob_print(t_list *token, t_data *data); int match_pattern(t_glob *tglob, char *str, char *full_word); void dir_research(t_glob *tglob, char *p, const char *pat); void dir_research_recursive(t_glob *tglob, char *p, const char *pat); +/* +** return TRUE if path file is a directory. +*/ int is_directory(const char *path); - -int is_char_esc(const unsigned char *esc, const char *ini_str, const char *str_pos); +/* +** return TRUE if char at str_pos in ini_str is escape. +*/ +int is_char_esc(const unsigned char *esc, + const char *ini_str, const char *str_pos); /* ** LIST D: diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index 92b90348..815e64d6 100644 --- a/42sh/src/glob/dir_glob.c +++ b/42sh/src/glob/dir_glob.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* glob.c :+: :+: :+: */ +/* dir_glob.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/27 23:48:18 by wescande ### ########.fr */ +/* Created: 2017/01/30 12:07:16 by wescande #+# #+# */ +/* Updated: 2017/01/30 12:07:19 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index d09d531d..e086c68e 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/28 01:17:04 by wescande ### ########.fr */ +/* Updated: 2017/01/30 12:08:49 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,11 +14,12 @@ /* ** glob return expansion of a string. -** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab, ac}, ** +** pattern searched are *, ?, [a-z], [!a-z], [^a-z], {ab, ac}, ** ** input parameters are : ** -char *pat -> pattern string to be looking for match +** -char *esc -> escape binary sequence of *pat ** -char **env -> env var. could be NULL -** to just expanse in local directory and not in path +** to just expanse in local directory and not in path dir */ static void path_research(t_glob *gl, char **path) @@ -65,33 +66,6 @@ static void add_simple_pat(t_glob *gl) ft_ld_pushfront(&gl->match, ft_strdup(gl->pat)); } -static void printme_me(const char *pat, const unsigned char *esc) -{ - char *str; - int index; - int len; - - str = (char *)pat; - while (*str) - { - ft_dprintf(3, is_char_esc(esc, pat, str) ? "\\%c" : "%c", *str); - ++str; - } - ft_dprintf(3, "\n"); - len = ft_strlen(pat); - index = -1; - while (++index < len) - ft_dprintf(3, ((esc[index / 8] >> (7 - index % 8)) & 1) ? " 1" : "0"); - ft_dprintf(3, "\n"); - index = 0; - while (index < len) - { - ft_dprintf(3, "%08b", esc[index / 8]); - index += 8; - } - ft_dprintf(3, "\n"); -} - char **glob(const char *pat, const unsigned char *esc, char **env) { t_glob gl; @@ -103,7 +77,6 @@ char **glob(const char *pat, const unsigned char *esc, char **env) { gl.pat = ((char **)gl.m_pat->content)[0]; gl.esc = ((unsigned char **)gl.m_pat->content)[1]; - printme_me(gl.pat, gl.esc); add_simple_pat(&gl); if (!(gl.pat[0] == '/' || (gl.pat[0] == '.' && gl.pat[1] == '/')) && env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':')))