Function: allout-hide-by-annotation
allout-hide-by-annotation is a byte-compiled function defined in
allout.el.gz.
Signature
(allout-hide-by-annotation BEGIN END)
Documentation
Translate text properties indicating exposure status into actual exposure.
Source Code
;; Defined in /usr/src/emacs/lisp/allout.el.gz
;;;_ > allout-hide-by-annotation (begin end)
(defun allout-hide-by-annotation (begin end)
"Translate text properties indicating exposure status into actual exposure."
(save-excursion
(goto-char begin)
(let ((was-modified (buffer-modified-p))
done next prev)
(while (not done)
;; at or advance to start of next annotation:
(if (not (get-text-property (point) 'allout-was-hidden))
(setq next (next-single-char-property-change
(point) 'allout-was-hidden nil end)))
(if (or (not next) (eq prev next))
;; no more or not advancing -- must not be any left.
(setq done t)
(goto-char next)
(setq prev next)
(if (not (get-text-property (point) 'allout-was-hidden))
;; still not at start of annotation.
(setq done t)
;; advance to just after end of this annotation:
(setq next (next-single-char-property-change
(point) 'allout-was-hidden nil end))
(let ((o (make-overlay prev next nil 'front-advance)))
(overlay-put o 'category 'allout-exposure-category)
(overlay-put o 'evaporate t))
(allout-deannotate-hidden prev next)
(setq prev next)
(if next (goto-char next)))))
(set-buffer-modified-p was-modified))))