On 9/23/2010 4:52 PM, Nathan Bird wrote:
I put a test case here that documents it: http://paste.lisp.org/+2GLO
The issue is that when it starts a presentation it saves a marker, but then that marker gets moved when printing text and so when it ends the presentation the start and end markers are the same point, the one immediately after the text we are trying to present.
I think we got this fixed. I changed the repl-emit to use insert rather than insert-before. This leaves presentation-start marker intact as well as leaving the overlay in place rather than extending the end of the overlay with each further insert. This change necessitates a few other tweaks to that function as the other markers that were being moved based on the insert-before need to be updated manually now.
I also change a few items in swank-presentation-streams to get that working: * pass slime-stream-p :dedicated through as other functions use that. <- presentation streams work with dedicated output streams now (again?). * slime-stream-p had a scheme to cache the last-answer that wasn't threadsafe, it is now. * slime-stream-p can be dynamically overridden with *slime-stream-p*; useful when writing to a mem buffer or some other location that will be dumped to a slime stream but is natively detectable as such.
I updated the ChangeLog to include descriptions. Individual patches can be pulled from git://github.com/UnwashedMeme/slime.git, complete patch attached.
Please let me know if I missed anything.