* default-text-properties
@ 2004-05-20 1:33 Luc Teirlinck
2004-05-20 3:01 ` default-text-properties Luc Teirlinck
0 siblings, 1 reply; 7+ messages in thread
From: Luc Teirlinck @ 2004-05-20 1:33 UTC (permalink / raw)
I did:
emacs-21.3.50 -q --eval "(blink-cursor-mode 0)"
Execute the following example from (elisp)Examining Properties:
(setq default-text-properties '(foo 69)
char-property-alias-alist nil)
nil
(set-text-properties 1 2 nil)
t
(get-text-property 1 'foo)
nil
in the *scratch* buffer, or apparently any other buffer.
The last value should not have been nil, but 69. It was 69 in CVS
from, I believe, less than two days ago. I have read through the code
of Fget_text_property and the functions it calls. That code should
result in a return value of 69. From checking on Savannah, no changes
to any of that code occurred since a few days ago, when it _did_
return 69. Complete mystery to me. Did anybody make changes recently
that could explain this?
Sincerely,
Luc.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: default-text-properties
2004-05-20 1:33 default-text-properties Luc Teirlinck
@ 2004-05-20 3:01 ` Luc Teirlinck
2004-05-20 3:12 ` default-text-properties Luc Teirlinck
2004-05-20 13:17 ` default-text-properties Richard Stallman
0 siblings, 2 replies; 7+ messages in thread
From: Luc Teirlinck @ 2004-05-20 3:01 UTC (permalink / raw)
Cc: emacs-devel
I understand now. I did not read the code carefully enough and I
forgot to remember something extra I did yesterday.
Fget_text_property calls `textget' which calls `lookup_char_property'
which contains the code:
tail = Fassq (prop, Vchar_property_alias_alist);
if (NILP (tail))
return tail;
In other words, default-text-properties is only consulted for foo if
char-property-alias-alist contains foo as a key. Hence:
(setq default-text-properties '(foo 69)
char-property-alias-alist nil)
nil
(set-text-properties 1 2 nil)
t
(get-text-property 1 'foo)
nil
But (I must have done something like this yesterday):
(setq default-text-properties '(foo 69)
char-property-alias-alist '((foo bar)))
((foo bar))
(set-text-properties 1 2 nil)
t
(get-text-property 1 'foo)
69
Completely undocumented (actually explicitly contradicted with the
above example) in the Elisp manual and the relevant docstrings. I
suspect this is a bug. If so, it is trivial to fix. If intentional,
it should be properly documented.
Sincerely,
Luc.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: default-text-properties
2004-05-20 3:01 ` default-text-properties Luc Teirlinck
@ 2004-05-20 3:12 ` Luc Teirlinck
2004-05-20 3:20 ` default-text-properties Luc Teirlinck
2004-05-20 13:17 ` default-text-properties Richard Stallman
2004-05-20 13:17 ` default-text-properties Richard Stallman
1 sibling, 2 replies; 7+ messages in thread
From: Luc Teirlinck @ 2004-05-20 3:12 UTC (permalink / raw)
Cc: emacs-devel
Maybe yet another problem with default-text-properties, illustrated
with the following ielm run:
*** Welcome to IELM *** Type (describe-mode) for help.
ELISP> (set-buffer "*scratch*")
#<buffer *scratch*>
ELISP> (setq default-text-properties '(foo 69))
(foo 69)
ELISP> (setq char-property-alias-alist '((foo bar)))
((foo bar))
ELISP> (get-text-property (point-max) 'foo)
69
ELISP>
This contradicts the last line of get-text-property's docstring:
get-text-property is a built-in function in `C source code'.
(get-text-property position prop &optional object)
Return the value of position's property prop, in object.
object is optional and defaults to the current buffer.
If position is at the end of object, the value is nil.
I suspect again that this is a bug. If it is intentional, the
documentation should be fixed. I could take care of both bugs(?) I
reported, but I first want to make completely sure that they are
really bugs and not, for some strange reason, intentional.
Sincerely,
Luc.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: default-text-properties
2004-05-20 3:01 ` default-text-properties Luc Teirlinck
2004-05-20 3:12 ` default-text-properties Luc Teirlinck
@ 2004-05-20 13:17 ` Richard Stallman
2004-05-20 17:40 ` default-text-properties Luc Teirlinck
1 sibling, 1 reply; 7+ messages in thread
From: Richard Stallman @ 2004-05-20 13:17 UTC (permalink / raw)
Cc: teirllm, emacs-devel
In other words, default-text-properties is only consulted for foo if
char-property-alias-alist contains foo as a key. Hence:
Completely undocumented (actually explicitly contradicted with the
above example) in the Elisp manual and the relevant docstrings. I
suspect this is a bug. If so, it is trivial to fix.
It is a bug; would you please fix it?
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-05-20 17:40 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-05-20 1:33 default-text-properties Luc Teirlinck
2004-05-20 3:01 ` default-text-properties Luc Teirlinck
2004-05-20 3:12 ` default-text-properties Luc Teirlinck
2004-05-20 3:20 ` default-text-properties Luc Teirlinck
2004-05-20 13:17 ` default-text-properties Richard Stallman
2004-05-20 13:17 ` default-text-properties Richard Stallman
2004-05-20 17:40 ` default-text-properties Luc Teirlinck
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).