Subject: bug#21164: 25.0.50; char-fold search broken for multi-line searches (sometimes)

From: Artur Malabarba <[email-masked]>
Date: Wed, 5 Aug 2015 18:20:39 +0100

> Thank you for the bug report.  This can be fixed by a small patch:
>
> diff --git a/lisp/character-fold.el b/lisp/character-fold.el
> index bf5ae59..db77845 100644
> --- a/lisp/character-fold.el
> +++ b/lisp/character-fold.el
> @@ -123,7 +123,7 @@ (defun character-fold-to-regexp (string &optional lax)
>        (apply #'concat
>          (mapcar (lambda (c) (let ((out (or (aref character-fold-table c)
>                                        (regexp-quote (string c)))))
> -                         (if (and lax (memq c '(?\s ?\t ?\r ?\n )))
> +                         (if (memq c '(?\s ?\t ?\r ?\n ))

Before applying this, I'd like to figure out why lax is nil here.
IIUC, it is supposed to be t whenever isearch-lax-whitespace is
non-nil.

When I test use-case in the bug report I get that this function is
immediately invoked 3 times. And lax is t in the first, but nil in the
following two.