# HG changeset patch # User John Wiegley # Date 1084661135 0 # Node ID 8e3531a0090210bc69fb2e30ce918525e55d816f # Parent eee95823e97c3be8ebc089cbe77235332b22cbe4 2004-05-15 John Wiegley * 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. diff -r eee95823e97c -r 8e3531a00902 lisp/eshell/esh-io.el --- a/lisp/eshell/esh-io.el Sat May 15 22:45:13 2004 +0000 +++ b/lisp/eshell/esh-io.el Sat May 15 22:45:35 2004 +0000 @@ -333,22 +333,23 @@ (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 @@ ((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 @@ (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 @@ ((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)