diff options
author | Miles Bader <miles@gnu.org> | 2000-10-19 02:12:30 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2000-10-19 02:12:30 +0000 |
commit | d134a19f84bf990f04b034fa2e2def31aba8a95a (patch) | |
tree | d89faafbcecb2d15ad5fc53df2e7b93d930a2df1 | |
parent | e50517d90e8d95c0eb2363d834cf95319288f6fd (diff) | |
download | emacs-d134a19f84bf990f04b034fa2e2def31aba8a95a.tar.gz |
(comint-write-output, comint-append-output-to-file): New functions.
(comint-mode-map): Add them to the menu.
-rw-r--r-- | lisp/ChangeLog | 6 | ||||
-rw-r--r-- | lisp/comint.el | 33 |
2 files changed, 38 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f4f51ec5e90..a2638f6a728 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2000-10-19 Miles Bader <miles@lsi.nec.co.jp> + + * comint.el (comint-write-output, comint-append-output-to-file): + New functions. + (comint-mode-map): Add them to the menu. + 2000-10-18 Gerd Moellmann <gerd@gnu.org> * startup.el (fancy-splash-screens): Set buffer-undo-list to t. diff --git a/lisp/comint.el b/lisp/comint.el index 318e1566b0d..2569ce434d9 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -574,6 +574,10 @@ Entry to this mode runs the hooks on `comint-mode-hook'." (cons "In/Out" (make-sparse-keymap "In/Out"))) (define-key comint-mode-map [menu-bar inout delete-output] '("Delete Current Output Group" . comint-delete-output)) + (define-key comint-mode-map [menu-bar inout write-output] + '("Write Current Output Group to File" . comint-write-output)) + (define-key comint-mode-map [menu-bar inout append-output-to-file] + '("Append Current Output Group to File" . comint-append-output-to-file)) (define-key comint-mode-map [menu-bar inout next-prompt] '("Forward Output Group" . comint-next-prompt)) (define-key comint-mode-map [menu-bar inout previous-prompt] @@ -1870,7 +1874,7 @@ This function could be in the list `comint-output-filter-functions'." ;; Random input hackage (defun comint-delete-output () - "Kill all output from interpreter since last input. + "Delete all output from interpreter since last input. Does not delete the prompt." (interactive) (let ((proc (get-buffer-process (current-buffer))) @@ -1889,6 +1893,33 @@ Does not delete the prompt." (defalias 'comint-kill-output 'comint-delete-output) (make-obsolete 'comint-kill-output 'comint-delete-output "21.1") +(defun comint-write-output (filename &optional mustbenew) + "Write output from interpreter since last input to FILENAME. +Any prompt at the end of the output is not written. + +If the optional argument MUSTBENEW (the prefix argument when interactive), +is non-nil, check for an existing file with the same name. If MUSTBENEW +is `excl', that means to get an error if the file already exists; never +overwrite. If MUSTBENEW is neither nil nor `excl', that means ask for +confirmation before overwriting, but do go ahead and overwrite the file +if the user confirms." + (interactive "FWrite output to file: \np") + (save-excursion + (goto-char (process-mark (get-buffer-process (current-buffer)))) + (forward-line 0) + (write-region comint-last-input-end (point) + filename nil nil nil mustbenew))) + +(defun comint-append-output-to-file (filename) + "Append output from interpreter since last input to FILENAME. +Any prompt at the end of the output is not written." + (interactive "FAppend output to file: ") + (save-excursion + (goto-char (process-mark (get-buffer-process (current-buffer)))) + (forward-line 0) + (write-region comint-last-input-end (point) filename t))) + + (defun comint-show-output () "Display start of this batch of interpreter output at top of window. Sets mark to the value of point when this command is run." |