bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#22118: 23.2; Hitting ^W in a search selects the wrong word.


From: Stefan Kangas
Subject: bug#22118: 23.2; Hitting ^W in a search selects the wrong word.
Date: Tue, 11 Aug 2020 20:33:41 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Hi Juri,

Is the below patch still relevant?

Juri Linkov <juri@linkov.net> writes:

>> I would say, either update the text window too or disallow using ^W
>> after a failure.
>
> I agree that the current behavior is not ideal.  The problem is that
> it's difficult to make it more intuitive to work with different
> workflows such as when failing not at the end of the buffer
> but due to a non-existent string, e.g. typing ‘zzz C-w C-w C-w’.
> Please try this patch that takes into account such possible scenarios.
>
> However, I don't agree this is a bug, I think it just provides a more
> useful behavior, so perhaps it shouldn't be installed to emacs-25.
>
> diff --git a/lisp/isearch.el b/lisp/isearch.el
> index 66fab0e..e9a99ea 100644
> --- a/lisp/isearch.el
> +++ b/lisp/isearch.el
> @@ -1959,6 +1959,8 @@ (defun isearch-mouse-2 (click)
>        (when (functionp binding)
>       (call-interactively binding)))))
>
> +(defvar isearch-yank-prev-point nil)
> +
>  (defun isearch-yank-internal (jumpform)
>    "Pull the text from point to the point reached by JUMPFORM.
>  JUMPFORM is a lambda expression that takes no arguments and returns
> @@ -1969,7 +1971,14 @@ (defun isearch-yank-internal (jumpform)
>     (save-excursion
>       (and (not isearch-forward) isearch-other-end
>         (goto-char isearch-other-end))
> -     (buffer-substring-no-properties (point) (funcall jumpform)))))
> +     (and (not isearch-success) isearch-yank-prev-point
> +       (goto-char isearch-yank-prev-point))
> +     (buffer-substring-no-properties
> +      (point)
> +      (prog1
> +       (setq isearch-yank-prev-point (funcall jumpform))
> +     (when isearch-success
> +       (setq isearch-yank-prev-point nil)))))))
>
>  (defun isearch-yank-char-in-minibuffer (&optional arg)
>    "Pull next character from buffer into end of search string in minibuffer."

Best regards,
Stefan Kangas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]