Hi Nathan,
On Thu, Sep 23, 2010 at 1:52 PM, Nathan Bird nathan@acceleration.net 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'm not sure where to go from here. I don't know how to get the old marker to stay in place any more than it is now. There is a comment: ;; We use markers because text can also be inserted before this presentation. ;; (Output arrives while we are writing presentations within REPL results.) Perhaps that is more relevant to printing with the target :repl-result vs target null?
I tried changing the presentation start function (it's on the paste) to save the number if target is null and that looks like it is mostly working for me, can anyone else comment on the idea?
I don't think this is the right fix.
I believe this was broken in revision 1.33 of slime-presentations.el, which replaced `slime-presentation-write'. I think the real bug is that `slime-repl-emit' invokes `insert-before-markers'; I think it should just call `insert' and then manually adjust the markers that should be advanced. The old version of `slime-presentation-write' did something like that.
Unfortunately I don't have the time to fix this.
Matthias