Эта функция возвращает список всех наложений, которые покрывают символ в позиции pos в текущем буфере. Если sorted не равно nil, список отсортирован по убыванию приоритета; в противном случае он не имеет определенного порядка. Наложение содержит позицию pos, если оно начинается не позднее pos и заканчивается после pos.
Для иллюстрации использования приводится функция Lisp, которая возвращает список наложений, определяющих свойство prop для символа в точке:
(defun find-overlays-specifying (prop)
(let ((overlays (overlays-at (point)))
found)
(while overlays
(let ((overlay (car overlays)))
(if (overlay-get overlay prop)
(setq found (cons overlay found))))
(setq overlays (cdr overlays)))
found))
Эта функция возвращает список наложений, которые перекрывают область от beg до end. Наложение перекрывает область, если оно содержит один или более символов в этой области; пустые наложения (см. пустое наложение) перекрывают, если они находятся в beg, строго между beg и end, или в end, когда end обозначает позицию в конце доступной части буфера.
Эта функция возвращает позицию в буфере следующего начала или конца наложения после pos. Если такого нет, она возвращает (point-max).
Эта функция возвращает позицию в буфере предыдущего начала или конца наложения перед pos. Если такого нет, она возвращает (point-min).
В качестве примера приведена упрощенная (и неэффективная) версия примитивной функции next-single-char-property-change (см. Функции поиска свойств текста). Она ищет вперед от позиции pos следующую позицию, где значение заданного свойства prop, полученное из наложений или свойств текста, изменяется.
(defun next-single-char-property-change (position prop)
(save-excursion
(goto-char position)
(let ((propval (get-char-property (point) prop)))
(while (and (not (eobp))
(eq (get-char-property (point) prop) propval))
(goto-char (min (next-overlay-change (point))
(next-single-property-change (point) prop)))))
(point)))