unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#27236: 25.1; grep: nonsensical default commands offered
@ 2017-06-04 17:22 Yuri Khan
  2022-05-17 19:00 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 2+ messages in thread
From: Yuri Khan @ 2017-06-04 17:22 UTC (permalink / raw)
  To: 27236

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))





^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#27236: 25.1; grep: nonsensical default commands offered
  2017-06-04 17:22 bug#27236: 25.1; grep: nonsensical default commands offered Yuri Khan
@ 2022-05-17 19:00 ` Lars Ingebrigtsen
  0 siblings, 0 replies; 2+ messages in thread
From: Lars Ingebrigtsen @ 2022-05-17 19:00 UTC (permalink / raw)
  To: Yuri Khan; +Cc: 27236

Yuri Khan <yuri.v.khan@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





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-05-17 19:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-04 17:22 bug#27236: 25.1; grep: nonsensical default commands offered Yuri Khan
2022-05-17 19:00 ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).