Well I saved/restored $wgOut, $wgRequest and $wgTitle but it had no effect. Looking through the API, it looks like it already does this to some extent:
# Fake $wgRequest for some hooks inside EditPage # FIXME: This interface SUCKS $oldRequest = $wgRequest; $wgRequest = $req;
So it looks like more hunting will be required to find out exactly what needs to be saved.
Yeah, I noticed the API already saves $wgRequest. Could you try doing $wgOut->disable(); after saving $wgOut?
Hmm, well that stops the output and leaves me with a blank page (no HTML or anything.) The URL contains the correct address though (of my Special page, it hasn't changed to the URL of the last page edited.)
I wonder why the output doesn't seem to get enabled again after restoring $wgOut? No errors about headers or anything being set already...
Cheers, Adam.