From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adam Spiers Subject: Re: inserting files within remember templates Date: Tue, 6 Nov 2007 22:39:50 +0000 Message-ID: <20071106223950.GA6033@atlantic.linksys.moosehall> References: <20071105181739.GB13544@atlantic.linksys.moosehall> <8A730AEC-45F4-4A2F-BD38-24DEBF937445@science.uva.nl> <20071106163647.GC13544@atlantic.linksys.moosehall> Reply-To: Adam Spiers Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IpX5X-0004w5-0B for emacs-orgmode@gnu.org; Tue, 06 Nov 2007 17:40:03 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IpX5T-0004tV-U9 for emacs-orgmode@gnu.org; Tue, 06 Nov 2007 17:40:01 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IpX5T-0004tA-Fb for emacs-orgmode@gnu.org; Tue, 06 Nov 2007 17:39:59 -0500 Received: from mail.beimborn.com ([70.84.38.100]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1IpX5R-0006uS-Ry for emacs-orgmode@gnu.org; Tue, 06 Nov 2007 17:39:58 -0500 Received: from mail.beimborn.com (localhost.localdomain [127.0.0.1]) by mail.beimborn.com (8.12.11.20060308/8.12.8) with ESMTP id lA6Mdrok023164 for ; Tue, 6 Nov 2007 16:39:53 -0600 Received: from localhost (localhost [[UNIX: localhost]]) by mail.beimborn.com (8.12.11.20060308/8.12.11/Submit) id lA6Mdr2a023158 for emacs-orgmode@gnu.org; Tue, 6 Nov 2007 22:39:53 GMT Content-Disposition: inline In-Reply-To: <20071106163647.GC13544@atlantic.linksys.moosehall> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org On Tue, Nov 06, 2007 at 04:36:47PM +0000, Adam Spiers wrote: [snip] > This could easily be accomplished if remember templates allowed syntax > such as > > ,------ > | * %T > | %(shell-command-to-string "grep 'last full' /proc/acpi/battery/BAT0/info") > `------ OK, it turns out that this was easy to implement, and I think the patch is small enough that it could be accepted even though I haven't got around to sending back the copyright assignment form yet (sorry - this *will* happen at some point!) Diff against 5.13i: --- a/org.el Wed Oct 31 09:46:35 2007 +0000 +++ b/org.el Tue Nov 06 22:30:13 2007 +0000 @@ -12806,6 +12806,17 @@ to be run from that hook to fucntion pro (replace-match (or (eval (intern (concat "v-" (match-string 1)))) "") t t)) + ;; %() embedded elisp + (goto-char (point-min)) + (while (re-search-forward "%\\((.+)\\)" nil t) + (goto-char (match-beginning 0)) + (let ((template-start (point))) + (forward-char 1) + (condition-case error + (let ((result (eval (read (current-buffer))))) + (delete-region template-start (point)) + (insert result)) + (error (message "Error `%s' in remember template" error))))) ;; From the property list (when plist-p (goto-char (point-min)) There might need to be some debate about how to handle read errors in the case of invalid syntax. Or perhaps some people already have `%(...)' within their remember templates for some really unusual reason, and don't want it interpreted? Though in the latter case, one could argue that it might make sense to require `%' always to be escaped as `%%' if used literally, to be on the safe side.