fixed wildcards
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/02/09 15:26:01 by tomoron #+# #+# */
|
||||
/* Updated: 2024/04/24 18:08:42 by tomoron ### ########.fr */
|
||||
/* Updated: 2024/04/24 20:39:35 by marde-vr ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
#include "minishell.h"
|
||||
@ -50,7 +50,8 @@ char *get_token(char **cmd, int *quotes[2], t_env *env, int *is_var)
|
||||
i += add_var_to_str(res + i, cmd, env, is_var);
|
||||
else if (**cmd == '~' && !*(quotes[0]) && !*(quotes[1]))
|
||||
i += add_home_to_str(res + i);
|
||||
else if (((**cmd == '\'' && *(quotes[1])) || (**cmd == '"' && *(quotes[0])))
|
||||
else if (((**cmd == '\'' && *(quotes[1]))
|
||||
|| (**cmd == '"' && *(quotes[0])))
|
||||
|| (**cmd != '\'' && **cmd != '"'))
|
||||
res[i++] = **cmd;
|
||||
(*cmd)++;
|
||||
@ -72,7 +73,8 @@ t_token *parse_tokens(char *command, t_env *env)
|
||||
is_var = 0;
|
||||
while (command && *command)
|
||||
{
|
||||
value = get_token(&command, (int *[2]){&in_quote, &in_dquote}, env, &is_var);
|
||||
value = get_token(&command, (int *[2]){&in_quote, &in_dquote},
|
||||
env, &is_var);
|
||||
if (!value)
|
||||
return (free_token(res));
|
||||
res = expand_wildcards(res, value, is_var);
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/02/21 21:47:15 by marde-vr #+# #+# */
|
||||
/* Updated: 2024/04/24 17:48:14 by tomoron ### ########.fr */
|
||||
/* Updated: 2024/04/24 20:37:41 by marde-vr ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -94,7 +94,7 @@ void get_cmd_path(t_msh *msh)
|
||||
get_path(msh, &found);
|
||||
if (!found)
|
||||
{
|
||||
if(!*(msh->tokens->value))
|
||||
if (!*(msh->tokens->value))
|
||||
ft_printf_fd(2, "'': command not found\n");
|
||||
else
|
||||
ft_printf_fd(2, "%s: command not found\n", msh->tokens->value);
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: tomoron <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/04/15 12:53:29 by tomoron #+# #+# */
|
||||
/* Updated: 2024/04/24 18:02:49 by tomoron ### ########.fr */
|
||||
/* Updated: 2024/04/24 20:37:10 by marde-vr ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
#include "minishell.h"
|
||||
@ -15,20 +15,27 @@ int filename_corresponds(char *wildcard, char *value)
|
||||
{
|
||||
if (*value == '.' && *wildcard != '.')
|
||||
return (0);
|
||||
while (*wildcard && (*wildcard == '*' || *wildcard == *value))
|
||||
while (*wildcard && *value)
|
||||
{
|
||||
if (*wildcard == '*')
|
||||
{
|
||||
while (*wildcard && *value && *value != wildcard[1]
|
||||
&& *wildcard != wildcard[1])
|
||||
if (!wildcard[1])
|
||||
return (1);
|
||||
while (*value)
|
||||
{
|
||||
if (filename_corresponds(wildcard + 1, value))
|
||||
return (1);
|
||||
value++;
|
||||
wildcard++;
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
while (*wildcard && *value && *value == *wildcard && *wildcard != '*')
|
||||
else if (*wildcard == *value)
|
||||
{
|
||||
wildcard++;
|
||||
value++;
|
||||
}
|
||||
else
|
||||
return (0);
|
||||
}
|
||||
return (!*wildcard && !*value);
|
||||
}
|
||||
|
Reference in New Issue
Block a user