Hello,

Michael Brand <michael.ch.br...@gmail.com> 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

Reply via email to