From 8ab50338baa618baa07a4ad66e2bdd732db58df5 Mon Sep 17 00:00:00 2001 From: teahubxyz Date: Sun, 11 Oct 2026 21:03:11 -0700 Subject: [PATCH] venture doodleloop: the GIF encoder widens its codes when the decoder does, so exported GIFs decode (hand-finished) --- ventures/doodleloop/app.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ventures/doodleloop/app.js b/ventures/doodleloop/app.js index c46316a..410b1ea 100644 --- a/ventures/doodleloop/app.js +++ b/ventures/doodleloop/app.js @@ -799,7 +799,7 @@ emit(prefix); if (nextCode < 4096) { dict[wk] = nextCode++; - if (nextCode === (1 << codeSize) && codeSize < 12) codeSize++; + if (nextCode === (1 << codeSize) + 1 && codeSize < 12) codeSize++; // the decoder adds each entry one code later } else { emit(clear); dict = Object.create(null); @@ -810,6 +810,7 @@ } } emit(wKey.indexOf(",") === -1 ? +wKey : dict[wKey]); + if (nextCode === (1 << codeSize) && codeSize < 12) codeSize++; // the decoder's last entry can widen the end code emit(eoi); var acc = 0, nbits = 0, bytesOut = []; for (i = 0; i < outBits.length; i += 2) {