Пример #1
0
char				*check_line_cmd(char *str)
{
	int		i;

	i = 0;
	while (str[i] == ' ' && str[i])
		++i;
	if (!str[i])
		return (NULL);
	i = 0;
	if (check_line(str) == 2 || check_redir(str) == 1)
	{
		ft_putendl("msh: Parse error");
		return (NULL);
	}
	while (check_line(str) == 1 || str[ft_strlen(str) - 1] == '\\')
	{
		ft_putstr("parse> ");
		str = ft_strjoin(str, take_cmd(1));
	}
	if (check_line(str) == 2 || check_redir(str) == 1)
	{
		ft_putendl("msh: Parse error");
		return (NULL);
	}
	return (str);
}
Пример #2
0
int		my_history()
{
  t_hist	*hist;
  char		*s;

  hist = get_hist(NULL);
  if (hist == NULL)
    return (1);
  while (hist->prev != NULL)
     hist = hist->prev;
  if (hist->next != NULL)
    hist = hist->next;
  else
    return (0);
  while (hist != NULL)
    {
      my_putstr((s = take_cmd(hist->edit, 0, 0)));
      free(s);
      my_putchar('\n');
      hist = hist->next;
    }
  return (1);
}