X-Loop: help-debbugs@HIDDEN Subject: bug#69542: Feature request: making occur obey isearch-filter-predicate Resent-From: Gabriele Nicolardi <gabriele@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Mon, 04 Mar 2024 11:46:01 +0000 Resent-Message-ID: <handler.69542.B.17095527376916 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 69542 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 69542 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.17095527376916 (code B ref -1); Mon, 04 Mar 2024 11:46:01 +0000 Received: (at submit) by debbugs.gnu.org; 4 Mar 2024 11:45:37 +0000 Received: from localhost ([127.0.0.1]:42196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1rh6lE-0001lf-On for submit <at> debbugs.gnu.org; Mon, 04 Mar 2024 06:45:37 -0500 Received: from lists.gnu.org ([209.51.188.17]:50186) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <gabriele@HIDDEN>) id 1rh6lC-0001gI-Tu for submit <at> debbugs.gnu.org; Mon, 04 Mar 2024 06:45:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <gabriele@HIDDEN>) id 1rh6kf-000802-FL for bug-gnu-emacs@HIDDEN; Mon, 04 Mar 2024 06:45:02 -0500 Received: from smtp02.cbsolt.net ([185.97.217.41]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <gabriele@HIDDEN>) id 1rh6kb-0006l7-9V for bug-gnu-emacs@HIDDEN; Mon, 04 Mar 2024 06:45:01 -0500 Received: from [10.0.2.15] (host-79-16-242-199.retail.telecomitalia.it [79.16.242.199]) by smtp02.cbsolt.net (Postfix) with ESMTPSA id 4TpH1G1H8zz3wbB for <bug-gnu-emacs@HIDDEN>; Mon, 4 Mar 2024 12:44:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cbsolt.net; s=201504-di4k2w; t=1709552691; bh=vLY9SZaq3M1s16W8tnjAfGutHaN9DH2VnOK/gluJjc0=; h=Date:To:From:Subject:From; b=URHBGVly+KQ+sbUhuiWLFRzmq97Fn3KRFxwljrbDkQdFQUl5Id/8iuwn9E9uQDEQf NeBVFaYvQNfayCL3rdW/t1mMBStoN7PvJhrc2KOf2r9mI80/mCYYHGpuM5i9z+S2hZ Thq93CMBaQrroc1jp7uur0xLKF7pJMP22sE2nObE= Content-Type: multipart/alternative; boundary="------------zrEEoRN1SeuqiwV3Q46w2Jya" Message-ID: <6071eb9a-fa15-45fb-9917-7a35c7556680@HIDDEN> Date: Mon, 4 Mar 2024 12:44:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Gabriele Nicolardi <gabriele@HIDDEN> Received-SPF: pass client-ip=185.97.217.41; envelope-from=gabriele@HIDDEN; helo=smtp02.cbsolt.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------zrEEoRN1SeuqiwV3Q46w2Jya Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, I’d like occur to obey to |isearch-filter-predicate| like query-replace* and |isearch*| commands. This is an example of what I do: |(defmacro with-ifp-predicates (PREDICATES &rest body) "Allows assigning a list of predicates to the variable `isearch-filter-predicate'. | Below is an example of usage: |(with-ifp-predicates '(skip-maths skip-comments) (query-replace \"foo\" \"bar\" nil (point-min) (point-max)))" (declare (indent 1)) `(let ((isearch-filter-predicate isearch-filter-predicate)) (mapc (lambda (predicate) (add-function :before-while isearch-filter-predicate predicate)) ,PREDICATES) ,@body)) | (I always use let-binding for operations that involve |isearch-filter-predicate|.) In some cases, I would like to have something like this: |(with-ifp-predicates '(predicate1 predicate2) (save-window-excursion (occur "foo") (query-replace \"foo\" \"bar\" nil (point-min) (point-max)))) | with |occur| showing me only the strings that match the active predicates. I wrote a mail to emacs-devel@HIDDEN and I have verified that others also believe that this solution would be helpful and consistent with the functioning of some other functions defined in |replace.el|. I’d also like to add this feature to the |how-many| function. I already wrote this modified version (Emacs 29.2): |(defun re-search-forward-ifp (REGEXP &optional BOUND NOERROR COUNT) "Modified version of `search-forward-regexp' that filters (skips) matches according to `isearch-filter-predicate'." (let ((POINT (point))) (catch 'filtered (while (search-forward-regexp REGEXP BOUND NOERROR COUNT) (let ((B (match-beginning 0)) (E (match-end 0))) (when (funcall isearch-filter-predicate B E) (throw 'filtered (point))))) (goto-char POINT) nil))) (defalias 'search-forward-regexp-ifp 're-search-forward-ifp) (defun how-many-ifp (regexp &optional rstart rend interactive) "Modified version of `how-many' that filters (skips) matches according to `isearch-filter-predicate'." (interactive (keep-lines-read-args "How many matches for regexp")) (save-excursion (if rstart (if rend (progn (goto-char (min rstart rend)) (setq rend (max rstart rend))) (goto-char rstart) (setq rend (point-max))) (if (and interactive (use-region-p)) (setq rstart (region-beginning) rend (region-end)) (setq rstart (point) rend (point-max))) (goto-char rstart)) (let ((count 0) (case-fold-search (if (and case-fold-search search-upper-case) (isearch-no-upper-case-p regexp t) case-fold-search))) (while (and (< (point) rend) (re-search-forward-ifp regexp rend t)) ;; Ensure forward progress on zero-length matches like "^$". (when (and (= (match-beginning 0) (match-end 0)) (not (eobp))) (forward-char 1)) (setq count (1+ count))) (when interactive (message (ngettext "%d occurrence" "%d occurrences" count) count)) count))) (defalias 'count-matches-ifp 'how-many-ifp) | Best regards, Gabriele Nicolardi --------------zrEEoRN1SeuqiwV3Q46w2Jya Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <div class="markdown-here-wrapper" data-md-url="" style="" markdown-here-wrapper-content-modified="true"> <p style="margin: 0px 0px 1.2em !important;">Hi,</p> <p style="margin: 0px 0px 1.2em !important;">I’d like occur to obey to <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">isearch-filter-predicate</code> like query-replace* and <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">isearch*</code> commands.</p> <p style="margin: 0px 0px 1.2em !important;">This is an example of what I do:</p> <pre style="font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block;">(defmacro with-ifp-predicates (PREDICATES &rest body) "Allows assigning a list of predicates to the variable `isearch-filter-predicate'. </code></pre> <p style="margin: 0px 0px 1.2em !important;"> Below is an example of usage:</p> <pre style="font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block;">(with-ifp-predicates '(skip-maths skip-comments) (query-replace \"foo\" \"bar\" nil (point-min) (point-max)))" (declare (indent 1)) `(let ((isearch-filter-predicate isearch-filter-predicate)) (mapc (lambda (predicate) (add-function :before-while isearch-filter-predicate predicate)) ,PREDICATES) ,@body)) </code></pre> <p style="margin: 0px 0px 1.2em !important;">(I always use let-binding for operations that involve <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">isearch-filter-predicate</code>.)</p> <p style="margin: 0px 0px 1.2em !important;">In some cases, I would like to have something like this:</p> <pre style="font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block;">(with-ifp-predicates '(predicate1 predicate2) (save-window-excursion (occur "foo") (query-replace \"foo\" \"bar\" nil (point-min) (point-max)))) </code></pre> <p style="margin: 0px 0px 1.2em !important;">with <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">occur</code> showing me only the strings that match the active predicates.</p> <p style="margin: 0px 0px 1.2em !important;">I wrote a mail to <a href="mailto:emacs-devel@HIDDEN" class="moz-txt-link-freetext">emacs-devel@HIDDEN</a> and I have verified that others also believe that this solution would be helpful and consistent with the functioning of some other functions defined in <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">replace.el</code>.</p> <p style="margin: 0px 0px 1.2em !important;">I’d also like to add this feature to the <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">how-many</code> function.</p> <p style="margin: 0px 0px 1.2em !important;">I already wrote this modified version (Emacs 29.2):</p> <pre style="font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block;"> (defun re-search-forward-ifp (REGEXP &optional BOUND NOERROR COUNT) "Modified version of `search-forward-regexp' that filters (skips) matches according to `isearch-filter-predicate'." (let ((POINT (point))) (catch 'filtered (while (search-forward-regexp REGEXP BOUND NOERROR COUNT) (let ((B (match-beginning 0)) (E (match-end 0))) (when (funcall isearch-filter-predicate B E) (throw 'filtered (point))))) (goto-char POINT) nil))) (defalias 'search-forward-regexp-ifp 're-search-forward-ifp) (defun how-many-ifp (regexp &optional rstart rend interactive) "Modified version of `how-many' that filters (skips) matches according to `isearch-filter-predicate'." (interactive (keep-lines-read-args "How many matches for regexp")) (save-excursion (if rstart (if rend (progn (goto-char (min rstart rend)) (setq rend (max rstart rend))) (goto-char rstart) (setq rend (point-max))) (if (and interactive (use-region-p)) (setq rstart (region-beginning) rend (region-end)) (setq rstart (point) rend (point-max))) (goto-char rstart)) (let ((count 0) (case-fold-search (if (and case-fold-search search-upper-case) (isearch-no-upper-case-p regexp t) case-fold-search))) (while (and (< (point) rend) (re-search-forward-ifp regexp rend t)) ;; Ensure forward progress on zero-length matches like "^$". (when (and (= (match-beginning 0) (match-end 0)) (not (eobp))) (forward-char 1)) (setq count (1+ count))) (when interactive (message (ngettext "%d occurrence" "%d occurrences" count) count)) count))) (defalias 'count-matches-ifp 'how-many-ifp) </code></pre> <p style="margin: 0px 0px 1.2em !important;">Best regards,</p> <p style="margin: 0px 0px 1.2em !important;">Gabriele Nicolardi</p> <div title="MDH:PHA+SGksPC9wPjxwPkknZCBsaWtlIG9jY3VyIHRvIG9iZXkgdG8gYGlzZWFyY2gtZmlsdGVyLXBy ZWRpY2F0ZWAgbGlrZSBxdWVyeS1yZXBsYWNlKiBhbmQgYGlzZWFyY2gqYCBjb21tYW5kcy48L3A+ PHA+VGhpcyBpcyBhbiBleGFtcGxlIG9mIHdoYXQgSSBkbzo8L3A+PHA+YGBgPGJyPjwvcD4KICAg IDxwPihkZWZtYWNybyB3aXRoLWlmcC1wcmVkaWNhdGVzIChQUkVESUNBVEVTICZhbXA7cmVzdCBi b2R5KTxicj4KICAgICAgJm5ic3A7ICJBbGxvd3MgYXNzaWduaW5nIGEgbGlzdCBvZiBwcmVkaWNh dGVzIHRvIHRoZTxicj4KICAgICAgdmFyaWFibGUgYGlzZWFyY2gtZmlsdGVyLXByZWRpY2F0ZScu PGJyPgogICAgICBgYGA8YnI+CiAgICAgIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgdXNhZ2U6PGJy PgogICAgICBgYGA8YnI+CiAgICAgICh3aXRoLWlmcC1wcmVkaWNhdGVzICcoc2tpcC1tYXRocyBz a2lwLWNvbW1lbnRzKTxicj4KICAgICAgJm5ic3A7IChxdWVyeS1yZXBsYWNlIFwiZm9vXCIgXCJi YXJcIiBuaWwgKHBvaW50LW1pbikgKHBvaW50LW1heCkpKSI8YnI+CiAgICAgICZuYnNwOyAoZGVj bGFyZSAoaW5kZW50IDEpKTxicj4KICAgICAgJm5ic3A7IGAobGV0ICgoaXNlYXJjaC1maWx0ZXIt cHJlZGljYXRlIGlzZWFyY2gtZmlsdGVyLXByZWRpY2F0ZSkpPGJyPgogICAgICAmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgKG1hcGMgKGxhbWJkYSAocHJlZGljYXRlKTxicj4KICAgICAgJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChhZGQtZnVuY3Rpb24gOmJlZm9yZS13aGlsZQogICAgICBp c2VhcmNoLWZpbHRlci1wcmVkaWNhdGUgcHJlZGljYXRlKSk8YnI+CiAgICAgICZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyAsUFJFRElDQVRFUyk8YnI+CiAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAsQGJv ZHkpKTwvcD4KICAgIDxwPmBgYDwvcD48cD4oSSBhbHdheXMgdXNlIGxldC1iaW5kaW5nIGZvciBv cGVyYXRpb25zIHRoYXQgaW52b2x2ZQogICAgICBgaXNlYXJjaC1maWx0ZXItcHJlZGljYXRlYC4p PC9wPgogICAgPHA+SW4gc29tZSBjYXNlcywgSSB3b3VsZCBsaWtlIHRvIGhhdmUgc29tZXRoaW5n IGxpa2UgdGhpczo8L3A+CiAgICA8cD5gYGA8L3A+PHA+KHdpdGgtaWZwLXByZWRpY2F0ZXMgJyhw cmVkaWNhdGUxIHByZWRpY2F0ZTIpPGJyPgogICAgICAmbmJzcDsgKHNhdmUtd2luZG93LWV4Y3Vy c2lvbjxicj4KICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7IChvY2N1ciAiZm9vIik8YnI+CiAgICAg ICZuYnNwOyZuYnNwOyZuYnNwOyAocXVlcnktcmVwbGFjZSBcImZvb1wiIFwiYmFyXCIgbmlsIChw b2ludC1taW4pIChwb2ludC1tYXgpKSkpPGJyPgogICAgPC9wPgogICAgPHA+YGBgPC9wPjxwPndp dGggYDxjb2RlPm9jY3VyYDwvY29kZT4gc2hvd2luZyBtZSBvbmx5IHRoZSBzdHJpbmdzIHRoYXQg bWF0Y2gKICAgICAgdGhlIGFjdGl2ZSBwcmVkaWNhdGVzLjwvcD48cD48L3A+PHA+SSB3cm90ZSBh IG1haWwgdG8gZW1hY3MtZGV2ZWxAZ251Lm9yZyBhbmQgSSBoYXZlIHZlcmlmaWVkIHRoYXQgb3Ro ZXJzIGFsc28gYmVsaWV2ZSB0aGF0IHRoaXMgc29sdXRpb24gd291bGQgYmUgCmhlbHBmdWwgYW5k IGNvbnNpc3RlbnQgd2l0aCB0aGUgZnVuY3Rpb25pbmcgb2Ygc29tZSBvdGhlciBmdW5jdGlvbnMg CmRlZmluZWQgaW4gPGNvZGU+YHJlcGxhY2UuZWxgPC9jb2RlPi48L3A+PHA+SSdkIGFsc28gbGlr ZSB0byBhZGQgdGhpcyBmZWF0dXJlIHRvIHRoZSBgaG93LW1hbnlgIGZ1bmN0aW9uLjwvcD48cD5J IGFscmVhZHkgd3JvdGUgdGhpcyBtb2RpZmllZCB2ZXJzaW9uIChFbWFjcyAyOS4yKTo8YnI+YGBg PC9wPjxwPihkZWZ1biByZS1zZWFyY2gtZm9yd2FyZC1pZnAgKFJFR0VYUCAmYW1wO29wdGlvbmFs IEJPVU5EIE5PRVJST1IgQ09VTlQpPGJyPiZuYnNwOyAiTW9kaWZpZWQgdmVyc2lvbiBvZiBgc2Vh cmNoLWZvcndhcmQtcmVnZXhwJyB0aGF0PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyBmaWx0ZXJzIChz a2lwcykgbWF0Y2hlcyBhY2NvcmRpbmcgdG8gYGlzZWFyY2gtZmlsdGVyLXByZWRpY2F0ZScuIjxi cj48YnI+Jm5ic3A7IChsZXQgKChQT0lOVCAocG9pbnQpKSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 IChjYXRjaCAnZmlsdGVyZWQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICh3aGls ZSAoc2VhcmNoLWZvcndhcmQtcmVnZXhwIFJFR0VYUCBCT1VORCBOT0VSUk9SIENPVU5UKTxicj4m bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKGxldCAoKEIgKG1hdGNo LWJlZ2lubmluZyAwKSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChFIChtYXRjaC1lbmQgMCkp KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgKHdoZW4gKGZ1bmNhbGwgaXNlYXJjaC1maWx0ZXItcHJlZGljYXRlIEIgRSk8YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ICh0aHJvdyAnZmlsdGVyZWQgKHBvaW50KSkpKSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IChnb3RvLWNoYXIgUE9JTlQpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyBuaWwpKSk8YnI+KGRlZmFsaWFzICdzZWFyY2gtZm9yd2FyZC1yZWdleHAtaWZwICdyZS1z ZWFyY2gtZm9yd2FyZC1pZnApPGJyPjxicj4oZGVmdW4gaG93LW1hbnktaWZwIChyZWdleHAgJmFt cDtvcHRpb25hbCByc3RhcnQgcmVuZCBpbnRlcmFjdGl2ZSk8YnI+Jm5ic3A7ICJNb2RpZmllZCB2 ZXJzaW9uIG9mIGBob3ctbWFueScgdGhhdCBmaWx0ZXJzIChza2lwcykgbWF0Y2hlczxicj4mbmJz cDsmbmJzcDsmbmJzcDsgYWNjb3JkaW5nIHRvIGBpc2VhcmNoLWZpbHRlci1wcmVkaWNhdGUnLiI8 YnI+PGJyPiZuYnNwOyAoaW50ZXJhY3RpdmU8YnI+Jm5ic3A7Jm5ic3A7IChrZWVwLWxpbmVzLXJl YWQtYXJncyAiSG93IG1hbnkgbWF0Y2hlcyBmb3IgcmVnZXhwIikpPGJyPiZuYnNwOyAoc2F2ZS1l eGN1cnNpb248YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IChpZiByc3RhcnQ8YnI+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChpZiByZW5kPGJyPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAocHJv Z248YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChnb3RvLWNoYXIgKG1pbiByc3RhcnQgcmVuZCkp PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAoc2V0cSByZW5kIChtYXggcnN0YXJ0IHJlbmQpKSk8 YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IChnb3RvLWNoYXIgcnN0YXJ0KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgKHNldHEgcmVuZCAocG9pbnQtbWF4KSkpPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAoaWYgKGFuZCBpbnRlcmFjdGl2ZSAodXNlLXJlZ2lvbi1w KSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IChzZXRxIHJzdGFydCAocmVnaW9uLWJlZ2lubmluZyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IHJlbmQgKHJlZ2lvbi1lbmQpKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKHNldHEgcnN0YXJ0IChwb2ludCk8YnI+Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHJlbmQgKHBvaW50LW1heCkpKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgKGdvdG8tY2hhciByc3RhcnQpKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsgKGxldCAo KGNvdW50IDApPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyAoY2FzZS1mb2xkLXNlYXJjaDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKGlmIChhbmQgY2FzZS1mb2xkLXNl YXJjaCBzZWFyY2gtdXBwZXItY2FzZSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChp c2VhcmNoLW5vLXVwcGVyLWNhc2UtcCByZWdleHAgdCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNhc2Ut Zm9sZC1zZWFyY2gpKSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICh3aGlsZSAo YW5kICgmbHQ7IChwb2ludCkgcmVuZCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IChyZS1zZWFyY2gtZm9yd2FyZC1pZnAgcmVnZXhwIHJlbmQgdCkpPGJy PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA7OyBFbnN1cmUgZm9y d2FyZCBwcm9ncmVzcyBvbiB6ZXJvLWxlbmd0aCBtYXRjaGVzIGxpa2UgIl4kIi48YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICh3aGVuIChhbmQgKD0gKG1hdGNo LWJlZ2lubmluZyAwKSAobWF0Y2gtZW5kIDApKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKG5vdCAoZW9icCkpKTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKGZvcndhcmQtY2hhciAx KSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChzZXRxIGNv dW50ICgxKyBjb3VudCkpKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKHdoZW4g aW50ZXJhY3RpdmUgKG1lc3NhZ2UgKG5nZXR0ZXh0ICIlZCBvY2N1cnJlbmNlIjxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgIiVkIG9jY3VycmVuY2VzIjxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgY291bnQpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb3VudCkpPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb3VudCkpKTxicj4oZGVmYWxpYXMgJ2NvdW50LW1hdGNo ZXMtaWZwICdob3ctbWFueS1pZnApPGJyPjwvcD48cD5gYGA8YnI+PC9wPjxwPkJlc3QgcmVnYXJk cyw8L3A+PHA+R2FicmllbGUgTmljb2xhcmRpPGJyPjwvcD4=" aria-hidden="true" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0;padding:0;margin:0;"></div> </div> </body> </html> --------------zrEEoRN1SeuqiwV3Q46w2Jya--
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Gabriele Nicolardi <gabriele@HIDDEN> Subject: bug#69542: Acknowledgement (Feature request: making occur obey isearch-filter-predicate) Message-ID: <handler.69542.B.17095527376916.ack <at> debbugs.gnu.org> References: <6071eb9a-fa15-45fb-9917-7a35c7556680@HIDDEN> X-Gnu-PR-Message: ack 69542 X-Gnu-PR-Package: emacs Reply-To: 69542 <at> debbugs.gnu.org Date: Mon, 04 Mar 2024 11:46:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 69542 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 69542: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D69542 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.