[Top][All Lists]
[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));
- [Emacs-diffs] Changes to emacs/src/coding.c,v,
Kenichi Handa <=