Ejemplo n.º 1
0
int		term_ini(t_env *env)
{
	char	*n_term;

	if ((n_term = env_get_value("TERM", env)) == NULL)
		return (term_error(0));
	if (tgetent(NULL, n_term) == -1)
		return (term_error(1));
	if (tcgetattr(0, env->term) == -1)
		return (term_error(2));
	env->canon_save = env->term->c_lflag;
	return (0);
}
Ejemplo n.º 2
0
void		init_term(t_all *all, char **dupenv)
{
	char			*term_name;

	term_name = NULL;
	if ((term_name = get_env_var(dupenv, "TERM=")) == NULL)
		term_error("GETENV");
	if (tgetent(NULL, term_name) == -1)
		term_error("TGETENT");
	if (tcgetattr(0, &all->term) == -1)
		;
	all->term.c_lflag &= ~(ECHO | ICANON);
	all->term.c_cc[VMIN] = 1;
	all->term.c_cc[VTIME] = 0;
	if (tcsetattr(0, TCSADRAIN, &all->term) == -1)
		;
}
Ejemplo n.º 3
0
Archivo: Test.c Proyecto: utayo/typing
	void Test_message()
	{
	  int i;
	  Token *token = test.intprt.token;
	  
	  Token_get(token);
	  
	  for (i=0; Token_type(token) == STRING_token; i++){
	    if (i >= MAX_REPEAT){
	      term_error("テストのメッセージが多すぎます。");
	    }
	    test.message_buf[i] = Test_alloc(strlen(Token_now(token))+1);
	    strcpy(test.message_buf[i], Token_now(token));
	    Token_get(token);
	  }
	}
Ejemplo n.º 4
0
Archivo: Test.c Proyecto: utayo/typing
	/**
	 * 試験テキスト内の!TEXT後を処理する
	 */
	void Test_text()
	{
	  int i;
	  Token *token = test.intprt.token;
	  
	  Token_get(token);
	  
	  for (i=0; Token_type(token) == STRING_token; i++){
	    if (i < MAX_TEXT){
	      test.text_buf[i] = Test_alloc(strlen(Token_now(token))+1);
	      strcpy(test.text_buf[i], Token_now(token));
	    } else {
	      term_error("練習テキストが多すぎます。");
	    }
	    
	    Token_get(token);
	  }
	  
	  test.text_no = i;
	}
Ejemplo n.º 5
0
int		term_set_attr(t_term *term)
{
	if (tcsetattr(0, TCSADRAIN, term) == -1)
		return (term_error(3));
	return (0);
}