summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/textprop.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/textprop.c b/src/textprop.c
index cd07484204b..7c6a5e6d686 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -1304,7 +1304,7 @@ set_text_properties (start, end, properties, object, signal_after_change_p)
the text. This does not obey any hooks.
You can provide the interval that START is located in as I,
or pass NULL for I and this function will find it.
- This function assumes that START < END. */
+ START and END can be in any order. */
void
set_text_properties_1 (start, end, properties, buffer, i)
@@ -1317,7 +1317,14 @@ set_text_properties_1 (start, end, properties, buffer, i)
s = XINT (start);
len = XINT (end) - s;
- eassert (len > 0);
+ if (len == 0)
+ return;
+ if (len < 0)
+ {
+ s = s + len;
+ len = - len;
+ }
+
if (i == 0)
i = find_interval (BUF_INTERVALS (XBUFFER (buffer)), s);