From: Paul Eggert Date: Mon, 17 Apr 2017 17:19:39 +0000 (-0700) Subject: Tighten recently-added UTF-8 check X-Git-Tag: emacs-26.0.90~521^2~610 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=932698b7891668318ba9ca93375d8d27d52a07f5;p=emacs.git Tighten recently-added UTF-8 check * src/coding.c (encode_coding_utf_8): Now extern. * src/terminal.c (terminal_glyph_code) [HAVE_STRUCT_UNIPAIR_UNICODE]: Check for UTF-8, not just for multibyte. --- diff --git a/src/coding.c b/src/coding.c index e341a71f576..367a9759848 100644 --- a/src/coding.c +++ b/src/coding.c @@ -1449,7 +1449,7 @@ decode_coding_utf_8 (struct coding_system *coding) } -static bool +bool encode_coding_utf_8 (struct coding_system *coding) { bool multibytep = coding->dst_multibyte; diff --git a/src/coding.h b/src/coding.h index 77f90ec9c15..8ed851d99ff 100644 --- a/src/coding.h +++ b/src/coding.h @@ -664,6 +664,7 @@ struct coding_system /* Extern declarations. */ extern Lisp_Object code_conversion_save (bool, bool); +extern bool encode_coding_utf_8 (struct coding_system *); extern void setup_coding_system (Lisp_Object, struct coding_system *); extern Lisp_Object coding_charset_list (struct coding_system *); extern Lisp_Object coding_system_charset_list (Lisp_Object); diff --git a/src/terminal.c b/src/terminal.c index 3d25b36fa56..367f2ac7192 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -576,8 +576,9 @@ terminal_glyph_code (struct terminal *t, int ch) { #if HAVE_STRUCT_UNIPAIR_UNICODE /* Heuristically assume that a terminal supporting glyph codes is in - UTF-8 mode if and only if its coding system is multibyte (Bug#26396). */ - if (t->type == output_termcap && t->terminal_coding->src_multibyte) + UTF-8 mode if and only if its coding system is UTF-8 (Bug#26396). */ + if (t->type == output_termcap + && t->terminal_coding->encoder == encode_coding_utf_8) { /* As a hack, recompute the table when CH is the maximum character. */