1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-05 11:45:45 +00:00

(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.
This commit is contained in:
Romain Francoise 2005-08-27 16:11:44 +00:00
parent a24c45d2bd
commit 713fbb79db
2 changed files with 28 additions and 17 deletions

View File

@ -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'.

View File

@ -171,22 +171,27 @@ command to gain use of `next-error'."
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 @@ Use the \\[next-error] command to move to the next error
(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)