When printing into a buffer, generate all the text
first, then insert it all at once. (print_buffer): New variable. (print_buffer_size, print_buffer_pos): New variables. (PRINTPREPARE): Allocate print_buffer. (PRINTFINISH): Free print_buffer after inserting its contents. (printchar, strout): Output into print_buffer. (print_string): If printcharfun is nil, use strout.
Showing with 40 additions and 14 deletions