1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

Merge from origin/emacs-26

5a7451c CC Mode: stop wrongly recognizing "func(a * 9)" as "pointer t...
b0ed9d1 * lisp/emacs-lisp/cursor-sensor.el: Add motivation
This commit is contained in:
Glenn Morris 2018-12-10 09:43:05 -08:00
commit e60fc320e3
2 changed files with 27 additions and 2 deletions

View file

@ -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