From ee322ed4371055b1fa7e81e7e0068a83981022bd Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Tue, 19 Dec 2017 17:17:02 +0100 Subject: [PATCH] Fix GIF save - last byte The last byte was not saved for sure, depending on the codesize. Also if the codesize was big (12 bits which is the max) in some case an additional 0 byte was store (which is harmless but useless) This bug only appears if the bit per code are < 8 which is possible since commit 834050c2c4cf6ed87f3192fa31f8ae13a704a5b5 --- src/fileformats.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/fileformats.c b/src/fileformats.c index 95efabe7..d6cc4c67 100644 --- a/src/fileformats.c +++ b/src/fileformats.c @@ -3017,7 +3017,12 @@ void Save_GIF(T_IO_Context * context) GIF_set_code(eof); // 257 for 8bpp // Code de End d'image if (GIF_remainder_bits!=0) - GIF_set_code(0); // Code bidon permettant de s'assurer que tous les bits du dernier code aient bien étés inscris dans le buffer GIF + { + // WRITE last byte + GIF_buffer[++GIF_remainder_byte]=GIF_last_byte; + GIF_last_byte=0; + GIF_remainder_bits=0; + } GIF_empty_buffer(); // On envoie les dernières données du buffer GIF dans le buffer KM // On écrit un \0