mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-30 08:09:04 +00:00
set_text_properties_1 can assume START <= END
* src/textprop.c (set_text_properties_1): Do not swap START and END. All callers do that already, and the test for swapping here is redundant.
This commit is contained in:
parent
6e76e11c42
commit
23e9e8abaa
@ -1421,34 +1421,25 @@ set_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object properties,
|
||||
/* Replace properties of text from START to END with new list of
|
||||
properties PROPERTIES. OBJECT is the buffer or string containing
|
||||
the text. This does not obey any hooks.
|
||||
You should provide the interval that START is located in as I.
|
||||
START and END can be in any order. */
|
||||
I is the interval that START is located in. */
|
||||
|
||||
void
|
||||
set_text_properties_1 (Lisp_Object start, Lisp_Object end, Lisp_Object properties, Lisp_Object object, INTERVAL i)
|
||||
set_text_properties_1 (Lisp_Object start, Lisp_Object end,
|
||||
Lisp_Object properties, Lisp_Object object, INTERVAL i)
|
||||
{
|
||||
register INTERVAL prev_changed = NULL;
|
||||
register ptrdiff_t s, len;
|
||||
INTERVAL unchanged;
|
||||
INTERVAL prev_changed = NULL;
|
||||
ptrdiff_t s = XFIXNUM (start);
|
||||
ptrdiff_t len = XFIXNUM (end) - s;
|
||||
|
||||
if (XFIXNUM (start) < XFIXNUM (end))
|
||||
{
|
||||
s = XFIXNUM (start);
|
||||
len = XFIXNUM (end) - s;
|
||||
}
|
||||
else if (XFIXNUM (end) < XFIXNUM (start))
|
||||
{
|
||||
s = XFIXNUM (end);
|
||||
len = XFIXNUM (start) - s;
|
||||
}
|
||||
else
|
||||
if (len == 0)
|
||||
return;
|
||||
eassert (0 < len);
|
||||
|
||||
eassert (i);
|
||||
|
||||
if (i->position != s)
|
||||
{
|
||||
unchanged = i;
|
||||
INTERVAL unchanged = i;
|
||||
i = split_interval_right (unchanged, s - unchanged->position);
|
||||
|
||||
if (LENGTH (i) > len)
|
||||
|
Loading…
Reference in New Issue
Block a user