1 /* input.c -- input management stuff
3 * author: hackbard@hackdaworld.dyndns.org
9 int input_init(t_input *input) {
13 puts("[input] initializing input system ...");
15 if((input->content=(char *)malloc(MAX_CONTENT))==NULL) {
16 perror("[input] malloc call");
22 /* switch off canonical mode */
23 tios.c_lflag&=(~ICANON);
24 tios.c_lflag&=(~ECHO);
25 tcsetattr(0,TCSANOW,&tios);
30 int input_shutdown(t_input *input) {
39 tcsetattr(0,TCSANOW,&tios);
41 puts("[input] shutdown");
46 int input_get_char(t_input *input,int (*callback)(t_input *input,void *ptr),
51 if(read(0,data,1)==-1) {
52 perror("[input] read call");
56 if(input->c_count==MAX_CONTENT) {
57 puts("[input] max input length reached");
61 input->content[input->c_count]=data[0];
64 if(data[0]=='\n') input->c_count=0;