Received: (at submit) by debbugs.gnu.org; 4 Mar 2024 11:45:37 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 04 06:45:37 2024 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 To: bug-gnu-emacs@HIDDEN Content-Language: en-US From: Gabriele Nicolardi <gabriele@HIDDEN> Subject: Feature request: making occur obey isearch-filter-predicate 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-Debbugs-Envelope-To: submit 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--
Gabriele Nicolardi <gabriele@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#69542
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.