X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fivac.git;a=blobdiff_plain;f=src%2Fivac.c;h=12e5f5961f2251ec7a2b16b7f195568323b8c47a;hp=281b1a567bd8a70b9bbcd48af814d58f563e24c7;hb=84516616d9547a46e6676ba7e942edc60009345a;hpb=99e577ce594ed343397276ac6c2dd9729ac10d6d diff --git a/src/ivac.c b/src/ivac.c index 281b1a5..12e5f59 100644 --- a/src/ivac.c +++ b/src/ivac.c @@ -138,7 +138,7 @@ int main(int argc,char **argv) { /* display init */ display_init(&(ivac.display)); - + /* display */ ivac_display(&ivac); ivac_display_content(&ivac); @@ -315,6 +315,10 @@ int ivac_event_cb(t_event *event,void *ptr) { int ivac_regular_cb(t_event *event,void *ptr) { + t_ivac *ivac; + + ivac=(t_ivac *)ptr; + /* usual jobs like audio & video transmit ... */ return SUCCESS; @@ -329,35 +333,29 @@ int ivac_parse_command(t_input *input,void *ptr) { char *data,valid; char c_str[IVAC_CONSOLE_STRING_LEN]; char arg[IVAC_ARG_COUNT][IVAC_ARG_LEN]; - char debug_string[128]; +#ifdef DEBUG + char debug_string[IVAC_CONSOLE_STRING_LEN]; +#endif ivac=(t_ivac *)ptr; data=input->content; valid=0; /* refresh prompt content only */ - ivac_display_prompt_content(ivac); - ivac_display_draw(ivac); - -#ifdef DEBUG - ivac_add_to_monitor(ivac,"nach display refresh"); -#endif - -#ifdef DEBUG - ivac_add_to_monitor(ivac,"nach display refresh"); -#endif - #ifdef DEBUG - - strcpy(debug_string,"hahahaha!"); + sprintf(debug_string,"-> %02x c_count = %d",input->content[input->c_count-1], + input->c_count); ivac_add_to_monitor(ivac,debug_string); #endif + ivac_display_prompt_content(ivac); + ivac_display_draw(ivac); /* parse command routines */ - if(data[input->c_count-1]=='\n' || data[input->c_count-1]=='\r') { + if(data[input->c_count-1]=='\n'||data[input->c_count-1]=='\r') { #ifdef DEBUG - ivac_add_to_monitor(ivac,"got newline or carriage return!"); + sprintf(debug_string,"got %02x",data[input->c_count-1]); + ivac_add_to_monitor(ivac,debug_string); #endif /* delete console string + args */ @@ -366,21 +364,28 @@ int ivac_parse_command(t_input *input,void *ptr) { /* get args */ len=0; - while(data[len]!='\n') len++; + while(data[len]!='\n'&&data[len]!='\r') len++; +#ifdef DEBUG + sprintf(debug_string,"len = %d\n",len); + ivac_add_to_monitor(ivac,debug_string); +#endif i=0; j=0; while((inet.connection[channel].ip, ivac->net.connection[channel].port); event_math(ivac->net.connection[channel].fd,&(ivac->event),READ,ADD); ivac_send_info(channel,ivac); } + else if(i==N_E_CONNECT) + sprintf(c_str,"channel %02d: connection error - %s", + channel,sys_errlist[errno]); } else sprintf(c_str,"invalid argument: '%s'",arg[1]); } @@ -487,18 +495,15 @@ int ivac_parse_command(t_input *input,void *ptr) { /* add console string to console buffer */ ivac_add_to_monitor(ivac,c_str); - /* refresh whole display content */ - ivac_display_content(ivac); - ivac_display_draw(ivac); - /* delete input content buffer + reset counter */ memset(input->content,0,input->c_count-1); input->c_count=0; + /* refresh whole display content */ + ivac_display_content(ivac); + ivac_display_draw(ivac); } - ivac_add_to_monitor(ivac,"debug: end of parse function"); - return SUCCESS; } @@ -566,14 +571,17 @@ int ivac_display_console(t_ivac *ivac) { int ivac_display_console_content(t_ivac *ivac) { - int i; + int i,size; char string[IVAC_CONSOLE_STRING_LEN]; for(i=0;iconsole[i]); + size=strlen(ivac->console[i]); + size=(sizeconsole[i],size); + memset(string+size,' ',IVAC_CONSOLE_STRING_LEN-size); display_string(&(ivac->display), 0,ivac->display.max_y-IVAC_PROMPT_LEN-IVAC_CONSOLE_LEN+1+i, - string,strlen(string)); + string,IVAC_CONSOLE_STRING_LEN); } return SUCCESS; @@ -593,10 +601,11 @@ int ivac_display_prompt_content(t_ivac *ivac) { for(count=0;countinput.c_count;count++) string[count]=ivac->input.content[count]; - for(;countdisplay.max_x-8;count++) string[count]=' '; + for(count=ivac->input.c_count;countdisplay),8,ivac->display.max_y-1, - string,ivac->display.max_x); - + string,IVAC_CONSOLE_STRING_LEN-8); + return SUCCESS; }