Subject: bug#2414: 23.0.90; use dired-guess-default too for minibuffer-default-add-shell-commands

From: "Drew Adams" <[email-masked]>
Date: Fri, 20 Feb 2009 12:01:29 -0800

Enhancement request:
 
`minibuffer-default-add-shell-commands' should add to the minibuffer
defaults list not only the commands determined by MIME type (which it
does now, using `mailcap-file-default-commands'), but also the
commands determined by `dired-guess-default'.
 
`dired-guess-default' is defined in dired-x.el, but it has nothing to
do with Dired, AFAICT, so there is no reason that it should not be
available (and used) generally.
 
And variables `dired-guess-shell-alist-user' and
`dired-guess-shell-alist-default' should also be factored out of
dired-x.el. They too are not Dired-related, AFAICT.
 
It is true that the default value of `dired-guess-shell-alist-default'
is computed using some variables, such as `dired-guess-shell-gnutar',
that are defined in dired-x.el.  However, those parts of the value
could be picked up dynamically and conditionally instead. Or, if they
too are not Dired-related, they could be moved elsewhere and made
available generally.

Note, BTW, that dired-x.el already uses `minibuffer-default-add-shell-commands'
in `dired-smart-shell-command' (in dired-x.el). It makes no
sense that only the MIME types be used to come up with defaults, and
not also `dired-guess-default', in the very library that defines
`dired-guess-default'!

My guess is that someone just updated `dired-smart-shell-command' for
Emacs 23 mechanically, without thinking about the commands provided
by `dired-guess-default'. IOW, it was a mechanical substitution of
the same diff that was used to update `read-shell-command'.
 
The idea behind this enhancement request is that there is no reason
that `minibuffer-default-add-shell-commands' should not benefit also
from the candidate commands defined by these alists.

In GNU Emacs 23.0.90.1 (i386-mingw-nt5.1.2600)
 of 2009-02-01 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4)'