From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#56815: 29.0.50; Isearch lazy-highlight highlights too much when truncate-lines is in effect Date: Mon, 22 Aug 2022 09:48:47 +0300 Organization: LINKOV.NET Message-ID: <86sfloixio.fsf@mail.linkov.net> References: <83mtct87ti.fsf@gnu.org> <865yjhc85k.fsf@mail.linkov.net> <83fsik8o39.fsf@gnu.org> <87r124kul6.fsf@gnus.org> <86mtcrpyzs.fsf@mail.linkov.net> <83bkt77nf9.fsf@gnu.org> <83a68r7m2d.fsf@gnu.org> <837d3v7kr9.fsf@gnu.org> <86fsih5bch.fsf@mail.linkov.net> <83wnbs2nc3.fsf@gnu.org> <86y1w7bzum.fsf@mail.linkov.net> <83r11jj5ht.fsf@gnu.org> <86v8qlljwp.fsf@mail.linkov.net> <83k071bk6z.fsf@gnu.org> <86edx9fmgb.fsf@mail.linkov.net> <83fshpbdab.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5111"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (x86_64-pc-linux-gnu) Cc: 56815@debbugs.gnu.org, gregory@heytings.org, larsi@gnus.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Aug 22 08:55:46 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oQ1Ld-00018o-H2 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 22 Aug 2022 08:55:45 +0200 Original-Received: from localhost ([::1]:34826 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oQ1Lc-0006VP-06 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 22 Aug 2022 02:55:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51422) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oQ1Kx-0006V6-7U for bug-gnu-emacs@gnu.org; Mon, 22 Aug 2022 02:55:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47901) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oQ1Kw-0004Ol-Ud for bug-gnu-emacs@gnu.org; Mon, 22 Aug 2022 02:55:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oQ1Kw-0007eo-PZ for bug-gnu-emacs@gnu.org; Mon, 22 Aug 2022 02:55:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 22 Aug 2022 06:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56815 X-GNU-PR-Package: emacs Original-Received: via spool by 56815-submit@debbugs.gnu.org id=B56815.166115129929411 (code B ref 56815); Mon, 22 Aug 2022 06:55:02 +0000 Original-Received: (at 56815) by debbugs.gnu.org; 22 Aug 2022 06:54:59 +0000 Original-Received: from localhost ([127.0.0.1]:37648 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQ1Kt-0007eI-2L for submit@debbugs.gnu.org; Mon, 22 Aug 2022 02:54:59 -0400 Original-Received: from relay11.mail.gandi.net ([217.70.178.231]:54363) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQ1Kp-0007e0-If for 56815@debbugs.gnu.org; Mon, 22 Aug 2022 02:54:58 -0400 Original-Received: (Authenticated sender: juri@linkov.net) by mail.gandi.net (Postfix) with ESMTPSA id 61CB210000E; Mon, 22 Aug 2022 06:54:44 +0000 (UTC) In-Reply-To: <83fshpbdab.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 21 Aug 2022 22:35:24 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:240381 Archived-At: --=-=-= Content-Type: text/plain >> I guess it could be in simple.el. But what would be a good name? >> Maybe 'truncate-lines-p'? > > lines-truncated-p, I guess. Or window-lines-truncated-p. And I think > it should be in window.el. To keep the prefix like in all truncate-related names, truncated-partial-width-window-p could serve as an example: (truncated-partial-width-window-p &optional WINDOW) (truncated-lines-p &optional window) Or can truncated-partial-width-window-p be called directly? By just (or truncate-lines (truncated-partial-width-window-p)) Anyway, here is the patch that probably not needed when truncated-partial-width-window-p can be used instead: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=truncated-lines-p.patch diff --git a/lisp/simple.el b/lisp/simple.el index d862c0e9a8..8f7440a3bb 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -7700,13 +7700,7 @@ line-move ;; Lines are not truncated... (not (and - (or truncate-lines - (and (integerp truncate-partial-width-windows) - (< (window-total-width) - truncate-partial-width-windows)) - (and truncate-partial-width-windows - (not (integerp truncate-partial-width-windows)) - (not (window-full-width-p)))) + (truncated-lines-p) ;; ...or if lines are truncated, this buffer ;; doesn't have very long lines. (long-line-optimizations-p))) @@ -7716,14 +7710,7 @@ line-move ;; Display-based column are incompatible with goal-column. (not goal-column) ;; Lines aren't truncated. - (not - (or truncate-lines - (and (integerp truncate-partial-width-windows) - (< (window-width) - truncate-partial-width-windows)) - (and truncate-partial-width-windows - (not (integerp truncate-partial-width-windows)) - (not (window-full-width-p))))) + (not (truncated-lines-p)) ;; When the text in the window is scrolled to the left, ;; display-based motion doesn't make sense (because each ;; logical line occupies exactly one screen line). diff --git a/lisp/window.el b/lisp/window.el index 4d88ffa903..aecac8c8d0 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -9012,6 +9023,18 @@ shrink-window-horizontally (interactive "p") (shrink-window delta t)) +(defun truncated-lines-p (&optional window) + "Return non-nil when lines are truncated. +This depends on the values of `truncate-lines' and +`truncate-partial-width-windows'." + (or truncate-lines + (and (integerp truncate-partial-width-windows) + (< (window-total-width window) + truncate-partial-width-windows)) + (and truncate-partial-width-windows + (not (integerp truncate-partial-width-windows)) + (not (window-full-width-p window))))) + (defun count-screen-lines (&optional beg end count-final-newline window) "Return the number of screen lines in the region. The number of screen lines may be different from the number of actual lines, @@ -9044,10 +9067,7 @@ count-screen-lines ;; vertical-motion returns a number that is 1 larger than it ;; should. We need to fix that. (setq end-invisible-p - (and (or truncate-lines - (and (natnump truncate-partial-width-windows) - (< (window-total-width window) - truncate-partial-width-windows))) + (and (truncated-lines-p window) (save-excursion (goto-char finish) (> (- (current-column) (window-hscroll window)) --=-=-=--