33.3 Сравнение текста

Эта функция позволяет сравнивать части текста в буфере, не копируя их сначала в строки.

Функция: compare-buffer-substrings buffer1 start1 end1 buffer2 start2 end2

Эта функция позволяет сравнивать две подстроки из одного и того же буфера или из двух разных буферов. Первые три аргумента определяют одну подстроку, указывая буфер (или имя буфера) и две позиции внутри буфера. Последние три аргумента определяют другую подстроку аналогичным образом. Вы можете использовать nil для buffer1, buffer2 или обоих, чтобы указать текущий буфер.

Значение отрицательное, если первая подстрока меньше, положительное, если первая больше, и ноль, если они равны. Абсолютное значение результата равно одному плюс индекс первого различия символов внутри подстрок.

Эта функция игнорирует регистр при сравнении символов, если case-fold-search не равен nil. Она всегда игнорирует свойства текста.

Предположим, у вас есть текст «foobarbar haha!rara!» в текущем буфере; тогда в этом примере две подстроки — «rbar» и «rara!». Значение равно 2, потому что первая подстрока больше во втором символе.

(compare-buffer-substrings nil 6 11 nil 16 21)
     ⇒ 2