changeset 32631:ba88cc6434f3

(comint-write-output, comint-append-output-to-file): New functions. (comint-mode-map): Add them to the menu.
author Miles Bader <miles@gnu.org>
date Thu, 19 Oct 2000 02:12:03 +0000
parents da542331c809
children c7ca5be1acff
files lisp/comint.el
diffstat 1 files changed, 32 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/comint.el	Wed Oct 18 19:12:39 2000 +0000
+++ b/lisp/comint.el	Thu Oct 19 02:12:03 2000 +0000
@@ -574,6 +574,10 @@
     (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 @@
 ;; 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 @@
 (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."