Hi Bastien, Bastien wrote: > "Sebastien Vauban" <wxhgmqzgw...@spammotel.com> writes: > >> While browsing the Org code, I've found the function `org-program-exists': >> >> #+begin_src emacs-lisp >> (defun org-program-exists (program-name) >> "Checks whenever we can locate program and launch it." >> (if (member system-type '(gnu/linux darwin)) >> (= 0 (call-process "which" nil nil nil program-name)))) >> #+end_src >> >> It is used 3 times in `org-clock.el', nowhere else. > > The name `org-program-exists' is actually misleading, it should be > `org-executable-call' instead, while still checking if the executable exists > before calling it.
Nope, the name is not misleading. The documentation string is false -- what I hadn't noticed, btw. That function just checks if the executable can be found; it does _not_ call it afterward. On Linux and Mac OS, it just calls "which + <program name>", no more... On Windows, it simply fails immediately (even if the program could be found). >> On the contrary, `executable-find' is used 10 times in the Org code base >> (in 4 different libraries). >> >> Shouldn't we better use `executable-find' everywhere, instead of >> `org-program-exists' (which, btw, fails on Windows systems, even when they >> have the Cygwin `which' at their disposal)? >> >> I'm ready to submit a patch for this. > > Please submit a patch using `executable-find' in `org-executable-call'. > ̀executable-find' takes care of (gnu/linux|darwin-windows). Also add an alias > org-program-exists -> org-executable-call in case people are using > org-program-exists in their programs. Best regards, Seb -- Sebastien Vauban