summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2010-09-08 11:21:03 +0900
committerKenichi Handa <handa@m17n.org>2010-09-08 11:21:03 +0900
commita552b35afa83816d3a4bfaa32be91c196a68e41b (patch)
treee9dd2e752bd9d9e069f0a70bf4b81b57d60ed9b2
parent439dcbc16bd3d4fcef87736fe84173de6af4cf2e (diff)
downloademacs-a552b35afa83816d3a4bfaa32be91c196a68e41b.tar.gz
coding.c (encode_coding_iso_2022): Do not optimize for ASCII if we may use designation or locking-shift.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/coding.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3dda03c963f..f46e02b9193 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-08 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
+ we may use designation or locking-shift.
+
2010-09-07 Kenichi Handa <handa@m17n.org>
* coding.c (detect_coding_emacs_mule): Fix checking of multibyte
diff --git a/src/coding.c b/src/coding.c
index d62998f4c8b..92b328091ff 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -4528,7 +4528,10 @@ encode_coding_iso_2022 (coding)
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
coding->safe_charsets = SDATA (CODING_ATTR_SAFE_CHARSETS (attrs));
- ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
+ ascii_compatible
+ = (! NILP (CODING_ATTR_ASCII_COMPAT (attrs))
+ && ! (CODING_ISO_FLAGS (coding) & (CODING_ISO_FLAG_DESIGNATION
+ | CODING_ISO_FLAG_LOCKING_SHIFT)));
while (charbuf < charbuf_end)
{