コード例 #1
0
ファイル: sh_init.c プロジェクト: loopfz/SHaft
void		set_pwd() {
  char		buf[4096];

  if (getcwd(buf, sizeof(buf)) != NULL) {
    sh_setenv("PWD", buf);
  }
}
コード例 #2
0
ファイル: cg_env.c プロジェクト: aiwanesk/Rendu-42
void			cg_shlvl(t_cmd *cmd)
{
	int		i;

	i = ft_atoi(get_var_env("SHLVL", cmd->env));
	i++;
	sh_setenv("SHLVL", ft_itoa(i), 1, cmd);
}
コード例 #3
0
ファイル: change_dir.c プロジェクト: loopfz/SHaft
int		do_chdir(char *path) {
  char		*pwd;

  if (chdir(path) != 0) {
    shell_warn("cd: chdir() failed.\n");
    return -1;
  }
  if ((pwd = sh_getenv("PWD")) != NULL) {
    sh_setenv("OLDPWD", pwd);
  }
  else
    sh_unsetenv("OLDPWD");
  set_pwd();
  return 0;
}
コード例 #4
0
ファイル: builtin.c プロジェクト: mgrimald/ft_sh1
int			built_in(char **argv, char **env)
{
	int		i;

	i = 0;
	if (ft_strcmp(argv[0], "exit") == 0 && (i = 1))
		sh_exit(argv, 42);
	else if (ft_strcmp(argv[0], "cd") == 0 && (i = 1))
		sh_cd(argv);
	else if (ft_strcmp(argv[0], "env") == 0 && (i = 1))
		sh_env(argv, env);
	else if (ft_strcmp(argv[0], "setenv") == 0 && (i = 1))
		sh_setenv(argv);
	else if (ft_strcmp(argv[0], "unsetenv") == 0 && (i = 1))
		sh_unsetenv(argv);
	else if (ft_strcmp(argv[0], "help") == 0 && (i = 1))
		sh_help();
	return (i);
}