]> git.eshelyaron.com Git - emacs.git/commitdiff
(detect_coding_charset): For iso-8859-* coding systems,
authorKenichi Handa <handa@m17n.org>
Tue, 21 Oct 2008 02:28:20 +0000 (02:28 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 21 Oct 2008 02:28:20 +0000 (02:28 +0000)
check Vlatin_extra_code_table.

src/ChangeLog
src/coding.c

index 042469a5049885f04c2d576240f3ee16fa675502..64b988e7de473078a5275065ff820e7f9c6e93bb 100644 (file)
@@ -1,3 +1,8 @@
+2008-10-21  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding_charset): For iso-8859-* coding systems,
+       check Vlatin_extra_code_table.
+
 2008-10-20  Eli Zaretskii  <eliz@gnu.org>
 
        * fileio.c (Fset_file_modes): Doc fix.
index f7722f3212b674b00ada2d88a8cfb5a7abe5064b..fb0bfa0b15c1ce21c79ac92cf90f3e4aa52c0b9a 100644 (file)
@@ -4975,16 +4975,20 @@ detect_coding_charset (coding, detect_info)
   const unsigned char *src_end = coding->source + coding->src_bytes;
   int multibytep = coding->src_multibyte;
   int consumed_chars = 0;
-  Lisp_Object attrs, valids;
+  Lisp_Object attrs, valids, name;
   int found = 0;
   int head_ascii = coding->head_ascii;
+  int check_latin_extra = 0;
 
   detect_info->checked |= CATEGORY_MASK_CHARSET;
 
   coding = &coding_categories[coding_category_charset];
   attrs = CODING_ID_ATTRS (coding->id);
   valids = AREF (attrs, coding_attr_charset_valids);
-
+  name = CODING_ID_NAME (coding->id);
+  if (VECTORP (Vlatin_extra_code_table)
+      && strcmp ((char *) SDATA (SYMBOL_NAME (name)), "iso-8859-"))
+    check_latin_extra = 1;
   if (! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
     src += head_ascii;
 
@@ -5003,7 +5007,13 @@ detect_coding_charset (coding, detect_info)
       if (NILP (val))
        break;
       if (c >= 0x80)
-       found = CATEGORY_MASK_CHARSET;
+       {
+         if (c < 0xA0
+             && check_latin_extra
+             && NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
+           break;
+         found = CATEGORY_MASK_CHARSET;
+       }
       if (INTEGERP (val))
        {
          charset = CHARSET_FROM_ID (XFASTINT (val));