From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: npostavs@users.sourceforge.net Newsgroups: gmane.emacs.bugs Subject: bug#25104: 25.1; cursor-sensor--detect can go beyond buffer bounds Date: Sun, 04 Dec 2016 01:28:49 -0500 Message-ID: <87vav0fbry.fsf@users.sourceforge.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1480832956 26697 195.159.176.226 (4 Dec 2016 06:29:16 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 4 Dec 2016 06:29:16 +0000 (UTC) To: 25104@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Dec 04 07:29:08 2016 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 1cDQIO-0005cL-J3 for geb-bug-gnu-emacs@m.gmane.org; Sun, 04 Dec 2016 07:29:08 +0100 Original-Received: from localhost ([::1]:48717 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cDQIS-0004h9-8y for geb-bug-gnu-emacs@m.gmane.org; Sun, 04 Dec 2016 01:29:12 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40516) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cDQIL-0004gX-CB for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2016 01:29:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cDQII-0008Ja-7e for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2016 01:29:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:36397) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cDQII-0008JW-3D for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2016 01:29:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cDQIH-0002gK-P6 for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2016 01:29:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 04 Dec 2016 06:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 25104 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.148083288710237 (code B ref -1); Sun, 04 Dec 2016 06:29:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 Dec 2016 06:28:07 +0000 Original-Received: from localhost ([127.0.0.1]:51796 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cDQHO-0002f3-Oz for submit@debbugs.gnu.org; Sun, 04 Dec 2016 01:28:06 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:49447) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cDQHM-0002eZ-J6 for submit@debbugs.gnu.org; Sun, 04 Dec 2016 01:28:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cDQHG-0008Cz-Cn for submit@debbugs.gnu.org; Sun, 04 Dec 2016 01:27:59 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:51082) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cDQHG-0008Cv-8t for submit@debbugs.gnu.org; Sun, 04 Dec 2016 01:27:58 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40413) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cDQHF-0004YE-3z for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2016 01:27:58 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cDQHB-0008CM-W7 for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2016 01:27:57 -0500 Original-Received: from mail-io0-x22b.google.com ([2607:f8b0:4001:c06::22b]:34406) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cDQHB-0008CG-NX for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2016 01:27:53 -0500 Original-Received: by mail-io0-x22b.google.com with SMTP id c21so504753490ioj.1 for ; Sat, 03 Dec 2016 22:27:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:date:message-id:mime-version; bh=trp8eGEpV6ko4jRzp19TTEq0yeodHgf8iEohVqQtl8g=; b=QQGAPmDJvfDearBFpnWG/wxNvOFZWXbJC8g99Gyxcc8o1UFzZLNKgIaeeN9A6LXtpz G7/MrX3mwDUPQwrwRe7elfMGT1BW+iKwao0PZZ7U421qIwaQ4crTp867v7fJHY6ZjGpq rjOBZYZ0JFcjKQU1mmXzkwGgWkwF0wLohcO5Xe6O1ynvrgSPagifpQ8Hggh9M6yKYXsd ULE9E9KkU/gUa8I3OpDvZ9tcMPlZ3HBGPNf/XZG3I5vHbHG9UhME7BaR5yJgm6fgs5qd sFCusPq1o6RMXhOv+cbhXHxw+yNjVS8D3YNJ1GatR8SPed0bK/zIMrNHQCx65IS9bpDP v3Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:subject:date:message-id :mime-version; bh=trp8eGEpV6ko4jRzp19TTEq0yeodHgf8iEohVqQtl8g=; b=Hnulbdz8iBD9sHs2TbeMp09nRzrAbwl0UE169+jr6xhbBj80vy8Ou8r4VPv+o1P9fY cogwSuyXlXAtAxd9xppbA2/W1UKkvxsl24/CKrtwKfzGqs14kTNH1/tAO9BgjqV659n5 xuRFbB7MPLXL1nwNR/wTyMwFTPWbs+J2mgZOhv/MhRwuxQwxBdMvlcgRlQ4MNsG4foZH CzgYEpEJ2XOEYVQsYkgBTSO1s5z+6ZKhMa2/hSMOdLA/RBZjQDCrPSSoe2Hwd8U5rW9a dVgu9/ytDsynMSSswav8AZ02C+ttYIcVIZFjJqfcYW2BnsG91M/HOWh/PFgSEehwGjI9 d7sA== X-Gm-Message-State: AKaTC01m9+Hsl8h4/q2ed4DgmqkoFl8Y+uLh0jqQCfhUSx5YIGCD9moJgb8jrD9YEcFAqg== X-Received: by 10.36.189.201 with SMTP id x192mr3763037ite.114.1480832871819; Sat, 03 Dec 2016 22:27:51 -0800 (PST) Original-Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id g185sm4114018ith.14.2016.12.03.22.27.50 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 03 Dec 2016 22:27:51 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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:126466 Archived-At: --=-=-= Content-Type: text/plain tags: patch >From emacs -Q, insert the following in *scratch*, and evaluate it twice. (with-current-buffer (get-buffer-create "foo") (erase-buffer) (insert (make-string 200 ?\n)) (cursor-sensor-mode +1) (display-buffer (current-buffer))) The second time an error is triggered, here is a backtrace: Debugger entered--Lisp error: (args-out-of-range 0) get-char-property(0 cursor-sensor-functions) cursor-sensor--detect(#) run-hook-with-args(cursor-sensor--detect #) redisplay--pre-redisplay-functions((#)) apply(redisplay--pre-redisplay-functions (#)) #[128 "\300\301\"\210\300\302\"\207" [apply redisplay--pre-redisplay-functions ignore nil] 4 nil nil]((#)) redisplay_internal\ \(C\ function\)() cursor-sensor-mode is a new feature in Emacs 25, so I propose the following patch for emacs-25: --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=v1-0001-Don-t-assume-window-point-and-point-are-the-same.patch Content-Description: patch >From 67817cd0727a1b257952afb93fc9a8238965b3c4 Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Sun, 4 Dec 2016 01:06:52 -0500 Subject: [PATCH v1] Don't assume window-point and point are the same The function `cursor-sensor--detect' calls `bobp' to decide whether to check properties at (1- (window-point)). However, (window-point) may be at beginning of buffer, even if (point) is not. In this case an `args-out-of-range' error will be signaled. * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Check the value of (window-point) against (point-min), rather than (bobp) to decide if (1- (window-point)) is accessible. --- lisp/emacs-lisp/cursor-sensor.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/cursor-sensor.el b/lisp/emacs-lisp/cursor-sensor.el index 2231179..28b6188 100644 --- a/lisp/emacs-lisp/cursor-sensor.el +++ b/lisp/emacs-lisp/cursor-sensor.el @@ -114,7 +114,7 @@ cursor-sensor--detect ;; non-sticky on both ends, but that means get-pos-property might ;; never see it. (new (or (get-char-property point 'cursor-sensor-functions) - (unless (bobp) + (unless (<= (point-min) point) (get-char-property (1- point) 'cursor-sensor-functions)))) (old (window-parameter window 'cursor-sensor--last-state)) (oldposmark (car old)) -- 2.9.3 --=-=-=--