%{ #include "wisebase.h" %} %{ #include "wiseoverlay.h" static boolean isinuse=FALSE; static FILE * overlay = NULL; static int delete_len=0; %func actually starts on overlay system on the FILE*. Should really by stderr... nothing else makes sense. %% void start_overlay(FILE * over) { overlay=over; isinuse=TRUE; } %func finishes an overlay system by putting in a newline and clearing the static variables %% void stop_overlay(void) { fprintf(overlay,"\n"); delete_len=0; overlay=NULL; isinuse=FALSE; } %func Does the business. Deletes the previous message with \b and then prints the current one ontop. don't put in \n's otherwise this is going to look yukky ;) %% void print_overlay(char * msg, ... ) { char buffer[512]; va_list ap; register int i; if( isinuse == FALSE) /* error message */ return; va_start(ap,msg); for(i=0;i