From eaf11618479c899a602cfe12a3e18a5db48d8959 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 29 May 2008 23:00:20 +0000 Subject: [PATCH] (utf-8-sig, utf-8-auto): New coding systems. --- lisp/ChangeLog | 8 ++++++++ lisp/international/mule-conf.el | 16 +++++++++++++++- src/ChangeLog | 31 +++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8339022aac4..b18b186f6de 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2008-05-29 Kenichi Handa + + * international/mule-conf.el (utf-8-sig, utf-8-auto): New coding + systems. + + * international/mule.el (define-coding-system): Accept :bom for + utf-8. + 2008-05-29 Espen Wiborg (tiny change) * international/utf-7.el (utf-7-encode): Use the right escape char diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el index 6fe69aa6630..43fbf2ba800 100644 --- a/lisp/international/mule-conf.el +++ b/lisp/international/mule-conf.el @@ -1253,12 +1253,26 @@ is treated as a character." :mnemonic ?M) (define-coding-system 'utf-8 - "UTF-8." + "UTF-8 (no signature (BOM))" :coding-type 'utf-8 :mnemonic ?U :charset-list '(unicode) :mime-charset 'utf-8) +(define-coding-system 'utf-8-sig + "UTF-8 (with signature (BOM))" + :coding-type 'utf-8 + :mnemonic ?U + :charset-list '(unicode) + :bom t) + +(define-coding-system 'utf-8-auto + "UTF-8 (auto-detect signature (BOM))" + :coding-type 'utf-8 + :mnemonic ?U + :charset-list '(unicode) + :bom '(utf-8-sig . utf-8)) + (define-coding-system-alias 'mule-utf-8 'utf-8) (define-coding-system 'utf-8-emacs diff --git a/src/ChangeLog b/src/ChangeLog index f61e8c3c595..d79125ca7ee 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,34 @@ +2008-05-29 Kenichi Handa + + * coding.h (enum define_coding_utf8_arg_index): New enum. + (enum coding_attr_index): Change coding_attr_utf_16_bom to + coding_attr_utf_bom. + (enum utf_bom_type): Renamed from utf_16_bom_type. + (struct utf_16_spec): Adjusted for the above change. + (struct coding_system): Add utf_8_bom in `spec' union. + + * coding.c (CODING_UTF_8_BOM): New macro. + (enum coding_category): Delete coding_category_utf_8, add + coding_category_utf_8_auto, coding_category_utf_8_nosig, and + coding_category_utf_8_sig. + (CATEGORY_MASK_UTF_8): Delete it. + (CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG) + (CATEGORY_MASK_UTF_8_SIG): New macros. + (CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add + CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and + CATEGORY_MASK_UTF_8_SIG. + (CATEGORY_MASK_UTF_8): New macro. + (UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros. + (detect_coding_utf_8): Check BOM. + (decode_coding_utf_8, encode_coding_utf_8): Handle BOM. + (decode_coding_utf_16): Adjusted for the change of enum + utf_bom_type. + (encode_coding_utf_16): Likewise. + (setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding). + (detect_coding, detect_coding_system): Handle utf-8-auto. + (Fdefine_coding_system_internal): Handle `bom' property for utf-8. + (syms_of_coding): Fix setting up of Vcoding_category_table. + 2008-05-29 Stefan Monnier * process.c (Faccept_process_output): If `millisec' is non-nil, -- 2.39.2