示例#1
0
文件: init.c 项目: ColDReaVeR/42sh
void			ft_init(void)
{
    char		buf[1024];
    char		histo_path[1024] = {0};

    ioctl(1, TIOCGWINSZ, &g_ws);
    signal(SIGWINCH, ft_resize);
    g_env.alias_lst = NULL;
    g_env.quote_wait = 0;
    signal(SIGINT, SIG_IGN);
    g_env.pid_list = NULL;
    g_env.cut = NULL;
    g_env.histo = NULL;
    ft_get_alias_list();
    if (tgetent(buf, ft_getenv(g_env.env, "TERM")) == -1)
        exit(EXIT_FAILURE);
    tcgetattr(0, &g_env.term);
    g_env.term.c_lflag &= ~(ICANON | ECHO | ISIG);
    g_env.term.c_cc[VMIN] = 1;
    g_env.term.c_cc[VTIME] = 0;
    tcsetattr(0, 0, &g_env.term);
    ft_strcpy(histo_path, ft_getenv(g_env.env, "HOME"));
    ft_strcat(histo_path, "/.42sh_histo");
    g_env.histo_fd = open(histo_path, O_CREAT | O_RDWR, 0777);
    ft_get_history();
}
示例#2
0
文件: init.c 项目: cdelouya/42sh
void			ft_init(t_term *term)
{
	char		buf[1024];

	g_env.alias_lst = NULL;
	g_env.quote_wait = 0;
	signal(SIGINT, SIG_IGN);
	g_env.pid_list = NULL;
	g_env.cut = NULL;
	g_env.histo = NULL;
	ft_get_alias_list();
	if (tgetent(buf, ft_getenv(g_env.env, "TERM")) == -1)
		exit(EXIT_FAILURE);
	tcgetattr(0, term);
	term->c_lflag &= ~(ICANON);
	term->c_lflag &= ~(ECHO);
	term->c_lflag &= ~(ISIG);
	term->c_cc[VMIN] = 1;
	term->c_cc[VTIME] = 0;
	tcsetattr(0, 0, term);
}