]> git.eshelyaron.com Git - emacs.git/commitdiff
(utf-8-sig, utf-8-auto): New coding systems.
authorKenichi Handa <handa@m17n.org>
Thu, 29 May 2008 23:00:20 +0000 (23:00 +0000)
committerKenichi Handa <handa@m17n.org>
Thu, 29 May 2008 23:00:20 +0000 (23:00 +0000)
lisp/ChangeLog
lisp/international/mule-conf.el
src/ChangeLog

index 8339022aac476a8fe7412ea2fbd9c0ecca8de95b..b18b186f6def0671770406fc60e297cbdaec3b2f 100644 (file)
@@ -1,3 +1,11 @@
+2008-05-29  Kenichi Handa  <handa@m17n.org>
+
+       * 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  <espen.wiborg@telio.no>  (tiny change)
 
        * international/utf-7.el (utf-7-encode): Use the right escape char
index 6fe69aa66300443d5100229a23bdf79b2b5f38d9..43fbf2ba800ca6312031cb65af508398dd818587 100644 (file)
@@ -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
index f61e8c3c59519b1d89ca9215c6204dce38fb6d6b..d79125ca7ee6e2154d70ab7412d63779d35a3c60 100644 (file)
@@ -1,3 +1,34 @@
+2008-05-29  Kenichi Handa  <handa@m17n.org>
+
+       * 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  <monnier@iro.umontreal.ca>
 
        * process.c (Faccept_process_output): If `millisec' is non-nil,