* bug#6114: 23.1; grep-read-files does incorrect wildcard match
@ 2010-05-05 19:22 S Boucher
2010-05-06 20:50 ` Juri Linkov
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: S Boucher @ 2010-05-05 19:22 UTC (permalink / raw
To: 6114
This bug is for (defun grep-read-files (regexp) in file grep.el.
In grep-read-files, there's a call to (wildcard-to-regexp (cdr alias))
with the assumption that (cdr alias) is a single pattern. However,
the variable grep-files-aliases actually can have multiple patterns
for each alias. So, the multi-pattern aliases, such as for "cc",
cannot correctly match:
(defcustom grep-files-aliases
'(("asm" . "*.[sS]")
("c" . "*.c")
("cc" . "*.cc *.cxx *.cpp *.C *.CC *.c++")
... etc...
In GNU Emacs 23.1.1 (i686-pc-linux-gnu, GTK+ Version 2.16.1)
of 2009-11-24 on stephbuntu
Windowing system distributor `The X.Org Foundation', version 11.0.10600000
configured using `configure '--prefix=/ws/EMACS/soft''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_CA.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
shell-dirtrack-mode: t
dynamic-completion-mode: t
tooltip-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
global-auto-composition-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
C-p
Recent messages:
Quit
Back to top level.
Mark set
Searched 1 buffer; 6 matches for `grep-files-aliases' [2 times]
uncompressing custom.el.gz...done [2 times]
Composing main Info directory...done
Found `bugs' in Index. (2 total; use `,' for next)
Making completion list... [2 times]
Quit
Making completion list...
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#6114: 23.1; grep-read-files does incorrect wildcard match
2010-05-05 19:22 bug#6114: 23.1; grep-read-files does incorrect wildcard match S Boucher
@ 2010-05-06 20:50 ` Juri Linkov
2010-05-21 0:28 ` Juri Linkov
2011-12-05 3:05 ` bug#6114: this bug is still present in Emacs version 23.3.1! Mark Lillibridge
2 siblings, 0 replies; 8+ messages in thread
From: Juri Linkov @ 2010-05-06 20:50 UTC (permalink / raw
To: S Boucher; +Cc: 6114
> This bug is for (defun grep-read-files (regexp) in file grep.el.
>
> In grep-read-files, there's a call to (wildcard-to-regexp (cdr alias))
> with the assumption that (cdr alias) is a single pattern. However,
> the variable grep-files-aliases actually can have multiple patterns
> for each alias. So, the multi-pattern aliases, such as for "cc",
> cannot correctly match:
>
> (defcustom grep-files-aliases
> '(("asm" . "*.[sS]")
> ("c" . "*.c")
> ("cc" . "*.cc *.cxx *.cpp *.C *.CC *.c++")
> ... etc...
Evaluating
(wildcard-to-regexp "*.cc *.cxx *.cpp *.C *.CC *.c++")
returns
"\\`[^^@]*\\.cc [^^@]*\\.cxx [^^@]*\\.cpp [^^@]*\\.C [^^@]*\\.CC [^^@]*\\.c\\+\\+\\'"
Do you think it should be
"\\`[^^@]*\\.cc\\|[^^@]*\\.cxx\\|[^^@]*\\.cpp\\|[^^@]*\\.C\\|[^^@]*\\.CC\\|[^^@]*\\.c\\+\\+\\'"
?
--
Juri Linkov
http://www.jurta.org/emacs/
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#6114: 23.1; grep-read-files does incorrect wildcard match
2010-05-05 19:22 bug#6114: 23.1; grep-read-files does incorrect wildcard match S Boucher
2010-05-06 20:50 ` Juri Linkov
@ 2010-05-21 0:28 ` Juri Linkov
2010-05-21 16:20 ` S Boucher
2011-12-05 3:05 ` bug#6114: this bug is still present in Emacs version 23.3.1! Mark Lillibridge
2 siblings, 1 reply; 8+ messages in thread
From: Juri Linkov @ 2010-05-21 0:28 UTC (permalink / raw
To: S Boucher; +Cc: 6114
> This bug is for (defun grep-read-files (regexp) in file grep.el.
>
> In grep-read-files, there's a call to (wildcard-to-regexp (cdr alias))
> with the assumption that (cdr alias) is a single pattern. However,
> the variable grep-files-aliases actually can have multiple patterns
> for each alias. So, the multi-pattern aliases, such as for "cc",
> cannot correctly match:
>
> (defcustom grep-files-aliases
> '(("asm" . "*.[sS]")
> ("c" . "*.c")
> ("cc" . "*.cc *.cxx *.cpp *.C *.CC *.c++")
> ... etc...
Does this patch do what you want? (Please note that we have to remove
"*" ("all") because it matches everything.)
=== modified file 'lisp/progmodes/grep.el'
--- lisp/progmodes/grep.el 2010-04-20 00:49:46 +0000
+++ lisp/progmodes/grep.el 2010-05-21 00:27:18 +0000
@@ -781,12 +781,17 @@ (defun grep-read-files (regexp)
(file-name-nondirectory bn)))
(default-alias
(and fn
- (let ((aliases grep-files-aliases)
+ (let ((aliases (remove (assoc "all" grep-files-aliases)
+ grep-files-aliases))
alias)
(while aliases
(setq alias (car aliases)
aliases (cdr aliases))
- (if (string-match (wildcard-to-regexp (cdr alias)) fn)
+ (if (string-match (mapconcat
+ 'wildcard-to-regexp
+ (split-string (cdr alias) nil t)
+ "\\|")
+ fn)
(setq aliases nil)
(setq alias nil)))
(cdr alias))))
--
Juri Linkov
http://www.jurta.org/emacs/
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#6114: 23.1; grep-read-files does incorrect wildcard match
2010-05-21 0:28 ` Juri Linkov
@ 2010-05-21 16:20 ` S Boucher
2010-05-21 20:46 ` Juri Linkov
0 siblings, 1 reply; 8+ messages in thread
From: S Boucher @ 2010-05-21 16:20 UTC (permalink / raw
To: Juri Linkov; +Cc: 6114
Tried it. Seems to work.
Thanks,
--- On Thu, 5/20/10, Juri Linkov <juri@jurta.org> wrote:
> From: Juri Linkov <juri@jurta.org>
> Subject: Re: 23.1; grep-read-files does incorrect wildcard match
> To: "S Boucher" <stbya@yahoo.com>
> Cc: 6114@debbugs.gnu.org
> Received: Thursday, May 20, 2010, 8:28 PM
> > This bug is for (defun
> grep-read-files (regexp) in file grep.el.
> >
> > In grep-read-files, there's a call to
> (wildcard-to-regexp (cdr alias))
> > with the assumption that (cdr alias) is a single
> pattern. However,
> > the variable grep-files-aliases actually can have
> multiple patterns
> > for each alias. So, the multi-pattern aliases,
> such as for "cc",
> > cannot correctly match:
> >
> > (defcustom grep-files-aliases
> > '(("asm" . "*.[sS]")
> > ("c" .
> "*.c")
> > ("cc" . "*.cc
> *.cxx *.cpp *.C *.CC *.c++")
> > ... etc...
>
> Does this patch do what you want? (Please note that
> we have to remove
> "*" ("all") because it matches everything.)
>
> === modified file 'lisp/progmodes/grep.el'
> --- lisp/progmodes/grep.el 2010-04-20
> 00:49:46 +0000
> +++ lisp/progmodes/grep.el 2010-05-21
> 00:27:18 +0000
> @@ -781,12 +781,17 @@ (defun grep-read-files (regexp)
>
> (file-name-nondirectory bn)))
> (default-alias
> (and fn
> - (let ((aliases
> grep-files-aliases)
> + (let ((aliases
> (remove (assoc "all" grep-files-aliases)
> +
>
> grep-files-aliases))
>
> alias)
> (while
> aliases
> (setq
> alias (car aliases)
>
> aliases (cdr aliases))
> - (if
> (string-match (wildcard-to-regexp (cdr alias)) fn)
> + (if
> (string-match (mapconcat
> +
>
> 'wildcard-to-regexp
> +
>
> (split-string (cdr alias) nil t)
> +
> "\\|")
> +
> fn)
>
> (setq aliases nil)
>
> (setq alias nil)))
> (cdr
> alias))))
>
> --
> Juri Linkov
> http://www.jurta.org/emacs/
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#6114: 23.1; grep-read-files does incorrect wildcard match
2010-05-21 16:20 ` S Boucher
@ 2010-05-21 20:46 ` Juri Linkov
0 siblings, 0 replies; 8+ messages in thread
From: Juri Linkov @ 2010-05-21 20:46 UTC (permalink / raw
To: S Boucher; +Cc: 6114-done
> Tried it. Seems to work.
Thanks, committed.
--
Juri Linkov
http://www.jurta.org/emacs/
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#6114: this bug is still present in Emacs version 23.3.1!
2010-05-05 19:22 bug#6114: 23.1; grep-read-files does incorrect wildcard match S Boucher
2010-05-06 20:50 ` Juri Linkov
2010-05-21 0:28 ` Juri Linkov
@ 2011-12-05 3:05 ` Mark Lillibridge
2011-12-05 5:57 ` Glenn Morris
2 siblings, 1 reply; 8+ messages in thread
From: Mark Lillibridge @ 2011-12-05 3:05 UTC (permalink / raw
To: 6114
Looking at the code I see:
grep.el:778:
(defun grep-read-files (regexp)
"Read files arg for interactive grep."
(let* ((bn (or (buffer-file-name)
(replace-regexp-in-string "<[0-9]+>\\'" "" (buffer-name))))
(fn (and bn
(stringp bn)
(file-name-nondirectory bn)))
(default-alias
(and fn
(let ((aliases grep-files-aliases)
alias)
(while aliases
(setq alias (car aliases)
aliases (cdr aliases))
(if (string-match (wildcard-to-regexp (cdr alias)) fn)
(setq aliases nil)
(setq alias nil)))
(cdr alias))))
You'll note that the patch mentioned previously in this thread has
not been applied or has been lost at some point!
Please fix.
- Thanks,
Mark
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#6114: this bug is still present in Emacs version 23.3.1!
2011-12-05 3:05 ` bug#6114: this bug is still present in Emacs version 23.3.1! Mark Lillibridge
@ 2011-12-05 5:57 ` Glenn Morris
2011-12-08 4:07 ` Mark Lillibridge
0 siblings, 1 reply; 8+ messages in thread
From: Glenn Morris @ 2011-12-05 5:57 UTC (permalink / raw
To: mark.lillibridge; +Cc: 6114
Mark Lillibridge wrote:
> You'll note that the patch mentioned previously in this thread has
> not been applied or has been lost at some point!
It was applied to the Emacs trunk 2010-05-21 and will be in Emacs 24.1.
You might like to try a pretest from alpha.gnu.org/gnu/emacs/pretest.
It was never applied to the emacs-23 branch, but there won't be any more
releases from that branch, so it is academic.
(I do encourage people to indicate the fixed version when they close a
bug.)
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#6114: this bug is still present in Emacs version 23.3.1!
2011-12-05 5:57 ` Glenn Morris
@ 2011-12-08 4:07 ` Mark Lillibridge
0 siblings, 0 replies; 8+ messages in thread
From: Mark Lillibridge @ 2011-12-08 4:07 UTC (permalink / raw
To: Glenn Morris; +Cc: 6114
Glenn Morris <rgm@gnu.org> writes:
> Mark Lillibridge wrote:
>
> > You'll note that the patch mentioned previously in this thread has
> > not been applied or has been lost at some point!
>
> It was applied to the Emacs trunk 2010-05-21 and will be in Emacs 24.1.
> You might like to try a pretest from alpha.gnu.org/gnu/emacs/pretest.
>
> It was never applied to the emacs-23 branch, but there won't be any more
> releases from that branch, so it is academic.
>
> (I do encourage people to indicate the fixed version when they close a
> bug.)
Ah, that explains it. Emacs 23.3 was released in March 2011 so I
naturally assumed it had this patch.
- Mark
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-12-08 4:07 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-05 19:22 bug#6114: 23.1; grep-read-files does incorrect wildcard match S Boucher
2010-05-06 20:50 ` Juri Linkov
2010-05-21 0:28 ` Juri Linkov
2010-05-21 16:20 ` S Boucher
2010-05-21 20:46 ` Juri Linkov
2011-12-05 3:05 ` bug#6114: this bug is still present in Emacs version 23.3.1! Mark Lillibridge
2011-12-05 5:57 ` Glenn Morris
2011-12-08 4:07 ` Mark Lillibridge
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.