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: Thu, 31 May 2018 04:49:53 +0000 Message-ID: <87muwgpgy6.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1527742153 14407 195.159.176.226 (31 May 2018 04:49:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 31 May 2018 04:49:13 +0000 (UTC) User-Agent: mu4e 1.1.0; emacs 27.0.50 To: 31662@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu May 31 06:49:09 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 1fOFWO-0003bB-F8 for geb-bug-gnu-emacs@m.gmane.org; Thu, 31 May 2018 06:49:08 +0200 Original-Received: from localhost ([::1]:42008 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOFYV-0005VU-2h for geb-bug-gnu-emacs@m.gmane.org; Thu, 31 May 2018 00:51:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38788) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOFYJ-0005Ty-6o for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 00:51:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOFYE-0002H9-FH for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 00:51:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:47612) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fOFYE-0002H3-9B for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 00:51:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fOFYD-0007LI-Vi for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 00:51: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: Thu, 31 May 2018 04:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 31662 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.152774222328172 (code B ref -1); Thu, 31 May 2018 04:51:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 31 May 2018 04:50:23 +0000 Original-Received: from localhost ([127.0.0.1]:55509 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOFXb-0007KK-0g for submit@debbugs.gnu.org; Thu, 31 May 2018 00:50:23 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:47663) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOFXY-0007K4-Cr for submit@debbugs.gnu.org; Thu, 31 May 2018 00:50:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOFXS-0001XC-8Y for submit@debbugs.gnu.org; Thu, 31 May 2018 00:50:15 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:52120) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fOFXS-0001Wy-4Q for submit@debbugs.gnu.org; Thu, 31 May 2018 00:50:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38625) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOFXQ-000519-QU for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 00:50:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOFXM-0001TU-1c for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 00:50:12 -0400 Original-Received: from mail-qt0-x230.google.com ([2607:f8b0:400d:c0d::230]:33529) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fOFXL-0001So-Se for bug-gnu-emacs@gnu.org; Thu, 31 May 2018 00:50:07 -0400 Original-Received: by mail-qt0-x230.google.com with SMTP id e8-v6so26384562qth.0 for ; Wed, 30 May 2018 21:50:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=user-agent:from:to:subject:date:message-id:mime-version; bh=OBCSrmlNnSTQ5qGUHz/vkmaPha+q4pPMhKCAyrvj7Dk=; b=BdC31kYxalbtXaj3d8K1Mpyr/L5jwTOQ1jZVVPws++JqtMu62W28tn4YotjTZsyZsr 7aQRgotJCiDAfriu52nY/42eMu3xRfmrTLI8djaJBVeVrEyxX2yFsUXYOYUDAUJx+QrD nBd0sZgOTAaa+/+pAeCJWMWlnp9xQY/Lj9Xi/7OUyOnvqEwU79EXYapbxrBPGLtQ14PW z1oM8mFH+ZJ/TSHbS9ErYZFaCubTMIqJEuNST79pMPqdb9vbjSm134Vb04a0Hh+Y4L6k N6hJzuh87XAtEIVv0hIvfH2h3te1qjHI29Sx6lX9OBv5XqQ7WWca0EqKhm5bICH2oAw7 s+Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:user-agent:from:to:subject:date:message-id :mime-version; bh=OBCSrmlNnSTQ5qGUHz/vkmaPha+q4pPMhKCAyrvj7Dk=; b=dFMYkw/D76t40/eGMs1Cna/rYxnE19sQkVRo+peYgBiaPWD9gkwUsyUwMY6xPWq1Ti XoHTihXukPTo3AfS2T8e3XWAwbkqtw/EozS7Q9P4lJrm6lBDRhOdyj/43BVEV3SEmvpd eiXekhFT5XRCNhtedqqi96/EUjY3t107bKzjfRkiQciBM648qSjK6jAFR1nykM3v/ZiU 2dS3OFHsBMHrcdbR6aYEGl73/DgkKGjhoWRTtWOlUsUyO4Nv54y3tMpfDwWvrXTJ0Ks5 w5+obGlyEDTpWNS6Rlp6CLWygYzqA1M2gCO2P76t7GE69a1EfuYb5P8AzqiD/Tmha6jq lCpQ== X-Gm-Message-State: APt69E1p128kB6b+XsEZVEISc6CufwbygZQkBal/BginQqA8a6rPe72G WfYN3Oa8Sn+G8/z1fFsaOk1DFYep X-Google-Smtp-Source: ADUXVKJU7wmbnNeiC4Toix+olRYQPBUANoPbEvkSiV8ROW6037DpWeqV6rVGzRgDYFfT8qgeUJje2g== X-Received: by 2002:a0c:a0c3:: with SMTP id c61-v6mr5266399qva.200.1527742206608; Wed, 30 May 2018 21:50:06 -0700 (PDT) Original-Received: from 4eebc6dfcecc (cpe-184-152-55-93.nyc.res.rr.com. [184.152.55.93]) by smtp.gmail.com with ESMTPSA id p72-v6sm17434818qkh.5.2018.05.30.21.50.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 May 2018 21:50:05 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x 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:146766 Archived-At: --=-=-= Content-Type: text/plain Hi all, Today I was trying to run fzf[1] in term when I ran into a weird issue that will cause the term output to be clobbered with certain output. The root cause seems to be a double counting in the column offset. This is usually fine, unless `2*len(inserted text)' causes the point to be equal to the window width. I fixed the issue and added a new test in the attached patch [1] https://github.com/junegunn/fzf --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-lisp-term.el-term-emulate-terminal-fix-column-double.patch >From efeec7bb556084f7004a83faf679f724bb8a0fe8 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..67cebda1be 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)) + (term-move-columns (- columns)))) ;; 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..e27dd0354d 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 (concat "\e[mabcdefghij" + "\e[H" ;move back to point-min + "\e[mabcde" + "\e[m j")))) + ;; Relative positioning. (should (equal "ab\ncd" (term-test-screen-from-input -- 2.17.0 --=-=-=--