Function: compilation--remove-properties

compilation--remove-properties is a byte-compiled function defined in compile.el.gz.

Signature

(compilation--remove-properties &optional START END)

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/compile.el.gz
(defun compilation--remove-properties (&optional start end)
  (with-silent-modifications
    ;; When compile.el used font-lock directly, we could just remove all
    ;; our text-properties in one go, but now that we manually place
    ;; font-lock-face, we have to be careful to only remove the font-lock-face
    ;; we placed.
    ;; (remove-list-of-text-properties
    ;;  (or start (point-min)) (or end (point-max))
    ;;  '(compilation-debug compilation-directory compilation-message
    ;;    font-lock-face help-echo mouse-face))
    (let (next)
      (unless start (setq start (point-min)))
      (unless end (setq end (point-max)))
      (compilation--flush-directory-cache start end)
      (while
          (progn
            (setq next (or (next-single-property-change
                            start 'compilation-message nil end)
                           end))
            (when (get-text-property start 'compilation-message)
              (remove-list-of-text-properties
               start next
               '(compilation-debug compilation-directory compilation-message
                 font-lock-face help-echo mouse-face)))
            (< next end))
        (setq start next)))))