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
This commit is contained in:
Thomas Bernard 2017-12-19 17:17:02 +01:00
parent 834050c2c4
commit ee322ed437

View File

@ -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