mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-22 18:35:09 +00:00
Johan Bockg� <bojohan at gnu.org>
(eshell-insertion-filter, eshell-sentinel): Use `with-current-buffer'.
This commit is contained in:
parent
3b32d9a56a
commit
1b3f94df29
@ -1,3 +1,9 @@
|
||||
2007-11-07 Johan Bockg,Ae(Brd <bojohan@gnu.org>
|
||||
|
||||
* eshell/esh-mode.el (eshell-output-filter):
|
||||
* eshell/esh-proc.el (eshell-insertion-filter, eshell-sentinel):
|
||||
Use `with-current-buffer'.
|
||||
|
||||
2007-11-05 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* progmodes/gud.el (gud-gdb): Remove vestigial gdba doc and code.
|
||||
|
@ -335,39 +335,39 @@ Used only on systems which do not support async subprocesses.")
|
||||
PROC is the process for which we're inserting output. STRING is the
|
||||
output."
|
||||
(when (buffer-live-p (process-buffer proc))
|
||||
(set-buffer (process-buffer proc))
|
||||
(let ((entry (assq proc eshell-process-list)))
|
||||
(when entry
|
||||
(setcar (nthcdr 3 entry)
|
||||
(concat (nth 3 entry) string))
|
||||
(unless (nth 4 entry) ; already being handled?
|
||||
(while (nth 3 entry)
|
||||
(let ((data (nth 3 entry)))
|
||||
(setcar (nthcdr 3 entry) nil)
|
||||
(setcar (nthcdr 4 entry) t)
|
||||
(eshell-output-object data nil (cadr entry))
|
||||
(setcar (nthcdr 4 entry) nil))))))))
|
||||
(with-current-buffer (process-buffer proc)
|
||||
(let ((entry (assq proc eshell-process-list)))
|
||||
(when entry
|
||||
(setcar (nthcdr 3 entry)
|
||||
(concat (nth 3 entry) string))
|
||||
(unless (nth 4 entry) ; already being handled?
|
||||
(while (nth 3 entry)
|
||||
(let ((data (nth 3 entry)))
|
||||
(setcar (nthcdr 3 entry) nil)
|
||||
(setcar (nthcdr 4 entry) t)
|
||||
(eshell-output-object data nil (cadr entry))
|
||||
(setcar (nthcdr 4 entry) nil)))))))))
|
||||
|
||||
(defun eshell-sentinel (proc string)
|
||||
"Generic sentinel for command processes. Reports only signals.
|
||||
PROC is the process that's exiting. STRING is the exit message."
|
||||
(when (buffer-live-p (process-buffer proc))
|
||||
(set-buffer (process-buffer proc))
|
||||
(unwind-protect
|
||||
(let* ((entry (assq proc eshell-process-list)))
|
||||
; (if (not entry)
|
||||
; (error "Sentinel called for unowned process `%s'"
|
||||
; (process-name proc))
|
||||
(when entry
|
||||
(unwind-protect
|
||||
(progn
|
||||
(unless (string= string "run")
|
||||
(unless (string-match "^\\(finished\\|exited\\)" string)
|
||||
(eshell-insertion-filter proc string))
|
||||
(eshell-close-handles (process-exit-status proc) 'nil
|
||||
(cadr entry))))
|
||||
(eshell-remove-process-entry entry))))
|
||||
(run-hook-with-args 'eshell-kill-hook proc string))))
|
||||
(with-current-buffer (process-buffer proc)
|
||||
(unwind-protect
|
||||
(let* ((entry (assq proc eshell-process-list)))
|
||||
; (if (not entry)
|
||||
; (error "Sentinel called for unowned process `%s'"
|
||||
; (process-name proc))
|
||||
(when entry
|
||||
(unwind-protect
|
||||
(progn
|
||||
(unless (string= string "run")
|
||||
(unless (string-match "^\\(finished\\|exited\\)" string)
|
||||
(eshell-insertion-filter proc string))
|
||||
(eshell-close-handles (process-exit-status proc) 'nil
|
||||
(cadr entry))))
|
||||
(eshell-remove-process-entry entry))))
|
||||
(run-hook-with-args 'eshell-kill-hook proc string)))))
|
||||
|
||||
(defun eshell-process-interact (func &optional all query)
|
||||
"Interact with a process, using PROMPT if more than one, via FUNC.
|
||||
|
Loading…
Reference in New Issue
Block a user