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))))