diff options
| author | Philipp Gesang <phg42.2a@gmail.com> | 2013-11-06 17:22:54 +0100 | 
|---|---|---|
| committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-11-06 17:22:54 +0100 | 
| commit | 4467a6f5150c49cd0992a624c294018cf02be07c (patch) | |
| tree | c0e8844ec2ee2cef40e9a0bfbbc229ab2b855c36 | |
| parent | 5c7df96b71cc281898067971ff96eb939f8d9d45 (diff) | |
| download | luaotfload-4467a6f5150c49cd0992a624c294018cf02be07c.tar.gz | |
[db] remove dependency on lualibs for compression
| -rw-r--r-- | luaotfload-database.lua | 22 | 
1 files changed, 17 insertions, 5 deletions
| diff --git a/luaotfload-database.lua b/luaotfload-database.lua index f103caa..567149a 100644 --- a/luaotfload-database.lua +++ b/luaotfload-database.lua @@ -31,6 +31,7 @@ local fontloaderinfo           = fontloader.info  local fontloaderclose          = fontloader.close  local fontloaderopen           = fontloader.open  local fontloaderto_table       = fontloader.to_table +local gzipopen                 = gzip.open  local iolines                  = io.lines  local ioopen                   = io.open  local kpseexpand_path          = kpse.expand_path @@ -415,10 +416,13 @@ end      have to put our own small wrappers for the gzip library in      place. +    load_gzipped -- Read and decompress and entire gzipped file. +    Returns the uncompressed content as a string. +  --doc]]--  local load_gzipped = function (filename) -    local gh = gzip.open (filename,"rb") +    local gh = gzipopen (filename,"rb")      if gh then          local data = gh:read "*all"          gh:close () @@ -426,13 +430,21 @@ local load_gzipped = function (filename)      end  end +--[[doc-- + +    save_gzipped -- Compress and write a string to file. The return +    value is the number of bytes written. Zlib parameters are: best +    compression and default strategy. + +--doc]]-- +  local save_gzipped = function (filename, data) -    local gh = ioopen (filename, "wb") +    local gh = gzipopen (filename, "wb9")      if gh then -        local bin = zlibcompress (data, 9, nil, 15 + 16) -        gh:write (bin) +        gh:write (data) +        local bytes = gh:seek ()          gh:close () -        return #bin +        return bytes      end  end | 
