aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/print.c12
-rw-r--r--src/xdisp.c11
2 files changed, 21 insertions, 2 deletions
diff --git a/src/print.c b/src/print.c
index 975675014d9..269d8f250e2 100644
--- a/src/print.c
+++ b/src/print.c
@@ -200,6 +200,13 @@ printchar_to_stream (unsigned int ch, FILE *stream)
200{ 200{
201 Lisp_Object dv IF_LINT (= Qnil); 201 Lisp_Object dv IF_LINT (= Qnil);
202 ptrdiff_t i = 0, n = 1; 202 ptrdiff_t i = 0, n = 1;
203 Lisp_Object coding_system = Vlocale_coding_system;
204 bool encode_p = false;
205
206 if (!NILP (Vcoding_system_for_write))
207 coding_system = Vcoding_system_for_write;
208 if (!NILP (coding_system))
209 encode_p = true;
203 210
204 if (CHAR_VALID_P (ch) && DISP_TABLE_P (Vstandard_display_table)) 211 if (CHAR_VALID_P (ch) && DISP_TABLE_P (Vstandard_display_table))
205 { 212 {
@@ -228,8 +235,11 @@ printchar_to_stream (unsigned int ch, FILE *stream)
228 unsigned char mbstr[MAX_MULTIBYTE_LENGTH]; 235 unsigned char mbstr[MAX_MULTIBYTE_LENGTH];
229 int len = CHAR_STRING (ch, mbstr); 236 int len = CHAR_STRING (ch, mbstr);
230 Lisp_Object encoded_ch = 237 Lisp_Object encoded_ch =
231 ENCODE_SYSTEM (make_multibyte_string ((char *) mbstr, 1, len)); 238 make_multibyte_string ((char *) mbstr, 1, len);
232 239
240 if (encode_p)
241 encoded_ch = code_convert_string_norecord (encoded_ch,
242 coding_system, true);
233 fwrite (SSDATA (encoded_ch), 1, SBYTES (encoded_ch), stream); 243 fwrite (SSDATA (encoded_ch), 1, SBYTES (encoded_ch), stream);
234#ifdef WINDOWSNT 244#ifdef WINDOWSNT
235 if (print_output_debug_flag && stream == stderr) 245 if (print_output_debug_flag && stream == stderr)
diff --git a/src/xdisp.c b/src/xdisp.c
index b18bfd0d49d..ee748bd8680 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -10206,7 +10206,16 @@ message_to_stderr (Lisp_Object m)
10206 } 10206 }
10207 if (STRINGP (m)) 10207 if (STRINGP (m))
10208 { 10208 {
10209 Lisp_Object s = ENCODE_SYSTEM (m); 10209 Lisp_Object coding_system = Vlocale_coding_system;
10210 Lisp_Object s;
10211
10212 if (!NILP (Vcoding_system_for_write))
10213 coding_system = Vcoding_system_for_write;
10214 if (!NILP (coding_system))
10215 s = code_convert_string_norecord (m, coding_system, true);
10216 else
10217 s = m;
10218
10210 fwrite (SDATA (s), SBYTES (s), 1, stderr); 10219 fwrite (SDATA (s), SBYTES (s), 1, stderr);
10211 } 10220 }
10212 if (!cursor_in_echo_area) 10221 if (!cursor_in_echo_area)