(print_string): Now static.
(print): When multibyte is disabled, print multibyte string chars using hex escapes. (printchar): Pass new arg to message_dolog. (strout): New arg MULTIBYTE. Callers changed. (strout): Take args SIZE and SIZE_BYTE; operate on both chars and bytes. (print_string): Pass new arg to strout. If not using strout, fetch a whole multibyte char at once. (write_string): Pass new arg to strout. (write_string_1): Likewise. (print) <case Lisp_String>: Scan by chars and bytes. (print) <case Lisp_Symbol>: Scan name by chars and bytes. (PRINTPREPARE): Use make_multibyte_string. Initialize print_buffer_pos_byte. Use insert_1_both. (printchar): Update print_buffer_pos_byte and print_buffer_pos. (print_buffer_pos_byte): New variable.
Showing with 156 additions and 101 deletions