From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: org-player and switch to lexical binding in org.el Date: Sun, 17 Jan 2016 21:40:46 +0100 Message-ID: <877fj8j5wx.fsf@nicolasgoaziou.fr> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53608) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aKu68-0003UN-By for emacs-orgmode@gnu.org; Sun, 17 Jan 2016 15:38:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aKu67-0007pE-DR for emacs-orgmode@gnu.org; Sun, 17 Jan 2016 15:38:52 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:c:538::195]:60595) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aKu67-0007n0-7F for emacs-orgmode@gnu.org; Sun, 17 Jan 2016 15:38:51 -0500 In-Reply-To: (Michael Brand's message of "Sun, 17 Jan 2016 19:58:38 +0100") 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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Michael Brand Cc: Org Mode Hello, Michael Brand writes: > release_8.3.3-426-g1f49e9f introduces a regression. The link > > [[file:/dir/audio.mp3::0:12:34]] > > results in > > Debugger entered--Lisp error: (void-variable search) > (org-player-play-file file search) > [...] > org-open-file("/dir/audio.mp3" nil nil "0:12:34") > [...] `search' never was advertised as a dynamically scoped variable in `org-file-apps' docstring, so "org-player" is just playing with fire here. I don't like the current solution either (eval with a LEXICAL argument). I think it would be better to use un function with two arguments (file and link-string instead). This is not backward compatible, but the change is trivial: sexp -> (lambda (file link) sexp). In the current case, you need to use match string: (add-to-list 'org-file-apps (cons (concat org-player-file-extensions-regexp "::\\([0-9]+:[0-9]+\\(:[0-9]+\\)?\\)") (lambda (file link) (org-player-play-file file (match-string 1 link))))) WDYT? Regards, -- Nicolas Goaziou