From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#43587: move-to-column behaves differently when text has invisible property Date: Tue, 29 Sep 2020 22:00:24 +0300 Message-ID: <83blhojtmf.fsf@gnu.org> References: <7e243d01-6d98-bda3-94bf-c0841a32f4ac@web.de> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38968"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 43587@debbugs.gnu.org To: Christoph Arenz Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Sep 29 21:01:28 2020 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 1kNKsS-000A23-5L for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 29 Sep 2020 21:01:28 +0200 Original-Received: from localhost ([::1]:58142 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNKsQ-0001S7-Nk for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 29 Sep 2020 15:01:26 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42078) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kNKs3-0001Rj-6V for bug-gnu-emacs@gnu.org; Tue, 29 Sep 2020 15:01:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:45668) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kNKs2-0001I0-8B for bug-gnu-emacs@gnu.org; Tue, 29 Sep 2020 15:01:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kNKs2-0003lJ-5B for bug-gnu-emacs@gnu.org; Tue, 29 Sep 2020 15:01:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Sep 2020 19:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43587 X-GNU-PR-Package: emacs Original-Received: via spool by 43587-submit@debbugs.gnu.org id=B43587.160140604814434 (code B ref 43587); Tue, 29 Sep 2020 19:01:02 +0000 Original-Received: (at 43587) by debbugs.gnu.org; 29 Sep 2020 19:00:48 +0000 Original-Received: from localhost ([127.0.0.1]:57214 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kNKrl-0003kh-VD for submit@debbugs.gnu.org; Tue, 29 Sep 2020 15:00:47 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:35192) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kNKri-0003kR-CD for 43587@debbugs.gnu.org; Tue, 29 Sep 2020 15:00:44 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:44440) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNKrc-0001G9-Ge; Tue, 29 Sep 2020 15:00:36 -0400 Original-Received: from [176.228.60.248] (port=4272 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kNKrZ-0005MD-6o; Tue, 29 Sep 2020 15:00:35 -0400 In-Reply-To: (message from Christoph Arenz on Tue, 29 Sep 2020 17:56:45 +0200) 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:189291 Archived-At: > From: Christoph Arenz > Date: Tue, 29 Sep 2020 17:56:45 +0200 > > (progn > (switch-to-buffer "indent-test.txt") > (erase-buffer) > (insert "\tLine starting with INVISIBLE text after TAB\n") > (insert "\tLine starting with visible text after TAB\n") > (insert "\nUsing move-to-column to move 'into' TAB, using the FORCE parameter on both lines\n") > (whitespace-mode 1) > (add-text-properties 2 21 '(invisible t)) > (beginning-of-buffer) > (move-to-column 7 t) > (forward-line) > (move-to-column 7 t)) It's a deficiency in the algorithm used by move-to-column that determines whether the goal column is in the middle of a TAB. It assumes that in such a case the TAB is the previous character that ends at the column where the movement ended, but that is not so when invisible text immediately follows the TAB, because moving over the TAB will in that case also skip all of the following invisible text. I will see how this can be fixed without making the function too slow (because it needs to consider overlays as well, not just text properties).