mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-15 09:47:20 +00:00
(Finsert_file_contents): Give up match-end only if
coding requires conversion. Adjust end of non-matching text area to multibyte character boundary if enable_multibyte_character is non-nil.
This commit is contained in:
parent
e2d8d746de
commit
71312b68cf
@ -3291,7 +3291,8 @@ This does code conversion according to the value of\n\
|
||||
we cannot use this method; giveup and try the other. */
|
||||
if (same_at_end > same_at_start
|
||||
&& FETCH_BYTE (same_at_end - 1) >= 0200
|
||||
&& ! NILP (current_buffer->enable_multibyte_characters))
|
||||
&& ! NILP (current_buffer->enable_multibyte_characters)
|
||||
&& CODING_REQUIRE_CONVERSION (&coding))
|
||||
giveup_match_end = 1;
|
||||
break;
|
||||
}
|
||||
@ -3302,6 +3303,12 @@ This does code conversion according to the value of\n\
|
||||
{
|
||||
/* We win! We can handle REPLACE the optimized way. */
|
||||
|
||||
/* Extends the end of non-matching text area to multibyte
|
||||
character boundary. */
|
||||
if (! NILP (current_buffer->enable_multibyte_characters))
|
||||
while (same_at_end < ZV && ! CHAR_HEAD_P (POS_ADDR (same_at_end)))
|
||||
same_at_end++;
|
||||
|
||||
/* Don't try to reuse the same piece of text twice. */
|
||||
overlap = same_at_start - BEGV - (same_at_end + st.st_size - ZV);
|
||||
if (overlap > 0)
|
||||
|
Loading…
Reference in New Issue
Block a user