Subject: bug#6362: Emacs command `dired-isearch-filenames-regexp' cause CPU usage 100%

From: Li Zhai <[email-masked]>
Date: Sun, 6 Jun 2010 20:30:42 +0800

Yes, I expect that query-replace will rename file names start with
`f'. As the search process just matched the file names, it is a simple
thought that `^' means the beginning of the file name.

If we could add some special syntax properties to the white-space
before the file name, it is possible to match the file names start
with `f'. For instance, type :

dired-isearch-filenames-regexp RET \sxf  RET

At here, the `x' means the special syntax class.

It's just my random thought. At most times, a white-space can solve my
problem, like `dired-isearch-filenames-regexp RET SPC f  RET'.

On Sun, Jun 6, 2010 at 5:54 PM, Juri Linkov <[email-masked]> wrote:
>> I use the command `dired-isearch-filenames-regexp' to find some files
>> in a directory. I use the the anchor `^' to match the files start with
>> something. Emacs is suspended and the CPU usage is 100%.Here is a
>> transcript:
>>
>> 1. Open a directory in dired mode.
>> 2. Input `M-x dired-isearch-filenames-regexp RET  ^ f RET'
>>
>> Emacs will suspend rather than match the file names start with `f'.
>
> Thanks for the report.  I fixed looping in lazy-highlighting.
> Now the loop in `isearch-lazy-highlight-search' is exactly like
> in `isearch-search' that checks for the empty match (and
> `isearch-lazy-highlight-update' takes care about forwarding
> point to the next character in this case).
>
> As for implementing matching at the beginning of file names with `^',
> it seems this is not possible to do.  `re-search-forward' matches only
> at the beginning of a line, not in the middle of a line.
>
> You can observe the same problem with query-replace in wdired.
> For instance, type:
>
> 1. M-x wdired-change-to-wdired-mode RET
> 2. M-x query-replace-regexp RET ^f RET replacement RET
>
> Do you expect that query-replace will rename file names
> that start with `f'?
>
> --
> Juri Linkov
> http://www.jurta.org/emacs/
>