mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-17 11:20:39 -08:00
Fix bug#16286 by the different way than 2014-01-26T00:32:30Z!eggert@cs.ucla.edu to preserve the code detection behavior of 24.3.
This commit is contained in:
parent
4988180d71
commit
52840a9cc8
4 changed files with 20 additions and 4 deletions
|
|
@ -1,3 +1,16 @@
|
|||
2014-01-27 K. Handa <handa@gnu.org>
|
||||
|
||||
Fix bug#16286 by the different way than revno:116158 to preserve
|
||||
the code detection behavior of 24.3.
|
||||
|
||||
* coding.h (struct coding_system): New member detected_utf8_bytes.
|
||||
|
||||
* coding.c (detect_coding_utf_8): Set coding->detected_utf8_bytes.
|
||||
(decode_coding_gap): Use short cut for UTF-8 file reading only
|
||||
when coding->detected_utf8_bytes equals to coding->src_bytes.
|
||||
|
||||
* fileio.c (Finsert_file_contents): Cancel the previous change.
|
||||
|
||||
2014-01-26 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* xterm.c (x_focus_changed): Check for non-X terminal-frame (Bug#16540)
|
||||
|
|
|
|||
|
|
@ -1300,6 +1300,7 @@ detect_coding_utf_8 (struct coding_system *coding,
|
|||
means that we found a valid non-ASCII characters. */
|
||||
detect_info->found |= CATEGORY_MASK_UTF_8_AUTO | CATEGORY_MASK_UTF_8_NOSIG;
|
||||
}
|
||||
coding->detected_utf8_bytes = src_base - coding->source;
|
||||
coding->detected_utf8_chars = nchars;
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -7890,7 +7891,7 @@ decode_coding_gap (struct coding_system *coding,
|
|||
coding->dst_multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters));
|
||||
|
||||
coding->head_ascii = -1;
|
||||
coding->detected_utf8_chars = -1;
|
||||
coding->detected_utf8_bytes = coding->detected_utf8_chars = -1;
|
||||
coding->eol_seen = EOL_SEEN_NONE;
|
||||
if (CODING_REQUIRE_DETECTION (coding))
|
||||
detect_coding (coding);
|
||||
|
|
@ -7907,7 +7908,8 @@ decode_coding_gap (struct coding_system *coding,
|
|||
if (chars != bytes)
|
||||
{
|
||||
/* There exists a non-ASCII byte. */
|
||||
if (EQ (CODING_ATTR_TYPE (attrs), Qutf_8))
|
||||
if (EQ (CODING_ATTR_TYPE (attrs), Qutf_8)
|
||||
&& coding->detected_utf8_bytes == coding->src_bytes)
|
||||
{
|
||||
if (coding->detected_utf8_chars >= 0)
|
||||
chars = coding->detected_utf8_chars;
|
||||
|
|
|
|||
|
|
@ -468,7 +468,9 @@ struct coding_system
|
|||
the eol format. */
|
||||
ptrdiff_t head_ascii;
|
||||
|
||||
ptrdiff_t detected_utf8_chars;
|
||||
/* How many bytes/chars at the source are detected as valid utf-8
|
||||
sequence. Set by detect_coding_utf_8. */
|
||||
ptrdiff_t detected_utf8_bytes, detected_utf8_chars;
|
||||
|
||||
/* Used internally in coding.c. See the comment of detect_ascii. */
|
||||
int eol_seen;
|
||||
|
|
|
|||
|
|
@ -4298,7 +4298,6 @@ by calling `format-decode', which see. */)
|
|||
Z_BYTE -= inserted;
|
||||
ZV -= inserted;
|
||||
Z -= inserted;
|
||||
coding.mode |= CODING_MODE_LAST_BLOCK;
|
||||
decode_coding_gap (&coding, inserted, inserted);
|
||||
inserted = coding.produced_char;
|
||||
coding_system = CODING_ID_NAME (coding.id);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue