[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-26 b0ed9d1: * lisp/emacs-lisp/cursor-sensor.el: Add
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] emacs-26 b0ed9d1: * lisp/emacs-lisp/cursor-sensor.el: Add motivation |
Date: |
Sun, 9 Dec 2018 20:56:43 -0500 (EST) |
branch: emacs-26
commit b0ed9d143333827ee8481da0fe7821887a3c6c94
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
* lisp/emacs-lisp/cursor-sensor.el: Add motivation
---
lisp/emacs-lisp/cursor-sensor.el | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/lisp/emacs-lisp/cursor-sensor.el b/lisp/emacs-lisp/cursor-sensor.el
index 21c48f8..6c33d04 100644
--- a/lisp/emacs-lisp/cursor-sensor.el
+++ b/lisp/emacs-lisp/cursor-sensor.el
@@ -38,6 +38,27 @@
;; called just before redisplay happens, according to the movement of
;; the cursor since the last redisplay.
+;;;; Motivation
+
+;; The old properties were very problematic in practice because they
+;; operate at a much lower level and hence affect all motion
+;; *functions* like goto-char, forward-char, ... hence breaking
+;; invariants like:
+;;
+;; (forward-char N) == (progn (forward-char N1) (forward-char (- N N1)))
+;; (point) == (progn (forward-char N) (forward-char -N) (point))
+;; (+ N (point)) == (progn (forward-char N) (point))
+;;
+;; The problems would usually show up due to interaction between
+;; unrelated code working in the same buffer, where one code used those
+;; properties and the other (unknowingly) assumed those aren't used.
+;; In practice a *lot* of code assumes there's no such funny business.
+;;
+;; Worse: all(?) packages using those properties don't actually want those
+;; properties to affect motion at such a low-level, they only want to
+;; affect the overall effect of commands, but not the effect of every
+;; single point-motion that a given command happened to use internally.
+
;;; Code:
;;;###autoload
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-26 b0ed9d1: * lisp/emacs-lisp/cursor-sensor.el: Add motivation,
Stefan Monnier <=