GNU bug report logs -
#27236
25.1; grep: nonsensical default commands offered
Previous Next
Reported by: Yuri Khan <yuri.v.khan <at> gmail.com>
Date: Sun, 4 Jun 2017 17:24:02 UTC
Severity: minor
Found in version 25.1
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 27236 in the body.
You can then email your comments to 27236 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#27236
; Package
emacs
.
(Sun, 04 Jun 2017 17:24:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Yuri Khan <yuri.v.khan <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Sun, 04 Jun 2017 17:24:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Running ‘grep’ and cycling through suggested defaults starts with the
value of ‘grep-command’, followed by that command with the current
symbol substituted. After that, it offers the same command but with the
name of a text editor or viewer added in front.
The call sequence is as follows:
* ‘grep’ computes the initial command and the first default command.
* ‘grep’ calls ‘read-shell-command’.
* ‘read-shell-command’ calls ‘read-from-minibuffer’ with a setup hook
that binds ‘minibuffer-default-add-function’ to
‘minibuffer-default-add-shell-commands’.
* ‘minibuffer-default-add-shell-commands’ interprets the provided
default command as a file name and consults
‘mailcap-file-default-commands’ for commands applicable to that file
name.
* The default command has no file extension, so
‘mailcap-file-default-commands’ assumes it is a text/plain file and
returns a list of text editors and viewers.
$ emacs -Q
M-x grep RET
⇒ Run grep (like this): grep --color -nH -e
<down>
⇒ Run grep (like this): grep --color -nH ''
<down>
⇒ Run grep (like this): less grep --color -nH ''
<down>
⇒ Run grep (like this): more grep --color -nH ''
<down>
⇒ Run grep (like this): /usr/bin/emacs24 -nw grep --color -nH ''
<down>
⇒ Run grep (like this): /usr/bin/emacs24 grep --color -nH ''
<down>
⇒ Run grep (like this): /usr/bin/emacs25 -nw grep --color -nH ''
<down>
⇒ Run grep (like this): /usr/bin/emacs25 grep --color -nH ''
<down>
⇒ Run grep (like this): geany grep --color -nH ''
<down>
⇒ Run grep (like this): gvim -f grep --color -nH ''
<down>
⇒ Run grep (like this): mousepad grep --color -nH ''
<down>
⇒ Run grep (like this): gedit --new-document grep --color -nH ''
<down>
⇒ Run grep (like this): kate -b grep --color -nH ''
<down>
⇒ Run grep (like this): vim grep --color -nH ''
<down>
⇒ Run grep (like this): view grep --color -nH ''
<down>
⇒ Run grep (like this): gview grep --color -nH ''
<down>
⇒ End of defaults; no next item
In GNU Emacs 25.1.1 (x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
of 2016-12-13, modified by Debian built on lgw01-55
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description: Ubuntu 16.04.2 LTS
Configured using:
'configure --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/lib
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-pop=yes
--enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.1/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/lib
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-pop=yes
--enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.1/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --with-x=yes --with-x-toolkit=gtk3
--with-toolkit-scroll-bars 'CFLAGS=-g -O2 -fstack-protector-strong
-Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
-D_FORTIFY_SOURCE=2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro''
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11
Important settings:
value of $LC_MONETARY: en_RU.UTF-8
value of $LC_NUMERIC: en_RU.UTF-8
value of $LC_TIME: en_RU.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
shell-dirtrack-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
user-error: End of defaults; no next item [4 times]
Quit
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies
mm-encode mailabbrev gmm-utils mailheader sendmail mail-utils mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu
cl-loaddefs pcase cl-lib mail-prsvr mailcap shell pcomplete thingatpt
grep compile comint ansi-color ring time-date mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 105943 8853)
(symbols 48 20562 0)
(miscs 40 49 146)
(strings 32 22520 4388)
(string-bytes 1 586592)
(vectors 16 12928)
(vector-slots 8 441075 3385)
(floats 8 167 117)
(intervals 56 249 0)
(buffers 976 17)
(heap 1024 35911 998))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#27236
; Package
emacs
.
(Tue, 17 May 2022 19:01:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 27236 <at> debbugs.gnu.org (full text, mbox):
Yuri Khan <yuri.v.khan <at> gmail.com> writes:
> The call sequence is as follows:
>
> * ‘grep’ computes the initial command and the first default command.
> * ‘grep’ calls ‘read-shell-command’.
> * ‘read-shell-command’ calls ‘read-from-minibuffer’ with a setup hook
> that binds ‘minibuffer-default-add-function’ to
> ‘minibuffer-default-add-shell-commands’.
> * ‘minibuffer-default-add-shell-commands’ interprets the provided
> default command as a file name and consults
> ‘mailcap-file-default-commands’ for commands applicable to that file
> name.
> * The default command has no file extension, so
> ‘mailcap-file-default-commands’ assumes it is a text/plain file and
> returns a list of text editors and viewers.
(I'm going through old bug reports that unfortunately weren't resolved
at the time.)
Looking at this call chain, there doesn't seem to be any easy way to
defeat this behaviour -- in this case, we really don't want any of the
guesses from minibuffer-default-add-shell-commands/mailcap, I think?
So perhaps we should add a variable to inhibit this action?
On the other hand, the mailcap function is called with something that
"clearly" isn't a file, namely:
(mailcap-file-default-commands '("grep --color=auto -nH --null '' "))
=> ("/usr/bin/emacs -nw")
So perhaps we could introduce some logic to this mailcap function to
detect that we don't really have a file name here.
So I've now done the latter in Emacs 29.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
bug marked as fixed in version 29.1, send any further explanations to
27236 <at> debbugs.gnu.org and Yuri Khan <yuri.v.khan <at> gmail.com>
Request was from
Lars Ingebrigtsen <larsi <at> gnus.org>
to
control <at> debbugs.gnu.org
.
(Tue, 17 May 2022 19:01:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 15 Jun 2022 11:24:06 GMT)
Full text and
rfc822 format available.
This bug report was last modified 3 years and 26 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.