Skip to content
builtin_unset.c 720 B
Newer Older
Seblu's avatar
Seblu committed
/*
Seblu's avatar
Seblu committed
** builtin_unset.c for 42sh
Seblu's avatar
Seblu committed
**
** Made by Seblu
Seblu's avatar
Seblu committed
** Login   <seblu@epita.fr>
Seblu's avatar
Seblu committed
**
** Started on  Thu May 11 09:36:06 2006 Seblu
Seblu's avatar
Seblu committed
** Last update Fri Nov 17 13:09:29 2006 seblu
Seblu's avatar
Seblu committed
*/

#include <stdio.h>
#include <string.h>
#include <assert.h>
Seblu's avatar
Seblu committed
#include "../shell/var.h"
#include "../shell/func.h"
#include "../shell/shell.h"
Seblu's avatar
Seblu committed

Seblu's avatar
Seblu committed
int		builtin_unset(char *argv[])
Seblu's avatar
Seblu committed
{
Seblu's avatar
Seblu committed
  int		f = 0;
  int		v = 1;
Seblu's avatar
Seblu committed

Seblu's avatar
Seblu committed
  assert(argv);
  for (int i = 0; argv[i]; ++i)
    if (!strcmp(argv[i], "-v"))
      v = 1;
    else if (!strcmp(argv[i], "-f"))
      f = 1;
  for (int i = 0; argv[i]; ++i)
    if (argv[i][0] == '-')
      continue;
    else {
      if (v) var_del(shell->var, argv[i]);
      if (f) func_del(shell->func, argv[i]);
    }
  return 0;
Seblu's avatar
Seblu committed
}