elisp: Comparing Text
31.3 Comparing Text
===================
This function lets you compare portions of the text in a buffer, without
copying them into strings first.
-- Function: compare-buffer-substrings buffer1 start1 end1 buffer2
start2 end2
This function lets you compare two substrings of the same buffer or
two different buffers. The first three arguments specify one
substring, giving a buffer (or a buffer name) and two positions
within the buffer. The last three arguments specify the other
substring in the same way. You can use ‘nil’ for BUFFER1, BUFFER2,
or both to stand for the current buffer.
The value is negative if the first substring is less, positive if
the first is greater, and zero if they are equal. The absolute
value of the result is one plus the index of the first differing
characters within the substrings.
This function ignores case when comparing characters if
‘case-fold-search’ is non-‘nil’. It always ignores text
properties.
Suppose you have the text ‘foobarbar haha!rara!’ in the current
buffer; then in this example the two substrings are ‘rbar ’ and
‘rara!’. The value is 2 because the first substring is greater at
the second character.
(compare-buffer-substrings nil 6 11 nil 16 21)
⇒ 2