From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: [PATCH] Add support for Babel with Eshell, (updated PATCH) Date: Mon, 23 Apr 2018 11:34:59 +0200 Message-ID: <87po2q5kqk.fsf@nicolasgoaziou.fr> References: <87d0ysroer.fsf@gmail.com> <87bmecrod4.fsf@gmail.com> <87a7twrmyv.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40899) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fAXsJ-0006VD-FM for emacs-orgmode@gnu.org; Mon, 23 Apr 2018 05:35:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fAXsF-0002mh-Ep for emacs-orgmode@gnu.org; Mon, 23 Apr 2018 05:35:07 -0400 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:57895) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fAXsF-0002lf-7Q for emacs-orgmode@gnu.org; Mon, 23 Apr 2018 05:35:03 -0400 In-Reply-To: <87a7twrmyv.fsf@gmail.com> (stardiviner's message of "Sun, 22 Apr 2018 10:31:20 +0800") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: stardiviner Cc: org-mode Hello, stardiviner writes: > From 596da7b0384d64f3c1c22a49bc9bced8d0d8abf8 Mon Sep 17 00:00:00 2001 > From: stardiviner > Date: Sun, 22 Apr 2018 09:37:40 +0800 > Subject: [PATCH] ob-eshell.el: Add Eshell support for Babel. Thank you. This could go into master branch once Org 9.2 is out. > | D | d | ditaa | ditaa | > | Graphviz | dot | Emacs Calc | calc | > | Emacs Lisp | emacs-lisp | Fortran | fortran | > +| Shell | sh | Eshell | eshell | > | Gnuplot | gnuplot | Haskell | haskell | > | Java | java | Javascript | js | > | LaTeX | latex | Ledger | ledger | Shell sh pair is already defined later in the table (ordered alphabetically). Those are spurious. > +;; Org-Babel support for evaluating Eshell source code. Org Babel support.... > +(defvar org-babel-default-header-args:eshell '()) > + > +(defun org-babel-execute:eshell (body params) > + "Execute a block of Eshell code. > +This function is called by `org-babel-execute-src-block'." Could you expound a bit and explain what are the arguments, i.e., BODY and PARAMS? > +(defun org-babel-prep-session:eshell (session params) > + "Prepare SESSION according to the header arguments specified in PARAMS." > + (let* ((session (org-babel-eshell-initiate-session session)) > + ;; Eshell session buffer is read from variable `eshell-buffer-name'. > + (eshell-buffer-name session) > + (var-lines (org-babel-variable-assignments:eshell params))) > + (call-interactively 'eshell) #'eshell > + (dolist (var-line var-lines) > + (eshell-command var-line)) (mapc #'eshell-command var-lines) > + session)) > + > +(defun ob-eshell-session-live-p (session) > + "Detect Eshell SESSION exist." "Non-nil if Eshell SESSION exists." > + (and (get-buffer session) t)) Simply: (get-buffer session) > +;;; test-ob-eshell.el > + > +;; Copyright (c) 2010-2014 Eric Schulte I don't think so ;) Barring the minor comments above, it looks good. Could you send an updated patch? Regards, -- Nicolas Goaziou