From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Brand Subject: Re: org-player and switch to lexical binding in org.el Date: Thu, 28 Jan 2016 12:37:00 +0100 Message-ID: References: <877fj8j5wx.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55088) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOkso-0006EY-NC for emacs-orgmode@gnu.org; Thu, 28 Jan 2016 06:37:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aOksn-00083h-P5 for emacs-orgmode@gnu.org; Thu, 28 Jan 2016 06:37:02 -0500 Received: from mail-wm0-x22d.google.com ([2a00:1450:400c:c09::22d]:34535) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOksn-00083V-Ih for emacs-orgmode@gnu.org; Thu, 28 Jan 2016 06:37:01 -0500 Received: by mail-wm0-x22d.google.com with SMTP id 128so6523656wmz.1 for ; Thu, 28 Jan 2016 03:37:01 -0800 (PST) In-Reply-To: <877fj8j5wx.fsf@nicolasgoaziou.fr> 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: Org Mode Cc: Paul Sexton Hi Nicolas On Sun, Jan 17, 2016 at 9:40 PM, Nicolas Goaziou wrote: > 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? I am still not able to get your suggestion that Paul has implemented in the meantime in org-player.el 1.0.1 to work. Now I am trying to understand what I am missing with the lambda. Has the (eval cmd) in org-open-file to be extended somehow to the variant (funcall cmd) as lambda evaluates to itself? Michael