diff options
| author | Paul Eggert | 2014-09-26 11:32:48 -0700 |
|---|---|---|
| committer | Paul Eggert | 2014-09-26 11:32:48 -0700 |
| commit | 56c6a28d018e8735b14e9bf170c3867cc48374fc (patch) | |
| tree | 248df227c53c82972a489daa347c5fba6b9c8c96 /lisp | |
| parent | 1f9f052c6def2f0d4c19161d6d64979d1e8aa96a (diff) | |
| download | emacs-56c6a28d018e8735b14e9bf170c3867cc48374fc.tar.gz emacs-56c6a28d018e8735b14e9bf170c3867cc48374fc.zip | |
* progmodes/grep.el (grep-regexp-alist): Use more-accurate regexp.
Do not match file names that end in '/', as they cannot be 'grep'
hits nowadays. This prevents confusion when 'grep -r' reports a
match in a file whose basename is ':12345:'. Conversely, do not
require exactly the same sequence of spaces and tabs after both
colons, and allow spaces or tabs before the second colon, as per
the POSIX spec for 'grep' output.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 10 | ||||
| -rw-r--r-- | lisp/progmodes/grep.el | 15 |
2 files changed, 15 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4c4941d982d..8586d59b3ad 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2014-09-26 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | * progmodes/grep.el (grep-regexp-alist): Use more-accurate regexp. | ||
| 4 | Do not match file names that end in '/', as they cannot be 'grep' | ||
| 5 | hits nowadays. This prevents confusion when 'grep -r' reports a | ||
| 6 | match in a file whose basename is ':12345:'. Conversely, do not | ||
| 7 | require exactly the same sequence of spaces and tabs after both | ||
| 8 | colons, and allow spaces or tabs before the second colon, as per | ||
| 9 | the POSIX spec for 'grep' output. | ||
| 10 | |||
| 1 | 2014-09-26 Leo Liu <sdl.web@gmail.com> | 11 | 2014-09-26 Leo Liu <sdl.web@gmail.com> |
| 2 | 12 | ||
| 3 | Add cl-parse-integer based on parse-integer (Bug#18557) | 13 | Add cl-parse-integer based on parse-integer (Bug#18557) |
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 47d92e70c5f..fd48adc70c6 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el | |||
| @@ -343,16 +343,11 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies | |||
| 343 | ;;;###autoload | 343 | ;;;###autoload |
| 344 | (defconst grep-regexp-alist | 344 | (defconst grep-regexp-alist |
| 345 | '( | 345 | '( |
| 346 | ;; Rule to match column numbers is commented out since no known grep | 346 | ;; Use a tight regexp to handle weird file names (with colons |
| 347 | ;; produces them | 347 | ;; in them) as well as possible. E.g., use [1-9][0-9]* rather |
| 348 | ;; ("^\\(.+?\\)\\(:[ \t]*\\)\\([1-9][0-9]*\\)\\2\\(?:\\([1-9][0-9]*\\)\\(?:-\\([1-9][0-9]*\\)\\)?\\2\\)?" | 348 | ;; than [0-9]+ so as to accept ":034:" in file names. |
| 349 | ;; 1 3 (4 . 5)) | 349 | ("^\\(.*?[^/\n]\\):[ \t]*\\([1-9][0-9]*\\)[ \t]*:" |
| 350 | ;; Note that we want to use as tight a regexp as we can to try and | 350 | 1 2 |
| 351 | ;; handle weird file names (with colons in them) as well as possible. | ||
| 352 | ;; E.g. we use [1-9][0-9]* rather than [0-9]+ so as to accept ":034:" | ||
| 353 | ;; in file names. | ||
| 354 | ("^\\(.+?\\)\\(:[ \t]*\\)\\([1-9][0-9]*\\)\\2" | ||
| 355 | 1 3 | ||
| 356 | ;; Calculate column positions (col . end-col) of first grep match on a line | 351 | ;; Calculate column positions (col . end-col) of first grep match on a line |
| 357 | ((lambda () | 352 | ((lambda () |
| 358 | (when grep-highlight-matches | 353 | (when grep-highlight-matches |