From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: Re: org-program-exists vs executable-find Date: Wed, 18 Apr 2012 16:39:19 +0200 Message-ID: <80aa29umso.fsf@somewhere.org> References: <80mx69us0v.fsf@somewhere.org> <874nshjhnq.fsf@altern.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: 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-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hi Bastien, Bastien wrote: > "Sebastien Vauban" 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)) >> (=3D 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 exi= sts > 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 + ", 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 th= ey >> 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'. > =CC=80executable-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 --=20 Sebastien Vauban