1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-20 11:33:09 -08:00

Treat batch stdout/stderr like standard display

Calls like (print FOO) could generate improperly encoded or
hard-to-read output if FOO contains characters outside the system
locale.  Fix this by treating batch stdout and stderr like
interactive standard display, when it comes to transliterating and
encoding characters (Bug#20545).
* doc/emacs/mule.texi (Communication Coding):
* doc/lispref/display.texi (Active Display Table):
* doc/lispref/nonascii.texi (Locales):
* etc/NEWS:
* src/coding.c (syms_of_coding):
* src/dispnew.c (syms_of_display):
Document this.
* src/print.c: Include disptab.h.
(printchar_to_stream): New function, with much of the guts of the
old Fexternal_debugging_output, except this one also uses the
standard display table.
(printchar, strout, Fexternal_debugging_output): Use it.
This commit is contained in:
Paul Eggert 2015-05-31 20:04:05 -07:00
parent 21d13bce38
commit 467af178f5
7 changed files with 90 additions and 36 deletions

View file

@ -11121,7 +11121,8 @@ See also the function `find-operation-coding-system'. */);
DEFVAR_LISP ("locale-coding-system", Vlocale_coding_system,
doc: /* Coding system to use with system messages.
Also used for decoding keyboard input on X Window system. */);
Also used for decoding keyboard input on X Window system, and for
encoding standard output and error streams. */);
Vlocale_coding_system = Qnil;
/* The eol mnemonics are reset in startup.el system-dependently. */