Subject: grep-command cannot be set as a cons of the command and the point position

From: Yuchen Pei <[email-masked]>
Date: Fri, 10 Sep 2021 20:29:58 +1000

Hello,

The following works:

(setq grep-find-command
      '("find . -type f -exec grep -inRH --color -A1 -B1 -E 
      \\{\\} +" . 52))

which places the point nicely after -E in the minibuffer when 
invoking grep-find.

But not the following:

(setq grep-command '("grep -inRH --color -A1 -B1 -E  ." . 31))

as emacs would complain that grep-command is not a string, even 
though both use read-shell-command for the command reading.

Two similarly named functions grep-default-command[1] and 
grep-compute-defaults[2] are used by grep and grep-find 
respectively at the beginning, with the grep-default-command 
requiring a regexp match on the grep-command (hence the error).

[1] 
https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/progmodes/grep.el#n821
[2] 
https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/progmodes/grep.el#n615

The code is a bit involved and I haven't read it through yet, but 
I wonder if anyone has come across this problem?

-- 
Best,
Yuchen

PGP Key: 47F9 D050 1E11 8879 9040  4941 2126 7E93 EF86 DFD0
           <https://ypei.me/assets/ypei-pubkey.txt>