コード例 #1
0
ファイル: minishell.c プロジェクト: Laxa/minishell
static void     clean_and_exit_minishell(void)
{
  free_builtins(shell);
  free_env(shell);
  free(shell);
  shell = NULL;
}
コード例 #2
0
ファイル: exit.c プロジェクト: Linezek/42sh
t_uchar		run_exit(char **env,
			 char **path,
			 t_command *command,
			 t_builtin_ptr **builtins)
{
  char		exit_status;

  if (count_args(command->argv_tmp) > 2)
    {
      my_dprintf(STDERR, "exit: Expression Syntax.\n");
      return (EXIT_FAILURE);
    }
  if (command->argv_tmp == NULL || count_args(command->argv_tmp) == 1)
    exit_status = command->last_ret;
  else if (my_str_isnum(command->argv_tmp[1]) == FALSE)
    {
      my_dprintf(STDERR, "exit: Expression Syntax.\n");
      return (EXIT_FAILURE);
    }
  else
    exit_status = my_atoi(command->argv_tmp[1]);
  if (command->interactive == TRUE)
    my_dprintf(STDERR, "exit\n");
  my_free_2d_tab(env);
  my_free_2d_tab(path);
  my_free_2d_tab(command->argv);
  free(command->argv_tmp);
  free_builtins(builtins);
  exit(exit_status);
  return (EXIT_SUCCESS);
}