Subject: Re: bug#33664: 26.1; Document vars and functions in `cursor-sensor.el'

From: Stefan Monnier <[email-masked]>
Date: Sun, 09 Dec 2018 20:58:31 -0500

> Thank you.  I think it would be good if you would
> add this info (exactly what you wrote is fine) to
> the Commentary.

I pushed something like that (see below).

> It seems (to me, so far) like maybe the behavior
> difference you described should not be cause for
> deprecating text property `intangible'.

If you can find a case where the old `intangible` property provides the
behavior that's needed, feel free to send a bug-report to
de-deprecate it.

        Stefan

;;;; 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.