On Nov 22, 11:04 am, Neil Cerutti <[EMAIL PROTECTED]> wrote: > I think it's too low level, and so doesn't do what naive users > expect. It's really only useful, even in C, as part of the > forensic study of a stream in an error state, [...]
Indeed. I just wrote a little implementation of an IPS patcher for the ips patches used on many old game roms (snes, genesis) for doing fan translations from Japanese to other languages. The basic format of a patch is the ascii header "PATCH", followed by 3 bytes telling offest into datafile to apply patch chunk, 2 bytes telling chunk size, n bytes of chunk, repeated, with final ascii "EOF" footer. As I was using Haskell, the function was recursive, and it was useful to check that "EOF" were the final bytes read and that no more bytes had been read between the last data chunk and eof. In other words, on the corner case that all the data in the patch was structurally valid, except up to two bytes after the last chunk and before the "EOF", checking that the absolute position in the file was eof gave me the ability to differentiate the error states of the patch lacking the closing ascii "EOF", or including extra data between the last chunk and the "EOF." Without checking eof (or doing something more complex), I would have only been able to detect the error as a missing footer. Regards, Jordan -- http://mail.python.org/mailman/listinfo/python-list