[Top][All Lists]
[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
- text_property_stickiness() ignores `text-property-default-nonsticky',
Dmitry Kurochkin <=