Stefan Sperling wrote: > On Thu, Apr 15, 2010 at 02:18:22PM +0100, Julian Foad wrote: > > I noticed some oddities/problems with the stream mark/seek/reset > > functionality in svn_subst_stream_translated(). > > > > 1. > > svn_subst_stream_translated() doesn't handle mark/seek properly. > > translated_stream_mark() saves and translated_stream_seek() restores > > only the source stream's position, and not the internal state of > > translation which it resets to "not in a translation". This will work > > properly only if the marked position is not inside a keyword or EOL. It > > needs to store (into the mark structure) the current state of > > translation as well. > > > > (An alternative could be to attach conditions to the use of mark/seek: > > "this only works if you do XXX" - but I think that would be a Bad Thing. > > The concept of streams works well precisely because we can layer > > arbitrary streams on top of each other and expect them to work without > > having to worry about such conditions.) > > > > 2. > > translated_stream_seek() first flushes the output buffer, but > > translated_stream_reset() doesn't. I think that's a bug in _reset. > > I think I added this support and have probably made these mistakes. > Can you file an issue to track these problems?
Filed as issues #3616 <http://subversion.tigris.org/issues/show_bug.cgi?id=3616>, #3617 <http://subversion.tigris.org/issues/show_bug.cgi?id=3617>. - Julian