summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@Penguin.CS.UCLA.EDU>2017-04-17 10:19:39 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2017-04-17 10:20:39 -0700
commit932698b7891668318ba9ca93375d8d27d52a07f5 (patch)
treed70172f4f246978a31460b68a95f1ac69bb1ebc5
parent09eaf661eb6ea49c6324d8819a872c523133dc2b (diff)
downloademacs-932698b7891668318ba9ca93375d8d27d52a07f5.tar.gz
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.
-rw-r--r--src/coding.c2
-rw-r--r--src/coding.h1
-rw-r--r--src/terminal.c5
3 files changed, 5 insertions, 3 deletions
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. */