45a46,47
> #define MAX_COMMAND_LENGTH 4096
> 
47c49,50
< char command[4096];
---
> char command[MAX_COMMAND_LENGTH];
> char saved_text[MAX_COMMAND_LENGTH];
131a135,136
> 	
> 	memset(saved_text, 0, sizeof(saved_text));
239,246c244,245
< 		char *line = strtok(NULL,"\0");
< 		int length = strlen(line);		
< 		while (length>50) {
< 			draw_text(line,50);
< 			line+=50;
< 			length-=50;
< 		}
< 		draw_text(line,length);
---
> 		// store the text, we'll show it on failure
> 		strncpy(saved_text, strtok(NULL, "\0"), sizeof(saved_text));
248c247
< 		draw_status(strtok(NULL,"\0"),0);
---
> 		// ignore normal status messages
250c249
< 		draw_status(strtok(NULL,"\0"),TEXT_FOREGROUND);
---
> 		// ignore success messages
252c251,266
< 		draw_status(strtok(NULL,"\0"),RED);
---
> 		// show the saved text if any
> 		if(strlen(saved_text) > 0) {
> 			// draw the line of text
> 			char* line = saved_text;
> 			int length = strlen(line);		
> 			while (length>50) {
> 				draw_text(line,50);
> 				line+=50;
> 				length-=50;
> 			}
> 			draw_text(line,length);
> 			
> 			// draw failure text, clear saved text
> 			draw_status(strtok(NULL, "\0"),RED);
> 			memset(saved_text, 0, sizeof(saved_text));
> 		}
