Subject: Re: bug#64791: 30.0.50; [PATCH] Fix dired mismatch on some filenames

From: Eli Zaretskii <[email-masked]>
Date: Mon, 04 Sep 2023 15:17:07 +0300

> Cc: [email-masked], [email-masked]
> Date: Sun, 03 Sep 2023 22:25:30 +0300
> From: Eli Zaretskii <[email-masked]>
> 
> > -(defvar insert-directory-program (purecopy "ls")
> > +(defvar insert-directory-program
> > +  (if (and (memq system-type '(berkeley-unix darwin))
> > +           (executable-find "gls"))
> > +      (purecopy "gls")
> > +    (purecopy "ls"))
> >    "Absolute or relative name of the `ls'-like program.
> >  This is used by `insert-directory' and `dired-insert-directory'
> >  \(thus, also by `dired').")
> 
> If we believe "gls" is the only popular name, I guess that's good
> enough.

Actually, I take this back: this defvar will be computed when files.el
is loaded, which is at dump time.  So this is not TRT, since the
conditions and the environment at dump time could be very different
from those at run time.  It could be even on another machine.

So I once again suggest to make this a defcustom.  This has two
advantages:

 . it will be evaluated at Emacs startup, not at dump time
 . it will allow users to customize the value and thus avoid costly
   search  for the program and prevent finding the wrong version of
   'ls'