diff options
| author | Stefan Monnier | 2001-07-19 21:46:37 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2001-07-19 21:46:37 +0000 |
| commit | 5b6858da26e4e6671ee93b67b921a86309b3d6a2 (patch) | |
| tree | 08d15fbb741b66f65aade2a39ce6f6de995674e3 | |
| parent | 4e2a256ba55937bc9e03145edc4266fe67499c19 (diff) | |
| download | emacs-5b6858da26e4e6671ee93b67b921a86309b3d6a2.tar.gz emacs-5b6858da26e4e6671ee93b67b921a86309b3d6a2.zip | |
(compilation-parse-errors): `linenum' might return a this-error using
the alternative format (a pair of markers).
| -rw-r--r-- | lisp/ChangeLog | 21 | ||||
| -rw-r--r-- | lisp/progmodes/compile.el | 76 |
2 files changed, 59 insertions, 38 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f1fef44b867..94a88539600 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,10 +1,15 @@ | |||
| 1 | 2001-07-19 Stefan Monnier <monnier@cs.yale.edu> | ||
| 2 | |||
| 3 | * progmodes/compile.el (compilation-parse-errors): `linenum' might | ||
| 4 | return a this-error using the alternative format (a pair of markers). | ||
| 5 | |||
| 1 | 2001-07-19 Gerd Moellmann <gerd@gnu.org> | 6 | 2001-07-19 Gerd Moellmann <gerd@gnu.org> |
| 2 | 7 | ||
| 3 | * font-lock.el (c++-keywords): Add Standard C++ operator names. | 8 | * font-lock.el (c++-keywords): Add Standard C++ operator names. |
| 4 | 9 | ||
| 5 | * mail/mh-utils.el (mh-find-progs): Also search in `lib'. | 10 | * mail/mh-utils.el (mh-find-progs): Also search in `lib'. |
| 6 | From Mats Bengtsson <mats.bengtsson@s3.kth.se>, | 11 | From Mats Bengtsson <mats.bengtsson@s3.kth.se>, |
| 7 | 12 | ||
| 8 | 2001-07-17 Pavel Jan,Bm(Bk <Pavel@Janik.cz> | 13 | 2001-07-17 Pavel Jan,Bm(Bk <Pavel@Janik.cz> |
| 9 | 14 | ||
| 10 | * international/iso-transl.el: Fix typo in the header of the file. | 15 | * international/iso-transl.el: Fix typo in the header of the file. |
| @@ -16,7 +21,7 @@ | |||
| 16 | 21 | ||
| 17 | 2001-07-17 Eli Zaretskii <eliz@is.elta.co.il> | 22 | 2001-07-17 Eli Zaretskii <eliz@is.elta.co.il> |
| 18 | 23 | ||
| 19 | * toolbar/tool-bar.el (tool-bar-add-item-from-menu) | 24 | * toolbar/tool-bar.el (tool-bar-add-item-from-menu) |
| 20 | (tool-bar-add-item): Don't call image-related primitives if the | 25 | (tool-bar-add-item): Don't call image-related primitives if the |
| 21 | display doesn't support images. | 26 | display doesn't support images. |
| 22 | 27 | ||
| @@ -34,8 +39,8 @@ | |||
| 34 | 39 | ||
| 35 | 2000-07-17 Han-Wen Nienhuys <hanwen@cs.uu.nl> | 40 | 2000-07-17 Han-Wen Nienhuys <hanwen@cs.uu.nl> |
| 36 | 41 | ||
| 37 | * server.el (server-process-filter, server-visit-files): Add | 42 | * server.el (server-process-filter, server-visit-files): |
| 38 | support for +LINE:COLUMN style emacsclient calls. | 43 | Add support for +LINE:COLUMN style emacsclient calls. |
| 39 | 44 | ||
| 40 | 2001-07-16 Pavel Jan,Bm(Bk <Pavel@Janik.cz> | 45 | 2001-07-16 Pavel Jan,Bm(Bk <Pavel@Janik.cz> |
| 41 | 46 | ||
| @@ -47,6 +52,14 @@ | |||
| 47 | 52 | ||
| 48 | * play/handwrite.el: Author is no more reachable. | 53 | * play/handwrite.el: Author is no more reachable. |
| 49 | 54 | ||
| 55 | 2001-07-17 Stefan Monnier <monnier@cs.yale.edu> | ||
| 56 | |||
| 57 | * term/sun.el (ignore-key, sun-esc-bracket, meta-flag): Remove. | ||
| 58 | (sun-raw-prefix): Replace t3, t4, t6, and t7 with f3, f4, f6 and f7. | ||
| 59 | Complete bindings for F<1..12> keys. | ||
| 60 | (global-map): Remove `undo' binding (already in the default). | ||
| 61 | Replace `t<n>' bindings with `f<n>' bindings. | ||
| 62 | |||
| 50 | 2001-07-16 Stefan Monnier <monnier@cs.yale.edu> | 63 | 2001-07-16 Stefan Monnier <monnier@cs.yale.edu> |
| 51 | 64 | ||
| 52 | * progmodes/tcl.el (tcl-fill-mode-map): Use tcl-indent-exp. | 65 | * progmodes/tcl.el (tcl-fill-mode-map): Use tcl-indent-exp. |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 3eff86d2ce4..cc899ba20a6 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -264,10 +264,10 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2) | |||
| 264 | ;; E, file.cc(35,52) Illegal operation on pointers | 264 | ;; E, file.cc(35,52) Illegal operation on pointers |
| 265 | ("[EW], \\([^(\n]*\\)(\\([0-9]+\\),[ \t]*\\([0-9]+\\)" 1 2 3) | 265 | ("[EW], \\([^(\n]*\\)(\\([0-9]+\\),[ \t]*\\([0-9]+\\)" 1 2 3) |
| 266 | 266 | ||
| 267 | ;;; This seems to be superfluous because the first pattern matches it. | 267 | ;; This seems to be superfluous because the first pattern matches it. |
| 268 | ;;; ;; GNU messages with program name and optional column number. | 268 | ;; ;; GNU messages with program name and optional column number. |
| 269 | ;;; ("[a-zA-Z]?:?[^0-9 \n\t:]+[^ \n\t:]*:[ \t]*\\([^ \n\t:]+\\):\ | 269 | ;; ("[a-zA-Z]?:?[^0-9 \n\t:]+[^ \n\t:]*:[ \t]*\\([^ \n\t:]+\\):\ |
| 270 | ;;;\\([0-9]+\\):\\(\\([0-9]+\\)[: \t]\\)?" 1 2 4) | 270 | ;;\\([0-9]+\\):\\(\\([0-9]+\\)[: \t]\\)?" 1 2 4) |
| 271 | 271 | ||
| 272 | ;; Cray C compiler error messages | 272 | ;; Cray C compiler error messages |
| 273 | ("\\(cc\\| cft\\)-[0-9]+ c\\(c\\|f77\\): ERROR \\([^,\n]+, \\)* File = \ | 273 | ("\\(cc\\| cft\\)-[0-9]+ c\\(c\\|f77\\): ERROR \\([^,\n]+, \\)* File = \ |
| @@ -407,13 +407,13 @@ Otherwise, it saves all modified buffers without asking." | |||
| 407 | ;; Currently zgrep has trouble. It runs egrep instead of grep, | 407 | ;; Currently zgrep has trouble. It runs egrep instead of grep, |
| 408 | ;; and it doesn't pass along long options right. | 408 | ;; and it doesn't pass along long options right. |
| 409 | "grep" | 409 | "grep" |
| 410 | ;;; (if (equal (condition-case nil ; in case "zgrep" isn't in exec-path | 410 | ;; (if (equal (condition-case nil ; in case "zgrep" isn't in exec-path |
| 411 | ;;; (call-process "zgrep" nil nil nil | 411 | ;; (call-process "zgrep" nil nil nil |
| 412 | ;;; "foo" null-device) | 412 | ;; "foo" null-device) |
| 413 | ;;; (error nil)) | 413 | ;; (error nil)) |
| 414 | ;;; 1) | 414 | ;; 1) |
| 415 | ;;; "zgrep" | 415 | ;; "zgrep" |
| 416 | ;;; "grep") | 416 | ;; "grep") |
| 417 | "The default grep program for `grep-command' and `grep-find-command'. | 417 | "The default grep program for `grep-command' and `grep-find-command'. |
| 418 | This variable's value takes effect when `grep-compute-defaults' is called.") | 418 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 419 | 419 | ||
| @@ -453,14 +453,12 @@ Sometimes it is useful for files to supply local values for this variable. | |||
| 453 | You might also use mode hooks to specify it in certain modes, like this: | 453 | You might also use mode hooks to specify it in certain modes, like this: |
| 454 | 454 | ||
| 455 | (add-hook 'c-mode-hook | 455 | (add-hook 'c-mode-hook |
| 456 | (function | ||
| 457 | (lambda () | 456 | (lambda () |
| 458 | (unless (or (file-exists-p \"makefile\") | 457 | (unless (or (file-exists-p \"makefile\") |
| 459 | (file-exists-p \"Makefile\")) | 458 | (file-exists-p \"Makefile\")) |
| 460 | (make-local-variable 'compile-command) | 459 | (set (make-local-variable 'compile-command) |
| 461 | (setq compile-command | 460 | (concat \"make -k \" |
| 462 | (concat \"make -k \" | 461 | (file-name-sans-extension buffer-file-name))))))" |
| 463 | (file-name-sans-extension buffer-file-name)))))))" | ||
| 464 | :type 'string | 462 | :type 'string |
| 465 | :group 'compilation) | 463 | :group 'compilation) |
| 466 | 464 | ||
| @@ -535,19 +533,20 @@ to a function that generates a unique name." | |||
| 535 | (interactive | 533 | (interactive |
| 536 | (if (or compilation-read-command current-prefix-arg) | 534 | (if (or compilation-read-command current-prefix-arg) |
| 537 | (list (read-from-minibuffer "Compile command: " | 535 | (list (read-from-minibuffer "Compile command: " |
| 538 | compile-command nil nil | 536 | (eval compile-command) nil nil |
| 539 | '(compile-history . 1))) | 537 | '(compile-history . 1))) |
| 540 | (list compile-command))) | 538 | (list (eval compile-command)))) |
| 541 | (setq compile-command command) | 539 | (unless (equal command (eval compile-command)) |
| 540 | (setq compile-command command)) | ||
| 542 | (save-some-buffers (not compilation-ask-about-save) nil) | 541 | (save-some-buffers (not compilation-ask-about-save) nil) |
| 543 | (compile-internal compile-command "No more errors")) | 542 | (compile-internal command "No more errors")) |
| 544 | 543 | ||
| 545 | ;;; run compile with the default command line | 544 | ;; run compile with the default command line |
| 546 | (defun recompile () | 545 | (defun recompile () |
| 547 | "Re-compile the program including the current buffer." | 546 | "Re-compile the program including the current buffer." |
| 548 | (interactive) | 547 | (interactive) |
| 549 | (save-some-buffers (not compilation-ask-about-save) nil) | 548 | (save-some-buffers (not compilation-ask-about-save) nil) |
| 550 | (compile-internal compile-command "No more errors")) | 549 | (compile-internal (eval compile-command) "No more errors")) |
| 551 | 550 | ||
| 552 | (defun grep-process-setup () | 551 | (defun grep-process-setup () |
| 553 | "Set up `compilation-exit-message-function' for `grep'." | 552 | "Set up `compilation-exit-message-function' for `grep'." |
| @@ -773,7 +772,8 @@ Returns the compilation buffer created." | |||
| 773 | (save-excursion | 772 | (save-excursion |
| 774 | (set-buffer outbuf) | 773 | (set-buffer outbuf) |
| 775 | (compilation-mode name-of-mode) | 774 | (compilation-mode name-of-mode) |
| 776 | ;; (setq buffer-read-only t) ;;; Non-ergonomic. | 775 | ;; In what way is it non-ergonomic ? -stef |
| 776 | ;; (toggle-read-only 1) ;;; Non-ergonomic. | ||
| 777 | (set (make-local-variable 'compilation-parse-errors-function) parser) | 777 | (set (make-local-variable 'compilation-parse-errors-function) parser) |
| 778 | (set (make-local-variable 'compilation-error-message) error-message) | 778 | (set (make-local-variable 'compilation-error-message) error-message) |
| 779 | (set (make-local-variable 'compilation-error-regexp-alist) | 779 | (set (make-local-variable 'compilation-error-regexp-alist) |
| @@ -1663,11 +1663,11 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user." | |||
| 1663 | (let ((dirs compilation-search-path) | 1663 | (let ((dirs compilation-search-path) |
| 1664 | buffer thisdir fmts name) | 1664 | buffer thisdir fmts name) |
| 1665 | (if (file-name-absolute-p filename) | 1665 | (if (file-name-absolute-p filename) |
| 1666 | ;; The file name is absolute. Use its explicit directory as | 1666 | ;; The file name is absolute. Use its explicit directory as |
| 1667 | ;; the first in the search path, and strip it from FILENAME. | 1667 | ;; the first in the search path, and strip it from FILENAME. |
| 1668 | (setq filename (abbreviate-file-name (expand-file-name filename)) | 1668 | (setq filename (abbreviate-file-name (expand-file-name filename)) |
| 1669 | dirs (cons (file-name-directory filename) dirs) | 1669 | dirs (cons (file-name-directory filename) dirs) |
| 1670 | filename (file-name-nondirectory filename))) | 1670 | filename (file-name-nondirectory filename))) |
| 1671 | ;; Now search the path. | 1671 | ;; Now search the path. |
| 1672 | (while (and dirs (null buffer)) | 1672 | (while (and dirs (null buffer)) |
| 1673 | (setq thisdir (or (car dirs) dir) | 1673 | (setq thisdir (or (car dirs) dir) |
| @@ -1898,9 +1898,17 @@ An error message with no file name and no file name has been seen earlier")) | |||
| 1898 | find-at-least)) | 1898 | find-at-least)) |
| 1899 | (and limit-search | 1899 | (and limit-search |
| 1900 | (>= end-of-match limit-search))) | 1900 | (>= end-of-match limit-search))) |
| 1901 | (not (equal ; Same filename? | 1901 | ;; `this-error' could contain a pair of |
| 1902 | (car (cdr (car compilation-error-list))) | 1902 | ;; markers already. |
| 1903 | (car (cdr this-error))))) | 1903 | (let ((thispos (cdr this-error)) |
| 1904 | (lastpos (cdar compilation-error-list))) | ||
| 1905 | (not (equal | ||
| 1906 | (if (markerp thispos) | ||
| 1907 | (marker-buffer thispos) | ||
| 1908 | (car thispos)) | ||
| 1909 | (if (markerp lastpos) | ||
| 1910 | (marker-buffer lastpos) | ||
| 1911 | (car lastpos)))))) | ||
| 1904 | ;; We are past the limits and the last error | 1912 | ;; We are past the limits and the last error |
| 1905 | ;; parsed, didn't belong to the same source file | 1913 | ;; parsed, didn't belong to the same source file |
| 1906 | ;; as the earlier ones i.e. we have seen all the | 1914 | ;; as the earlier ones i.e. we have seen all the |
| @@ -1981,9 +1989,9 @@ An error message with no file name and no file name has been seen earlier")) | |||
| 1981 | 1989 | ||
| 1982 | (set-marker compilation-parsing-end (point)) | 1990 | (set-marker compilation-parsing-end (point)) |
| 1983 | (setq compilation-error-list (nreverse compilation-error-list)) | 1991 | (setq compilation-error-list (nreverse compilation-error-list)) |
| 1984 | ;;; (message "Parsing error messages...done. %d found. %.0f%% of buffer seen." | 1992 | ;; (message "Parsing error messages...done. %d found. %.0f%% of buffer seen." |
| 1985 | ;;; compilation-num-errors-found | 1993 | ;; compilation-num-errors-found |
| 1986 | ;;; (/ (* 100.0 (point)) (point-max))) | 1994 | ;; (/ (* 100.0 (point)) (point-max))) |
| 1987 | (message "Parsing error messages...done."))) | 1995 | (message "Parsing error messages...done."))) |
| 1988 | 1996 | ||
| 1989 | (defun compile-collect-regexps (type this) | 1997 | (defun compile-collect-regexps (type this) |