On Sat, Jan 07, 2006 at 11:05:59PM +0100, Steinar H. Gunderson wrote: > I have no idea what the resolution would be, but this should IMHO be fixed in > stable; onsgmls is rather broken as long as it can't read properly from a > line-buffered pipe. :-)
I've debugged this a bit, even though I have a hard time grokking opensp's insanely complex input layer (stdio or iostreams was obviously too standard). The bug seems to manifest itself if and only if a tag spans two read() buffers, like this imaginary strace fragment: read(0, "(data here)<span>xxxx", 4096) = 4096 read(0, "xxxx</span>(more data)", 4096) = 512 This explains the different behaviour with regard to stdin redirection, pipes etc. -- opensp simply uses different block sizes in those cases (4kB vs. 8kB vs. 32kB, AFAICS). You're right in that 1.5.2 fixes the problem, but it might be by accident -- if I compile it on sarge it works, but if I drop --disable-dtddecl the bug is back again. FWIW, I've run it through valgrind, but can't find any errors. /* Steinar */ -- Homepage: http://www.sesse.net/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]