Function: eshell-extpipe--or-with-catch
eshell-extpipe--or-with-catch is a macro defined in em-extpipe.el.gz.
Signature
(eshell-extpipe--or-with-catch &rest DISJUNCTS)
Documentation
Evaluate DISJUNCTS like or but catch eshell-incomplete.
If eshell-incomplete is thrown during the evaluation of a
disjunct, that disjunct yields nil.
Source Code
;; Defined in /usr/src/emacs/lisp/eshell/em-extpipe.el.gz
(defmacro eshell-extpipe--or-with-catch (&rest disjuncts)
"Evaluate DISJUNCTS like `or' but catch `eshell-incomplete'.
If `eshell-incomplete' is thrown during the evaluation of a
disjunct, that disjunct yields nil."
(let ((result (gensym)))
`(let (,result)
(or ,@(cl-loop for disjunct in disjuncts collect
`(if (catch 'eshell-incomplete
(ignore (setq ,result ,disjunct)))
nil
,result))))))