mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
2004-05-15 John Wiegley <johnw@newartisans.com>
* eshell/esh-io.el (eshell-get-target): whitespace changes. (eshell-output-object-to-target): Improve output speed 20% by not calling `eshell-stringify' if something is already known to be a string.
This commit is contained in:
parent
e9e132edf5
commit
e1703ba9ac
@ -333,22 +333,23 @@ it defaults to `insert'."
|
||||
(cond
|
||||
((stringp target)
|
||||
(let ((redir (assoc target eshell-virtual-targets)))
|
||||
(if redir
|
||||
(if (nth 2 redir)
|
||||
(funcall (nth 1 redir) mode)
|
||||
(nth 1 redir))
|
||||
(let* ((exists (get-file-buffer target))
|
||||
(buf (find-file-noselect target t)))
|
||||
(with-current-buffer buf
|
||||
(if buffer-read-only
|
||||
(error "Cannot write to read-only file `%s'" target))
|
||||
(set (make-local-variable 'eshell-output-file-buffer)
|
||||
(if (eq exists buf) 0 t))
|
||||
(cond ((eq mode 'overwrite)
|
||||
(erase-buffer))
|
||||
((eq mode 'append)
|
||||
(goto-char (point-max))))
|
||||
(point-marker))))))
|
||||
(if redir
|
||||
(if (nth 2 redir)
|
||||
(funcall (nth 1 redir) mode)
|
||||
(nth 1 redir))
|
||||
(let* ((exists (get-file-buffer target))
|
||||
(buf (find-file-noselect target t)))
|
||||
(with-current-buffer buf
|
||||
(if buffer-read-only
|
||||
(error "Cannot write to read-only file `%s'" target))
|
||||
(set (make-local-variable 'eshell-output-file-buffer)
|
||||
(if (eq exists buf) 0 t))
|
||||
(cond ((eq mode 'overwrite)
|
||||
(erase-buffer))
|
||||
((eq mode 'append)
|
||||
(goto-char (point-max))))
|
||||
(point-marker))))))
|
||||
|
||||
((or (bufferp target)
|
||||
(and (boundp 'eshell-buffer-shorthand)
|
||||
(symbol-value 'eshell-buffer-shorthand)
|
||||
@ -363,15 +364,18 @@ it defaults to `insert'."
|
||||
((eq mode 'append)
|
||||
(goto-char (point-max))))
|
||||
(point-marker))))
|
||||
((functionp target)
|
||||
nil)
|
||||
|
||||
((functionp target) nil)
|
||||
|
||||
((symbolp target)
|
||||
(if (eq mode 'overwrite)
|
||||
(set target nil))
|
||||
target)
|
||||
|
||||
((or (eshell-processp target)
|
||||
(markerp target))
|
||||
target)
|
||||
|
||||
(t
|
||||
(error "Illegal redirection target: %s"
|
||||
(eshell-stringify target)))))
|
||||
@ -481,7 +485,8 @@ Returns what was actually sent, or nil if nothing was sent."
|
||||
(let ((moving (= (point) target)))
|
||||
(save-excursion
|
||||
(goto-char target)
|
||||
(setq object (eshell-stringify object))
|
||||
(unless (stringp object)
|
||||
(setq object (eshell-stringify object)))
|
||||
(insert-and-inherit object)
|
||||
(set-marker target (point-marker)))
|
||||
(if moving
|
||||
@ -489,7 +494,8 @@ Returns what was actually sent, or nil if nothing was sent."
|
||||
|
||||
((eshell-processp target)
|
||||
(when (eq (process-status target) 'run)
|
||||
(setq object (eshell-stringify object))
|
||||
(unless (stringp object)
|
||||
(setq object (eshell-stringify object)))
|
||||
(process-send-string target object)))
|
||||
|
||||
((consp target)
|
||||
|
Loading…
Reference in New Issue
Block a user