Ejemplo n.º 1
0
void	go_to(int i, char **tab, char ***penv)
{
    char pwd[1024];
    char **cmd;

    getcwd(pwd, sizeof(pwd));
    cmd = ft_strsplit(ft_strjoin("setenv OLDPWD ", pwd), ' ');
    b_setenv(0, cmd, penv);
    chdir(tab[i + 1]);
    getcwd(pwd, sizeof(pwd));
    cmd = ft_strsplit(ft_strjoin("setenv PWD ", pwd), ' ');
    b_setenv(0, cmd, penv);
}
Ejemplo n.º 2
0
Archivo: b_cd.c Proyecto: faille76/42sh
static void		b_cd_env(t_shell		*shell,
				 char			*oldpwd)
{
  char			*av[4];
  char			pwd[4096];

  shell->oldpwd = strdup(oldpwd);
  av[0] = "setenv";
  av[1] = "OLDPWD";
  av[2] = shell->oldpwd;
  av[3] = NULL;
  b_setenv(3, av, shell);
  if (getcwd(pwd, 4096) == NULL)
    strcpy(pwd, "/");
  av[1] = "PWD";
  av[2] = pwd;
  b_setenv(3, av, shell);
}
Ejemplo n.º 3
0
void	valid_builtin(t_init *init)
{
	init->s = ft_strtrim(init->s);
	if (!(ft_strcmp(init->s, "env")))
		disp_env(init->tmpenv);
	else if (!(ft_strncmp(init->s, "setenv", 6)))
		b_setenv(init);
	else if (!(ft_strncmp(init->s, "unsetenv", 8)))
		b_unsetenv(init);
	else if (!(ft_strncmp(init->s, "cd", 2)))
		change_dir(init->s, init->tmpenv);
	else if (!(ft_strcmp(init->s, "pwd")))
		disp_pwd(init->tmpenv);
	else if (!(ft_strcmp(init->s, "exit")))
		go_exit(init);
	else
		foork(init->tmpenv, init->s);
}