(eshell/cat): Do a quick test if something is a regular file, before
checking if it is a directory or symlink. This avoids a call to eshell-file-attributes, which can be expensive in some situations.
This commit is contained in:
parent
ef94bd99e4
commit
9f89e09863
1 changed files with 6 additions and 3 deletions
|
@ -572,9 +572,12 @@ symlink, then revert to the system's definition of cat."
|
|||
(if (or eshell-in-pipeline-p
|
||||
(catch 'special
|
||||
(eshell-for arg args
|
||||
(unless (let ((attrs (eshell-file-attributes arg)))
|
||||
(and attrs (memq (aref (nth 8 attrs) 0)
|
||||
'(?d ?l ?-))))
|
||||
(unless (or (and (stringp arg)
|
||||
(> (length arg) 0)
|
||||
(eq (aref arg 0) ?-))
|
||||
(let ((attrs (eshell-file-attributes arg)))
|
||||
(and attrs (memq (aref (nth 8 attrs) 0)
|
||||
'(?d ?l ?-)))))
|
||||
(throw 'special t)))))
|
||||
(let ((ext-cat (eshell-search-path "cat")))
|
||||
(if ext-cat
|
||||
|
|
Loading…
Add table
Reference in a new issue