emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

text_property_stickiness() ignores `text-property-default-nonsticky'


From: Dmitry Kurochkin
Subject: text_property_stickiness() ignores `text-property-default-nonsticky'
Date: Mon, 04 Jul 2011 03:56:25 +0400
User-agent: Notmuch/0.5-321-g41686e2 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu)

Hello.

I am trying to make `keymap' property rear-nonsticky, so that it does
not affect the next character after the region the property is applied
to.  If I do it by setting rear-nonsticky text property to 't or to a
list that contains 'keymap, it works fine:

  (let ((map (make-sparse-keymap)))
    (define-key map (kbd "RET") 'bug)
    (switch-to-buffer "test")
    (insert "123456")
    (put-text-property 1 4 'keymap map)
    (put-text-property (point-min) (point-max) 'rear-nonsticky '(keymap))
    (goto-char 4)
    (message "keymap: %s" (get-text-property (point) 'keymap))
    (message "key-binding: %s" (key-binding (kbd "RET"))))

But if I set `text-property-default-nonsticky' variable instead, it does
not work:

  (let ((map (make-sparse-keymap)))
    (define-key map (kbd "RET") 'bug)
    (switch-to-buffer "test")
    (insert "123456")
    (put-text-property 1 4 'keymap map)
    (make-local-variable 'text-property-default-nonsticky)
    (add-to-list 'text-property-default-nonsticky '(keymap . t))
    (goto-char 4)
    (message "keymap: %s" (get-text-property (point) 'keymap))
    (message "key-binding: %s" (key-binding (kbd "RET"))))

Looking through the code, I got down to text_property_stickiness()
function in src/textprop.c, which is used by get_pos_property(), which
is used by get_local_map().  There are checks for `front-sticky' and
`rear-nonsticky' properties, but no checks for
`text-property-default-nonsticky' variable.  Before opening false bug
reports, I would like to confirm that this is an issue indeed, and it is
not me doing something stupid.

Regards,
  Dmitry



reply via email to

[Prev in Thread] Current Thread [Next in Thread]