Function: compilation--make-cdrloc
compilation--make-cdrloc is a macro defined in compile.el.gz.
Signature
(compilation--make-cdrloc LINE FILE-STRUCT MARKER)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/compile.el.gz
;; LOC (or location) is a list of (COLUMN LINE FILE-STRUCTURE nil nil)
;; COLUMN and LINE are numbers parsed from an error message. COLUMN and maybe
;; LINE will be nil for a message that doesn't contain them. Then the
;; location refers to an indented beginning of line or beginning of file.
;; Once any location in some file has been jumped to, the list is extended to
;; (COLUMN LINE FILE-STRUCTURE MARKER TIMESTAMP . VISITED)
;; for all LOCs pertaining to that file.
;; MARKER initially points to LINE and COLUMN in a buffer visiting that file.
;; Being a marker it sticks to some text, when the buffer grows or shrinks
;; before that point. VISITED is t if we have jumped there, else nil.
;; FIXME-omake: TIMESTAMP was used to try and handle "incremental compilation":
;; `omake -P' polls filesystem for changes and recompiles when a file is
;; modified using the same *compilation* buffer. this necessitates
;; re-parsing markers.
;; (cl-defstruct (compilation--loc
;; (:constructor nil)
;; (:copier nil)
;; (:constructor compilation--make-loc
;; (file-struct line col marker))
;; (:conc-name compilation--loc->))
;; col line file-struct marker timestamp visited)
;; FIXME: We don't use a defstruct because of compilation-assq which looks up
;; and creates part of the LOC (only the first cons cell containing the COL).
(defmacro compilation--make-cdrloc (line file-struct marker)
`(list ,line ,file-struct ,marker nil))