Example #1
0
static char	*check_access(t_tree *tree, t_env *env)
{
  char		**tab;
  int		i_tab;
  char		*cmd_and_path;

  i_tab = -1;
  if ((tab = my_str_to_tab(env->value, ':')) == NULL)
    return (NULL);
  while (tab[++i_tab] != 0)
    {
      if ((cmd_and_path = my_strcat(tab[i_tab], tree->lexer->content, 0))
	  == NULL)
	return (NULL);
      if (access(cmd_and_path, F_OK) == -1)
	free(cmd_and_path);
      else
	{
	  free_tab(tab);
	  return (cmd_and_path);
	}
    }
  free_tab(tab);
  return (NULL);
}
Example #2
0
void	test_exit(char *buffer, t_list *list)
{
  char	**tab;

  tab = NULL;
  if (buffer == NULL || buffer == 0)
    {
      free(buffer);
      write(1, "exit\n", 5);
      delete_list(&list);
      exit(0);
    }
  tab = my_str_to_tab(buffer, ' ', 9);
  if (tab[0] != NULL)
    if (my_strcmp_exit(tab[0], "exit"))
      {
	if (!tab[1] || (tab[1] && !tab[2]))
	  {
	    delete_list(&list);
	    free(buffer);
	    write(1, "exit\n", 5);
	    free(tab);
	    exit(my_getnbr(tab[1]));
	  }
	write(2, "exit: Expression Syntax.\n", 25);
      }
  free(tab);
}