Mercurial > emacs
changeset 65176:9be9d0d6527f
(makeinfo-compile): Use `compilation-start'. Set `next-error-function'
according to `disable-errors'.
(makeinfo-next-error): New function.
(makeinfo-region): Adjust to new `makeinfo-compile' prototype.
(makeinfo-buffer): Likewise.
author | Romain Francoise <romain@orebokech.com> |
---|---|
date | Sat, 27 Aug 2005 16:11:44 +0000 |
parents | 0ef9e8908562 |
children | 379f0d3fc2af |
files | lisp/ChangeLog lisp/textmodes/makeinfo.el |
diffstat | 2 files changed, 28 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Aug 27 14:38:22 2005 +0000 +++ b/lisp/ChangeLog Sat Aug 27 16:11:44 2005 +0000 @@ -1,5 +1,12 @@ 2005-08-27 Romain Francoise <romain@orebokech.com> + * textmodes/makeinfo.el (makeinfo-compile): Use + `compilation-start'. Set `next-error-function' according to + `disable-errors'. + (makeinfo-next-error): New function. + (makeinfo-region): Adjust to new `makeinfo-compile' prototype. + (makeinfo-buffer): Likewise. + * progmodes/compile.el (compilation-start): Add autoload cookie. * progmodes/antlr-mode.el: Don't autoload `compilation-start'.
--- a/lisp/textmodes/makeinfo.el Sat Aug 27 14:38:22 2005 +0000 +++ b/lisp/textmodes/makeinfo.el Sat Aug 27 16:11:44 2005 +0000 @@ -171,22 +171,27 @@ makeinfo-options " " makeinfo-temp-file) - "Use `makeinfo-buffer' to gain use of the `next-error' command" - nil + t 'makeinfo-compilation-sentinel-region))))))) -;;; Actually run makeinfo. COMMAND is the command to run. -;;; ERROR-MESSAGE is what to say when next-error can't find another error. -;;; If PARSE-ERRORS is non-nil, do try to parse error messages. -(defun makeinfo-compile (command error-message parse-errors sentinel) - (let ((buffer - (compile-internal command error-message nil - (and (not parse-errors) - ;; If we do want to parse errors, pass nil. - ;; Otherwise, use this function, which won't - ;; ever find any errors. - (lambda (&rest ignore) - (setq compilation-error-list nil)))))) +(defun makeinfo-next-error (arg reset) + "This function is used to disable `next-error' if the user has +used `makeinfo-region'. Since the compilation process is used on +a temporary file in that case, calling `next-error' would give +nonsensical results." + (error "Use `makeinfo-buffer' to gain use of the `next-error' command")) + +;; Actually run makeinfo. COMMAND is the command to run. If +;; DISABLE-ERRORS is non-nil, disable `next-error' by setting +;; `next-error-function' to `makeinfo-next-error' in the compilation +;; buffer. +(defun makeinfo-compile (command disable-errors sentinel) + (let ((buffer (compilation-start command))) + (with-current-buffer buffer + (setq next-error-function + (if disable-errors + 'makeinfo-next-error + 'compilation-next-error-function))) (set-process-sentinel (get-buffer-process buffer) sentinel))) ;; Delete makeinfo-temp-file after processing is finished, @@ -249,9 +254,8 @@ (save-excursion (makeinfo-compile (concat makeinfo-run-command " " makeinfo-options - " " buffer-file-name) - "No more errors." - t + " " buffer-file-name) + nil 'makeinfo-compilation-sentinel-buffer))) (defun makeinfo-compilation-sentinel-buffer (proc msg)