quoting + backslash + backquotes + parentheses + accolades revu : normalement ca marche. On va tenter d'ajouter la completion
This commit is contained in:
parent
c0918e8e6b
commit
3e2f3eae76
1 changed files with 0 additions and 88 deletions
|
|
@ -1,88 +0,0 @@
|
|||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* quotes_gest.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: gwojda <gwojda@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/01/05 12:20:19 by gwojda #+# #+# */
|
||||
/* Updated: 2017/02/02 17:53:41 by gwojda ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "minishell.h"
|
||||
|
||||
int ft_check_quotes_num(char *s)
|
||||
{
|
||||
int i;
|
||||
char simp;
|
||||
char doub;
|
||||
|
||||
i = 0;
|
||||
simp = 0;
|
||||
doub = 0;
|
||||
while (s[i])
|
||||
{
|
||||
if (s[i] == '\'' && ((i && s[i - 1] != '\\') || !i))
|
||||
{
|
||||
simp = 1;
|
||||
++i;
|
||||
while (s[i] && !(s[i] == '\'' && ((i && s[i - 1] != '\\') || !i)))
|
||||
++i;
|
||||
if (s[i] == '\'' && ((i && s[i - 1] != '\\') || !i))
|
||||
simp = 0;
|
||||
}
|
||||
else if (s[i] == '"' && ((i && s[i - 1] != '\\') || !i))
|
||||
{
|
||||
doub = 1;
|
||||
++i;
|
||||
while (s[i] && !(s[i] == '"' && ((i && s[i - 1] != '\\') || !i)))
|
||||
++i;
|
||||
if (s[i] == '"' && ((i && s[i - 1] != '\\') || !i))
|
||||
doub = 0;
|
||||
}
|
||||
if (s[i])
|
||||
++i;
|
||||
}
|
||||
if (doub)
|
||||
return (2);
|
||||
else if (simp)
|
||||
return (1);
|
||||
return (0);
|
||||
}
|
||||
|
||||
void ft_check_quotes(char **s)
|
||||
{
|
||||
int ret;
|
||||
char *tmp;
|
||||
char *tmp2;
|
||||
int prompt_size_mem;
|
||||
t_list_history *head;
|
||||
|
||||
head = data_singleton()->line.list_beg;
|
||||
if (!*s)
|
||||
return ;
|
||||
while ((ret = (ft_check_quotes_num(*s))))
|
||||
{
|
||||
if (ret == 1)
|
||||
ft_putstr("squote> ");
|
||||
else if (ret == 2)
|
||||
ft_putstr("dquote> ");
|
||||
tmp = *s;
|
||||
*s = ft_strjoin(*s, "\n");
|
||||
ft_strdel(&tmp);
|
||||
tmp = *s;
|
||||
prompt_size_mem = data_singleton()->line.prompt_size;
|
||||
data_singleton()->line.input = NULL;
|
||||
data_singleton()->line.pos = 0;
|
||||
tmp2 = ft_read_stdin();
|
||||
data_singleton()->line.prompt_size = prompt_size_mem;
|
||||
ft_putchar('\n');
|
||||
if (!tmp2)
|
||||
continue ;
|
||||
*s = ft_strjoin(tmp, tmp2);
|
||||
data_singleton()->line.input = *s;
|
||||
ft_strdel(&tmp);
|
||||
ft_strdel(&tmp2);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue