]> git.eshelyaron.com Git - emacs.git/commitdiff
2004-05-15 John Wiegley <johnw@newartisans.com>
authorJohn Wiegley <johnw@newartisans.com>
Sat, 15 May 2004 22:45:35 +0000 (22:45 +0000)
committerJohn Wiegley <johnw@newartisans.com>
Sat, 15 May 2004 22:45:35 +0000 (22:45 +0000)
* 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.

lisp/eshell/esh-io.el

index 8d1036b736eb3cb92b3023d54b05c53de4f0d6c8..d832fa9cd03b120970cd44f3ed8b56973dabd2dd 100644 (file)
@@ -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)