emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/coding.c,v


From: Kenichi Handa
Subject: [Emacs-diffs] Changes to emacs/src/coding.c,v
Date: Tue, 21 Oct 2008 02:25:50 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Kenichi Handa <handa>   08/10/21 02:25:50

Index: coding.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/coding.c,v
retrieving revision 1.391
retrieving revision 1.392
diff -u -b -r1.391 -r1.392
--- coding.c    16 Sep 2008 01:16:58 -0000      1.391
+++ coding.c    21 Oct 2008 02:25:49 -0000      1.392
@@ -4975,16 +4975,20 @@
   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 @@
       if (NILP (val))
        break;
       if (c >= 0x80)
+       {
+         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));




reply via email to

[Prev in Thread] Current Thread [Next in Thread]