GNU bug report logs - #64140
29.0.91; C-u M-x grep doesn't work correctly after M-x vc-git-grep

Previous Next

Package: emacs;

Reported by: Daniel Martín <mardani29 <at> yahoo.es>

Date: Sun, 18 Jun 2023 00:33:02 UTC

Severity: normal

Found in version 29.0.91

To reply to this bug, email your comments to 64140 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#64140; Package emacs. (Sun, 18 Jun 2023 00:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Daniel Martín <mardani29 <at> yahoo.es>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 18 Jun 2023 00:33:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Daniel Martín <mardani29 <at> yahoo.es>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.91; C-u M-x grep doesn't work correctly after M-x vc-git-grep
Date: Sun, 18 Jun 2023 02:32:28 +0200
Steps to reproduce:

emacs -Q
C-x C-f emacs/src/xdisp.c RET
M-x vc-git-grep RET
Perform any search.
Place the point over any symbol, for example, char_can_wrap_before.
C-u M-x grep

The suggested grep command to confirm is

git --no-pager char_can_wrap_before *.c

which is incorrect, it should be

grep --color=auto -nH --null -e char_can_wrap_before *.c

If I run a regular grep with M-x grep, then C-u M-x now suggests the
correct grep command.

In GNU Emacs 29.0.91 (build 8, aarch64-apple-darwin21.6.0, NS
 appkit-2113.60 Version 12.6 (Build 21G115)) of 2023-06-07 built on
 Daniels-MacBook-Pro.local
Repository revision: bcc222251e1a750a11e365f2faa641cc56c1169d
Repository branch: emacs-29
Windowing system distributor 'Apple', version 10.3.2113
System Description:  macOS 12.6

Configured using:
 'configure 'CFLAGS=-O0 -g3 -fsanitize=address'
 CPPFLAGS=-I/opt/homebrew/opt/openjdk <at> 11/include'

Configured features:
ACL GNUTLS JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG
SQLITE3 THREADS TOOLKIT_SCROLL_BARS WEBP ZLIB

Important settings:
  value of $LC_CTYPE: UTF-8
  locale-coding-system: utf-8-unix

Major mode: C++//l

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  abbrev-mode: t

Load-path shadows:
None found.

Features:
(pcvs pcvs-defs vc-cvs vc-rcs pcvs-parse pcvs-info ewoc make-mode
pcmpl-gnu autoconf autoconf-mode pcmpl-unix ruby-mode novice org-attach
perl-mode completion dos-w32 find-cmd rng-xsd xsd-regexp rng-cmpct
rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt
rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util
nxml-enc xmltok cc-langs pcase emacs-news-mode emoji-labels emoji
multisession sqlite transient edmacro kmacro org-element org-persist
org-id org-refile avl-tree oc-basic ol-eww ol-rmail ol-mhe ol-irc
ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime
dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud
nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range
gnus-win ol-docview ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi
org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src
ob-comint org-pcomplete org-list org-footnote org-faces org-entities
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs
org-version org-compat org-macs korea-util timezone parse-time iso8601
mhtml-mode css-mode js c-ts-common sgml-mode facemenu textsec
uni-scripts idna-mapping uni-confusable textsec-check gnutls
network-stream url-http url-gw nsm url-cache url-auth format-spec eww
xdg url-queue shr pixel-fill kinsoku url-file svg xml dom browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mm-url gnus nnheader range
cus-edit cus-start cus-load view disp-table whitespace shadow mail-extr
emacsbug message yank-media puny rfc822 mml mml-sec epa derived epg
rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils texinfo texinfo-loaddefs tabify
man imenu apropos mule-diag debug backtrace arc-mode archive-mode
doc-view filenotify jka-compr image-mode exif cl-print shortdoc
info-look noutline outline icons emacs-authors-mode reposition pulse
color semantic/symref/grep semantic/symref semantic/util-modes
semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local
find-func cedet etags fileloop generator xref project smerge-mode diff
grep compile text-property-search add-log log-view pcvs-util mailcap
help-fns radix-tree cl-extra pp wid-edit descr-text help-mode dabbrev
ffap thingatpt url-parse auth-source eieio eieio-core cl-macs
password-cache json map url-vars misearch multi-isearch sort files-x
shell pcomplete comint ansi-osc ansi-color ring find-dired ediff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util vc bug-reference byte-opt gv bytecomp byte-compile cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs info vc-git diff-mode easy-mmode vc-dispatcher sh-script rx smie
treesit cl-seq executable dired-aux dired dired-loaddefs time-date
subr-x cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine 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
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads kqueue cocoa ns lcms2
multi-tty make-network-process emacs)

Memory information:
((conses 16 1463351 251576)
 (symbols 48 56078 46)
 (strings 32 340855 23457)
 (string-bytes 1 12808718)
 (vectors 16 90277)
 (vector-slots 8 2453536 236046)
 (floats 8 536 683)
 (intervals 56 177206 7850)
 (buffers 976 217))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64140; Package emacs. (Sun, 18 Jun 2023 07:20:02 GMT) Full text and rfc822 format available.

Message #8 received at 64140 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Daniel Martín <mardani29 <at> yahoo.es>
Cc: 64140 <at> debbugs.gnu.org
Subject: Re: bug#64140: 29.0.91;
 C-u M-x grep doesn't work correctly after M-x vc-git-grep
Date: Sun, 18 Jun 2023 10:19:03 +0300
> Date: Sun, 18 Jun 2023 02:32:28 +0200
> From:  Daniel Martín via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> Steps to reproduce:
> 
> emacs -Q
> C-x C-f emacs/src/xdisp.c RET
> M-x vc-git-grep RET
> Perform any search.
> Place the point over any symbol, for example, char_can_wrap_before.
> C-u M-x grep
> 
> The suggested grep command to confirm is
> 
> git --no-pager char_can_wrap_before *.c
> 
> which is incorrect, it should be
> 
> grep --color=auto -nH --null -e char_can_wrap_before *.c

You are saying that vc-git-grep should use a separate history
variable?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64140; Package emacs. (Sun, 18 Jun 2023 13:21:02 GMT) Full text and rfc822 format available.

Message #11 received at 64140 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Martín <mardani29 <at> yahoo.es>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 64140 <at> debbugs.gnu.org
Subject: Re: bug#64140: 29.0.91; C-u M-x grep doesn't work correctly after
 M-x vc-git-grep
Date: Sun, 18 Jun 2023 15:20:45 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Sun, 18 Jun 2023 02:32:28 +0200
>> From:  Daniel Martín via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> Steps to reproduce:
>> 
>> emacs -Q
>> C-x C-f emacs/src/xdisp.c RET
>> M-x vc-git-grep RET
>> Perform any search.
>> Place the point over any symbol, for example, char_can_wrap_before.
>> C-u M-x grep
>> 
>> The suggested grep command to confirm is
>> 
>> git --no-pager char_can_wrap_before *.c
>> 
>> which is incorrect, it should be
>> 
>> grep --color=auto -nH --null -e char_can_wrap_before *.c
>
> You are saying that vc-git-grep should use a separate history
> variable?

Yes, that's one possible solution, but it's probably too late to change
that.  Perhaps there should be a configuration option in the vc package
so users can choose to have a separate history variable for git grep.

grep-default-command already tries to extract different parts of the
command using regular expressions.  We could adapt grep-default-command
so that it handles git grep well, but I don't think that'd be a very
clean or future-proof solution.




This bug report was last modified 320 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.