unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#6843: 23.1; grep-mode and filenames with colors
@ 2010-08-11 11:20 Ethan Glasser-Camp
  2017-07-26 23:32 ` bug#6843: grep-mode and filenames with colons npostavs
  0 siblings, 1 reply; 6+ messages in thread
From: Ethan Glasser-Camp @ 2010-08-11 11:20 UTC (permalink / raw)
  To: 6843

grep-mode highlights matches based on the presence of a pair of colons
around a number. But, for example, if you do this:

ethan@joker:~$ mkdir test
ethan@joker:~$ echo 'Hello' > test/10:45:20.txt
ethan@joker:~$ emacs -q

M-x rgrep <RET>
Hello <RET>
~/test <RET>

The results will mis-highlight 10:45:20, coloring "45" as the line
number (when it is part of the name of the file). Correspondingly,
if you do

M-x grep <RET>
Hello 10:<TAB> <RET>

The same thing happens. It's not possible to automatically jump-to-line
when this happens.

Thanks for your time,

Ethan

In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.18.3)
 of 2010-03-26 on palmer, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.10604000
configured using `configure  '--build=i486-linux-gnu' 
'--host=i486-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/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' 
'--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 
'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 
'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

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_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Grep

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  tool-bar-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
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x r g r e p <return> H e l l o <return> * <return>
f o o <tab> <backspace> <backspace> <backspace> t e
s t <tab> <return> C-x o <down> <down> <down> <down>
<down> <down> <down> <right> <right> <right> <right>
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <right> C-a <down>
<down> <down> <up> <up> <up> <return> C-x k <return>
M-x <up> <return> H e l l o <return> <return> t e s
t <return> C-x o <down> <down> <down> <down> <down>
<down> <down> <down> <return> M-x <up> <return> f o
o <return> * <return> <M-backspace> <M-backspace> s
r <tab> c a m <tab> <return> C-x o <down> <down> <down>
<down> <down> <down> <down> <M-down> <M-down> M-x <up>
<return> H e l l o <return> ~ <backspace> <return>
~ <backspace> <M-backspace> <M-backspace> t e s t <tab>
<return> C-x o <down> <down> <up> <up> C-x o <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> M-x <up> <return> H e l l o <return> <return>
<return> <help-echo> M-x g r e p <return> H e l l o
SPC <backspace> <return> M-x <up> <return> H e l l
o SPC 1 0 : <tab> <return> M-x <up> C-g M-x e m a c
<tab> b <tab> <M-backspace> <M-backspace> <M-backspace>
<M-backspace> b u <backspace> <backspace> r e p <tab>
o r t <tab> <return>

Recent messages:
Grep finished (matches found)
Mark set
Grep finished (matches found)
Mark set
Grep finished (matches found) [3 times]
Grep finished with no matches found
Grep finished (matches found)
Quit
Making completion list...
/usr/bin/mail is not an executable.  Setting mail-interactive to t.






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

* bug#6843: grep-mode and filenames with colons
  2010-08-11 11:20 bug#6843: 23.1; grep-mode and filenames with colors Ethan Glasser-Camp
@ 2017-07-26 23:32 ` npostavs
  2017-07-27 12:10   ` Dmitry Gutov
  0 siblings, 1 reply; 6+ messages in thread
From: npostavs @ 2017-07-26 23:32 UTC (permalink / raw)
  To: bug#6843, Andreas Schwab, Dmitry Gutov

On Wed, Jul 26, 2017 at 12:58 PM, Dmitry Gutov <dgutov@yandex.ru> wrote:
>
>> +*** Grep commands will now use GNU grep's '--null' option if
>> +available, which allows distinguishing the filename from contents if
>> +they contain colons.  This can be controlled by the new custom option
>> +'grep-use-null-filename-separator'.
>
>
> Why do the want the option?
>
> And on the same note, are there any versions of Grep in widespread usage
> that don't support '--null'? AFAICT this flag was added to GNU Grep 2.4
> which was released in 1999.

As noted in the emacs-devel thread, non-GNU greps don't support it.

>> +(defconst grep--regexp-alist-bin-matcher
>> +  '("^Binary file \\(.+\\) matches$" 1 nil nil 0 1))
>> +(defconst grep-with-null-regexp-alist
>> +  `(("^\\([^\0]+\\)\\(\0\\)\\([0-9]+\\):" 1 3 ,grep--regexp-alist-column
>> nil nil
>
>
> Any reason to change 2 to 3? Why don't we use a non-capturing group for \0
> here?

It's on the next line, I capture the \0 so as to display it with a nicer
string than "^@".

>> +     (2 '(face unspecified display ":")))

> If the numbers are the same, we could keep the variable's name the same as
> well. As a result, most third-party code would continue to simply work.

Might be worth using explicitly numbered groups to keep the numbers for
FILE and COLUMN the same though.

>> +    ,grep--regexp-alist-bin-matcher)
>> +  "Regexp used to match grep hits.
>> +See `compilation-error-regexp-alist'.")
>> +(defconst grep-fallback-regexp-alist
>
>
> Compensating for the multitude of variables by eliminating newlines between
> them doesn't look too hot to me.

Hmm yeah, I think I had them originally as let-bindings, and then I
forgot to space them out when converting to defconst.





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

* bug#6843: grep-mode and filenames with colons
  2017-07-26 23:32 ` bug#6843: grep-mode and filenames with colons npostavs
@ 2017-07-27 12:10   ` Dmitry Gutov
  2017-07-27 17:20     ` Eli Zaretskii
  2017-07-30 15:01     ` npostavs
  0 siblings, 2 replies; 6+ messages in thread
From: Dmitry Gutov @ 2017-07-27 12:10 UTC (permalink / raw)
  To: npostavs, bug#6843, Andreas Schwab

On 7/27/17 2:32 AM, npostavs@users.sourceforge.net wrote:

> As noted in the emacs-devel thread, non-GNU greps don't support it.

And we can't always ask the user to install GNU Grep?

If we do need to support both ways, maybe tweak the variable names. As 
of now, they look a bit inconsistent.

I'd prefer to have either grep-with-null-regexp-alist and 
grep-[without-null-]-regexp-alist, or grep-regexp-alist and 
grep-fallback-regexp-alist. Just a suggestion.

>> Any reason to change 2 to 3? Why don't we use a non-capturing group for \0
>> here?
> 
> It's on the next line, I capture the \0 so as to display it with a nicer
> string than "^@".

Oh, right. Thanks.

>>> +     (2 '(face unspecified display ":")))
> 
>> If the numbers are the same, we could keep the variable's name the same as
>> well. As a result, most third-party code would continue to simply work.
> 
> Might be worth using explicitly numbered groups to keep the numbers for
> FILE and COLUMN the same though.

Yes, I think it will be a good idea. Provided we can combine it with 
renaming either of the variables back to grep-regexp-alist. Otherwise, 
any backward compatibility is broken anyway.

>> Compensating for the multitude of variables by eliminating newlines between
>> them doesn't look too hot to me.
> 
> Hmm yeah, I think I had them originally as let-bindings, and then I
> forgot to space them out when converting to defconst.

Thanks in advance.





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

* bug#6843: grep-mode and filenames with colons
  2017-07-27 12:10   ` Dmitry Gutov
@ 2017-07-27 17:20     ` Eli Zaretskii
  2017-07-30 15:01     ` npostavs
  1 sibling, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2017-07-27 17:20 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 6843, schwab, npostavs

> From: Dmitry Gutov <dgutov@yandex.ru>
> Date: Thu, 27 Jul 2017 15:10:40 +0300
> 
> On 7/27/17 2:32 AM, npostavs@users.sourceforge.net wrote:
> 
> > As noted in the emacs-devel thread, non-GNU greps don't support it.
> 
> And we can't always ask the user to install GNU Grep?

We could, but I don't think users will indeed do that.





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

* bug#6843: grep-mode and filenames with colons
  2017-07-27 12:10   ` Dmitry Gutov
  2017-07-27 17:20     ` Eli Zaretskii
@ 2017-07-30 15:01     ` npostavs
  2017-08-01 13:28       ` Dmitry Gutov
  1 sibling, 1 reply; 6+ messages in thread
From: npostavs @ 2017-07-30 15:01 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: bug#6843, Andreas Schwab

Dmitry Gutov <dgutov@yandex.ru> writes:

> I'd prefer to have either grep-with-null-regexp-alist and
> grep-[without-null-]-regexp-alist, or grep-regexp-alist and
> grep-fallback-regexp-alist. Just a suggestion.
>

[...]

>>
>>> If the numbers are the same, we could keep the variable's name the same as
>>> well. As a result, most third-party code would continue to simply work.
>>
>> Might be worth using explicitly numbered groups to keep the numbers for
>> FILE and COLUMN the same though.
>
> Yes, I think it will be a good idea. Provided we can combine it with
> renaming either of the variables back to grep-regexp-alist. Otherwise,
> any backward compatibility is broken anyway.

That part is already covered by this, no?

    (defvaralias 'grep-regex-alist 'grep-with-null-regexp-alist)
    (make-obsolete-variable
     'grep-regex-alist "Call `grep-regexp-alist' instead." "26.1")







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

* bug#6843: grep-mode and filenames with colons
  2017-07-30 15:01     ` npostavs
@ 2017-08-01 13:28       ` Dmitry Gutov
  0 siblings, 0 replies; 6+ messages in thread
From: Dmitry Gutov @ 2017-08-01 13:28 UTC (permalink / raw)
  To: npostavs; +Cc: bug#6843, Andreas Schwab

On 7/30/17 6:01 PM, npostavs@users.sourceforge.net wrote:

> That part is already covered by this, no?
> 
>      (defvaralias 'grep-regex-alist 'grep-with-null-regexp-alist)
>      (make-obsolete-variable
>       'grep-regex-alist "Call `grep-regexp-alist' instead." "26.1")

I suppose so. Thanks.





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

end of thread, other threads:[~2017-08-01 13:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-11 11:20 bug#6843: 23.1; grep-mode and filenames with colors Ethan Glasser-Camp
2017-07-26 23:32 ` bug#6843: grep-mode and filenames with colons npostavs
2017-07-27 12:10   ` Dmitry Gutov
2017-07-27 17:20     ` Eli Zaretskii
2017-07-30 15:01     ` npostavs
2017-08-01 13:28       ` Dmitry Gutov

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