Article View: gnu.emacs.sources
Article #315compile.el v18.59 to handle tree walking makes.
From: Frank P. Bresz
Date: Fri, 08 Jan 1993 15:22
Date: Fri, 08 Jan 1993 15:22
83 lines
3499 bytes
3499 bytes
Here are some changes to allow compile.el to parse and understand Makes
like we have locally that end up walking up and down a tree building
things.
enjoy.
# rcsdiff -r1.1 -cw compile.el
*** /tmp/T0a27037 Fri Jan 8 10:19:45 1993
--- compile.el Fri Jan 8 10:19:34 1993
***************
*** 46,51 ****
--- 46,54 ----
"\\([^ :\n]+\\(: *\\|, line \\|(\\)[0-9]+\\)\\|\\([0-9]+ *of *[^ \n]+\\)"
"Regular expression for filename/linenumber in error in compilation log.")
+ (defvar compilation-cd-regexp "^cd"
+ "Regular expression to be used to glean any cd-ing the make may do")
+
(defun compile (command)
"Compile the program including the current buffer. Default: run `make'.
Runs COMMAND, a shell command, in a separate process asynchronously
***************
*** 230,236 ****
;; This matters for grep.
(if (bobp)
(forward-line 2))
! (while (re-search-forward compilation-error-regexp nil t)
(let (linenum filename
error-marker text-marker)
;; Extract file name and line number from error message.
--- 233,261 ----
;; This matters for grep.
(if (bobp)
(forward-line 2))
! (while (re-search-forward
! (concat compilation-error-regexp "\\|" compilation-cd-regexp) nil t)
! ;; Go to the beginninnng of the match and see if we are at a cd line
! ;; If so the change directory
! ;; This allows cd'ing within Make i.e. the tree walking makes can
! ;; be parsed with this.
! (goto-char (match-beginning 0))
! (if (looking-at compilation-cd-regexp)
! (let (dir)
! ;; Code snarfed from shell.el to get directory.
! (skip-chars-forward "^ ")
! (skip-chars-forward " \t")
! (file-directory-p
! (setq dir
! (expand-file-name
! (substitute-in-file-name
! (buffer-substring
! (point)
! (progn
! (skip-chars-forward "^\n \t;")
! (point)))))))
! (cd dir))
! (re-search-forward compilation-error-regexp nil t)
(let (linenum filename
error-marker text-marker)
;; Extract file name and line number from error message.
***************
*** 296,302 ****
(setq compilation-error-list
(cons (list error-marker text-marker)
compilation-error-list)))))
! (forward-line 1)))
(setq compilation-parsing-end (point-max)))
(message "Parsing error messages...done")
(setq compilation-error-list (nreverse compilation-error-list)))
--- 321,327 ----
(setq compilation-error-list
(cons (list error-marker text-marker)
compilation-error-list)))))
! (forward-line 1))))
(setq compilation-parsing-end (point-max)))
(message "Parsing error messages...done")
(setq compilation-error-list (nreverse compilation-error-list)))
--
Frank P. Bresz <fpb@ittc.pgh.wec.com>, uunet!ittc!fpb, +1 412 733 6749, Fx 6444
My opinions are mine, Westinghouse pays big money for *official* opinions
Member: League for Programming Freedom (LPF) | STOP Software Patents
For more information on the 'LPF' send mail | before they stop you.
Technical Details
Message-ID:
<FPB.93Jan8102232@ittc.ittc.wec.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!ittc!fpbShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!ittc!fpb From: fpb@ittc.wec.com (Frank P. Bresz) Newsgroups: gnu.emacs.sources Subject: compile.el v18.59 to handle tree walking makes. Message-ID: <FPB.93Jan8102232@ittc.ittc.wec.com> Date: 8 Jan 93 15:22:32 GMT Sender: news@ittc.wec.com Distribution: gnu Organization: Westinghouse, ITTC, Pgh, PA. Lines: 83