From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: John Shahid Newsgroups: gmane.emacs.bugs Subject: bug#31662: [PATCH] fix double counting bug in term.el Date: Fri, 01 Jun 2018 02:51:11 +0000 Message-ID: <87lgbzdxsw.fsf@gmail.com> References: <87muwgpgy6.fsf@gmail.com> <87sh67bfs5.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1527821412 23903 195.159.176.226 (1 Jun 2018 02:50:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 1 Jun 2018 02:50:12 +0000 (UTC) User-Agent: mu4e 1.1.0; emacs 27.0.50 Cc: 31662@debbugs.gnu.org To: Noam Postavsky Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jun 01 04:50:08 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOa8k-000677-Bs for geb-bug-gnu-emacs@m.gmane.org; Fri, 01 Jun 2018 04:50:06 +0200 Original-Received: from localhost ([::1]:47173 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOaAr-0001r2-Gk for geb-bug-gnu-emacs@m.gmane.org; Thu, 31 May 2018 22:52:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46334) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOaAh-0001qv-6i for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 22:52:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOaAc-0002Xp-9b for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 22:52:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:48601) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fOaAc-0002Xa-3e for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 22:52:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fOaAb-0004kQ-Rz for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 22:52:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: John Shahid Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 01 Jun 2018 02:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31662 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 31662-submit@debbugs.gnu.org id=B31662.152782148618144 (code B ref 31662); Fri, 01 Jun 2018 02:52:01 +0000 Original-Received: (at 31662) by debbugs.gnu.org; 1 Jun 2018 02:51:26 +0000 Original-Received: from localhost ([127.0.0.1]:56478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOaA2-0004iZ-5Y for submit@debbugs.gnu.org; Thu, 31 May 2018 22:51:26 -0400 Original-Received: from mail-qt0-f176.google.com ([209.85.216.176]:43499) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOaA0-0004i0-QJ for 31662@debbugs.gnu.org; Thu, 31 May 2018 22:51:25 -0400 Original-Received: by mail-qt0-f176.google.com with SMTP id y89-v6so5022517qtd.10 for <31662@debbugs.gnu.org>; Thu, 31 May 2018 19:51:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version; bh=E4jyqc+cLFKk6EAZGrjmizYTOYOEQ0ENSoqGHGAINaY=; b=MRpNQ/G3SODoQilhTIX3168WxgcUASaJUImplmgors9MaX+Wsmqf9jiHXfEgcW9VqA FwqJvC8gf2OYRU9soD+S39iUl+3BhI+XRiCh2VoqyCI0lNSpxDg1tfrAAHJnIWMICmZy w83R8IfeAmZLVLFJMsBnmB58w2FYkZuyZ5KzeuaJeL+iNeRaNbLMLzRRt/WHQ4oWqyXz ykRujlAgW/advgkqj/5EA7R/n7fD1nD0+7EZnE728zEnbH5/bCdgOfzME6b9KBgA864B OrKLMJ1aJB6DmIsUky2poL4hAly6kvMHrsPu+KJVjn8+c+MdJB0FsCOYPCcJwBttOkSy W5OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version; bh=E4jyqc+cLFKk6EAZGrjmizYTOYOEQ0ENSoqGHGAINaY=; b=FBlYWxeAcAJ9Tbc/Kx/kGAeVlDFoX+QboDCCzKTDKzoTx1ClRay3xnQIFXV6nRTT6K DgDCA4h+djPPaeYS2xmCNVMEzK7ch1qic1R2AwsA9k4Wevo08+RI+wez2UbMul0PlDd5 nuwZ171/oeLGNiggy8Up+aF4+Tdbv6RtTKD41O/sP8A6HIE3GvdlWwpYZ9dVFYMeJGCD hysbOqAsUUJQdkC3T+cS9rQX8ERCgCr9pCi8QGlU7vvLSRBvoUzQt7vQz3KncNcXwWmW JiFFtpIG99CmmkwRUS5EqvFtjL/P4SkrQA5I87feXDPLgF/iFHXUzB7NflH7ZvEbuarT Xc2A== X-Gm-Message-State: APt69E0tQByTBrqnrNqU7U3ReK2jrIcwEDl6FnXhoJ3W5hI9MSQhMeKC ++8R4yYcJBUKXbIg/L36SPeJ1t/g X-Google-Smtp-Source: ADUXVKJ0t9aj5SuMdC+BwCxIn+d6XQ7Oo/7N/8lSEqXk90GyHW3rcB3jVpliXfJL+hmUEnQee+Vuhg== X-Received: by 2002:ac8:668c:: with SMTP id d12-v6mr4847778qtp.5.1527821478763; Thu, 31 May 2018 19:51:18 -0700 (PDT) Original-Received: from c77051f00eff (cpe-184-152-55-93.nyc.res.rr.com. [184.152.55.93]) by smtp.gmail.com with ESMTPSA id n37-v6sm11418086qkh.71.2018.05.31.19.51.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 May 2018 19:51:17 -0700 (PDT) In-reply-to: <87sh67bfs5.fsf@gmail.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:146795 Archived-At: --=-=-= Content-Type: text/plain Thanks for the feedback. I fixed both issues in the attached patch. Noam Postavsky writes: > John Shahid writes: >> (when (not (or (eobp) term-insert-mode)) >> (let ((pos (point))) >> (term-move-columns columns) >> - (delete-region pos (point)))) >> + (delete-region pos (point)) >> + (term-move-columns (- columns)))) > > I think it's a better idea to just reset term-current-column to nil, > like what happens in Emacs 26. > >> + (should (equal "abcde j" >> + (term-test-screen-from-input >> + 10 12 (concat "\e[mabcdefghij" >> + "\e[H" ;move back to point-min >> + "\e[mabcde" >> + "\e[m j")))) >> + > > The "\e[m" is just to make the strings get processed separately, right? > You can pass a list of strings instead: > > (term-test-screen-from-input > 10 12 (list "abcdefghij" > "\e[H" ;move back to point-min > "abcde" > " j")) --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-lisp-term.el-term-emulate-terminal-fix-column-double.patch >From c9a8ac75923f7b48bcf3285f2c3b6e3a6d9e75b2 Mon Sep 17 00:00:00 2001 From: John Shahid Date: Wed, 30 May 2018 23:55:16 -0400 Subject: [PATCH] * lisp/term.el (term-emulate-terminal): fix column double counting --- lisp/term.el | 3 ++- test/lisp/term-tests.el | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/term.el b/lisp/term.el index 19e68ddb49..715f39bbbf 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -2904,7 +2904,8 @@ term-emulate-terminal (when (not (or (eobp) term-insert-mode)) (let ((pos (point))) (term-move-columns columns) - (delete-region pos (point)))) + (delete-region pos (point)) + (setq term-current-column nil))) ;; In insert mode if the current line ;; has become too long it needs to be ;; chopped off. diff --git a/test/lisp/term-tests.el b/test/lisp/term-tests.el index 8aaa61a210..72a9ad1ef7 100644 --- a/test/lisp/term-tests.el +++ b/test/lisp/term-tests.el @@ -89,6 +89,13 @@ term-test-screen-from-input "\e[2;1Hc" "\e[1;2Hb" "\e[1;1Ha") "" t)))) + (should (equal "abcde j" + (term-test-screen-from-input + 10 12 '("abcdefghij" + "\e[H" ;move back to point-min + "abcde" + " j")))) + ;; Relative positioning. (should (equal "ab\ncd" (term-test-screen-from-input -- 2.17.1 --=-=-=--