GNU bug report logs -
#56773
29.0.50; (readablep UNREADABLE) causes strange things
Previous Next
Full log
Message #8 received at 56773 <at> debbugs.gnu.org (full text, mbox):
Michael Heerdegen <michael_heerdegen <at> web.de> writes:
> (progn (readablep (current-window-configuration))
> (current-buffer))
> ==> #<buffer prin1>
>
> After evaluating such a `readablep' call, weird things can happen
> because of this buffer being current. I tried to actually display that
> buffer and the window I got looked quite funny, one second later Emacs
> had crashed.
Oops.
The problem is trivial to fix in `unreadablep' (just smack a
`save-excursion' in there), but I think this should be fixed in a better
way. The problem is that PRINTPREPARE sets the current buffer to the
super-duper secret buffer Vprin1_to_string_buffer (i.e., " prin1"), and
we should restore the real buffer before calling
`print-unreadable-function' in `print_vectorlike'.
But which buffer that was doesn't seem to be available at that point --
it's just stored in
#define PRINTPREPARE \
struct buffer *old = current_buffer; \
So we'd need to store that in a way we can access it later, but I'm not
sure where/how it'd make the most sense to do so... Any ideas?
Meanwhile I've pushed a failing test for this to the trunk.
This bug report was last modified 3 years and 12 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.