From 487913d9a6355b21cc1cbb73dbf93e64d081e715 Mon Sep 17 00:00:00 2001 From: Tomas Hoger Date: Sun, 11 Sep 2011 09:18:10 +0200 Subject: Slightly improve LZW_CLEAR handling. * src/lzw/ftzopen.c (ft_lzwstate_io) : Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are handled as clear codes. This also re-sets old_code and old_char to predictable values, which is a little better than using `random' ones if the code following LZW_CLEAR is invalid. --- src/lzw/ftzopen.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/lzw/ftzopen.c') diff --git a/src/lzw/ftzopen.c b/src/lzw/ftzopen.c index f55ee3a08..d7a64576b 100644 --- a/src/lzw/ftzopen.c +++ b/src/lzw/ftzopen.c @@ -321,11 +321,12 @@ /* why not LZW_FIRST-256 ? */ state->free_ent = ( LZW_FIRST - 1 ) - 256; state->buf_clear = 1; - c = ft_lzwstate_get_code( state ); - if ( c < 0 ) - goto Eof; - code = (FT_UInt)c; + /* not quite right, but at least more predictable */ + old_code = 0; + old_char = 0; + + goto NextCode; } in_code = code; /* save code for later */ -- cgit v1.2.1