login

<     >

2021-08-27 08:34:20 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

gif: move binary I/O to bio.lua

diff --git a/bio.lua b/bio.lua
index e47e7b7..4652f12 100644
--- a/bio.lua
+++ b/bio.lua
@@ -73,6 +73,11 @@ local function write_beu32(fp, n)
     write_beu16(fp, bit.band(n, 0xFFFF))
 end
 
+local function write_lei16(fp, n)
+    write_byte(fp, bit.band(n, 0xFF))
+    write_byte(fp, bit.rshift(n, 8))
+end
+
 local function write_bei16(fp, n)
     if n < 0 then
         n = n + 0x10000
@@ -164,5 +169,6 @@ return {
     read_beu16=read_beu16, read_beu32=read_beu32, read_lei16=read_lei16,
     read_lei32=read_lei32, read_bei16=read_bei16, read_bei32=read_bei32,
     read_led64=read_led64, write_byte=write_byte, write_beu16=write_beu16,
-    write_beu32=write_beu32, write_bei16=write_bei16, rice_r=rice_r, rice_w=rice_w
+    write_beu32=write_beu32, write_lei16=write_lei16, write_bei16=write_bei16,
+    rice_r=rice_r, rice_w=rice_w
 }

diff --git a/gif.lua b/gif.lua
index a388508..de18fc9 100644
--- a/gif.lua
+++ b/gif.lua
@@ -1,6 +1,7 @@
 local ffi = require "ffi"
 local bit = require "bit"
 
+local bio = require "bio"
 local surf = require "surf"
 local lzw = require "lzw"
 
@@ -8,9 +9,7 @@ local bnot = bit.bnot
 local bor, band = bit.bor, bit.band
 local lshift, rshift =  bit.lshift,  bit.rshift
 
-local function write_num(f, n)
-    f:write(string.char(band(n, 0xFF), rshift(n, 8)))
-end
+local write_num = bio.write_lei16
 
 local function write_nums(f, ...)
     local nums = {...}