mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-09 21:50:50 +00:00
(code_convert_region): Don't skip ASCIIs if there are compositions to encode.
Free composition data. (encode_coding_string): Likewise.
This commit is contained in:
parent
14e20e1309
commit
ce559e6f5b
1 changed files with 15 additions and 5 deletions
20
src/coding.c
20
src/coding.c
|
@ -5650,8 +5650,11 @@ code_convert_region (from, from_byte, to, to_byte, coding, encodep, replace)
|
|||
coding_allocate_composition_data (coding, from);
|
||||
}
|
||||
|
||||
/* Try to skip the heading and tailing ASCIIs. */
|
||||
if (coding->type != coding_type_ccl)
|
||||
/* Try to skip the heading and tailing ASCIIs. We can't skip them
|
||||
if we must run CCL program or there are compositions to
|
||||
encode. */
|
||||
if (coding->type != coding_type_ccl
|
||||
&& (! coding->cmp_data || coding->cmp_data->used == 0))
|
||||
{
|
||||
int from_byte_orig = from_byte, to_byte_orig = to_byte;
|
||||
|
||||
|
@ -5667,6 +5670,7 @@ code_convert_region (from, from_byte, to, to_byte, coding, encodep, replace)
|
|||
if (!replace)
|
||||
/* We must record and adjust for this new text now. */
|
||||
adjust_after_insert (from, from_byte_orig, to, to_byte_orig, len);
|
||||
coding_free_composition_data (coding);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -6297,13 +6301,19 @@ encode_coding_string (str, coding, nocopy)
|
|||
if (coding->composing != COMPOSITION_DISABLED)
|
||||
coding_save_composition (coding, from, to, str);
|
||||
|
||||
/* Try to skip the heading and tailing ASCIIs. */
|
||||
if (coding->type != coding_type_ccl)
|
||||
/* Try to skip the heading and tailing ASCIIs. We can't skip them
|
||||
if we must run CCL program or there are compositions to
|
||||
encode. */
|
||||
if (coding->type != coding_type_ccl
|
||||
&& (! coding->cmp_data || coding->cmp_data->used == 0))
|
||||
{
|
||||
SHRINK_CONVERSION_REGION (&from, &to_byte, coding, SDATA (str),
|
||||
1);
|
||||
if (from == to_byte)
|
||||
return (nocopy ? str : Fcopy_sequence (str));
|
||||
{
|
||||
coding_free_composition_data (coding);
|
||||
return (nocopy ? str : Fcopy_sequence (str));
|
||||
}
|
||||
shrinked_bytes = from + (SBYTES (str) - to_byte);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue