Peter Bortas @ Pike developers forum wrote:
backing out changes that are not discussed, documented and added to the ChangeLog. Especially when fiddling with core APIs.
Specificly I'm considering backing out this right now:
http://pike.ida.liu.se/development/cvs/diff.xml?module=Pike&file=7.7/lib...
I am/have been working on a Sql.pgsql module (it's nearly finished now), which specifically supports the full PostgreSQL native network API without libpq dependencies (it implements a superset of the existing Sql.postgres module; it allows (amongst other things) multiple simultaneous queries to be run on the same database connection).
The module allows for operation in both interactive and Backend/callout mode, but in order for it to support pushing back the part of the input stream that was already pulled out of the kernel network layer by the Backend, it needs to push back an arbitrary blob into the input stream, to be consumed again.
ungets() doesn't work for that, because it assumes a newline at the end of the pushed back buffer.
The only other option I have is to derive a special class from the Stdio.FILE class which does its own buffering (which is what I need to do if we want to back out the addition).