Function: compilation--compat-parse-errors

compilation--compat-parse-errors is a byte-compiled function defined in compile.el.gz.

Signature

(compilation--compat-parse-errors LIMIT)

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/compile.el.gz
(defun compilation--compat-parse-errors (limit)
  (when compilation-parse-errors-function
    ;; FIXME: We should remove the rest of the compilation keywords
    ;; but we can't do that from here because font-lock is using
    ;; the value right now.  --Stef
    (save-excursion
      (setq compilation-error-list nil)
      ;; Reset compilation-parsing-end each time because font-lock
      ;; might force us the re-parse many times (typically because
      ;; some code adds some text-property to the output that we
      ;; already parsed).  You might say "why reparse", well:
      ;; because font-lock has just removed the `compilation-message' property
      ;; so have to do it all over again.
      (if compilation-parsing-end
	  (set-marker compilation-parsing-end (point))
	(setq compilation-parsing-end (point-marker)))
      (condition-case nil
	  ;; Ignore any error: we're calling this function earlier than
	  ;; in the old compile.el so things might not all be setup yet.
	  (funcall compilation-parse-errors-function limit nil)
	(error nil))
      (dolist (err (if (listp compilation-error-list) compilation-error-list))
	(let* ((src (car err))
	       (dst (cdr err))
	       (loc (cond ((markerp dst)
                           (cons nil
                                 (compilation--make-cdrloc nil nil dst)))
			  ((consp dst)
                           (cons (nth 2 dst)
                                 (compilation--make-cdrloc
                                  (nth 1 dst)
                                  (cons (cdar dst) (caar dst))
                                  nil))))))
	  (when loc
	    (goto-char src)
	    ;; (put-text-property src (line-end-position)
            ;;                    'font-lock-face 'font-lock-warning-face)
	    (put-text-property src (line-end-position)
			       'compilation-message
                               (compilation--make-message loc 2 nil nil)))))))
  (goto-char limit)
  nil)