diff options
Diffstat (limited to 'luaextra-io.lua')
| -rw-r--r-- | luaextra-io.lua | 186 | 
1 files changed, 0 insertions, 186 deletions
diff --git a/luaextra-io.lua b/luaextra-io.lua deleted file mode 100644 index 5a126da..0000000 --- a/luaextra-io.lua +++ /dev/null @@ -1,186 +0,0 @@ -if not modules then modules = { } end modules ['l-io'] = { -    version   = 1.001, -    comment   = "companion to luat-lib.mkiv", -    author    = "Hans Hagen, PRAGMA-ADE, Hasselt NL", -    copyright = "PRAGMA ADE / ConTeXt Development Team", -    license   = "see context related readme files" -} - -local byte, find, gsub = string.byte, string.find, string.gsub - -if string.find(os.getenv("PATH"),";") then -    io.fileseparator, io.pathseparator = "\\", ";" -else -    io.fileseparator, io.pathseparator = "/" , ":" -end - -function io.loaddata(filename,textmode) -    local f = io.open(filename,(textmode and 'r') or 'rb') -    if f then -    --  collectgarbage("step") -- sometimes makes a big difference in mem consumption -        local data = f:read('*all') -    --  garbagecollector.check(data) -        f:close() -        return data -    else -        return nil -    end -end - -function io.savedata(filename,data,joiner) -    local f = io.open(filename,"wb") -    if f then -        if type(data) == "table" then -            f:write(table.join(data,joiner or "")) -        elseif type(data) == "function" then -            data(f) -        else -            f:write(data or "") -        end -        f:close() -        return true -    else -        return false -    end -end - -function io.exists(filename) -    local f = io.open(filename) -    if f == nil then -        return false -    else -        assert(f:close()) -        return true -    end -end - -function io.size(filename) -    local f = io.open(filename) -    if f == nil then -        return 0 -    else -        local s = f:seek("end") -        assert(f:close()) -        return s -    end -end - -function io.noflines(f) -    local n = 0 -    for _ in f:lines() do -        n = n + 1 -    end -    f:seek('set',0) -    return n -end - -local nextchar = { -    [ 4] = function(f) -        return f:read(1,1,1,1) -    end, -    [ 2] = function(f) -        return f:read(1,1) -    end, -    [ 1] = function(f) -        return f:read(1) -    end, -    [-2] = function(f) -        local a, b = f:read(1,1) -        return b, a -    end, -    [-4] = function(f) -        local a, b, c, d = f:read(1,1,1,1) -        return d, c, b, a -    end -} - -function io.characters(f,n) -    if f then -        return nextchar[n or 1], f -    else -        return nil, nil -    end -end - -local nextbyte = { -    [4] = function(f) -        local a, b, c, d = f:read(1,1,1,1) -        if d then -            return byte(a), byte(b), byte(c), byte(d) -        else -            return nil, nil, nil, nil -        end -    end, -    [2] = function(f) -        local a, b = f:read(1,1) -        if b then -            return byte(a), byte(b) -        else -            return nil, nil -        end -    end, -    [1] = function (f) -        local a = f:read(1) -        if a then -            return byte(a) -        else -            return nil -        end -    end, -    [-2] = function (f) -        local a, b = f:read(1,1) -        if b then -            return byte(b), byte(a) -        else -            return nil, nil -        end -    end, -    [-4] = function(f) -        local a, b, c, d = f:read(1,1,1,1) -        if d then -            return byte(d), byte(c), byte(b), byte(a) -        else -            return nil, nil, nil, nil -        end -    end -} - -function io.bytes(f,n) -    if f then -        return nextbyte[n or 1], f -    else -        return nil, nil -    end -end - -function io.ask(question,default,options) -    while true do -        io.write(question) -        if options then -            io.write(string.format(" [%s]",table.concat(options,"|"))) -        end -        if default then -            io.write(string.format(" [%s]",default)) -        end -        io.write(string.format(" ")) -        local answer = io.read() -        answer = gsub(answer,"^%s*(.*)%s*$","%1") -        if answer == "" and default then -            return default -        elseif not options then -            return answer -        else -            for _,v in pairs(options) do -                if v == answer then -                    return answer -                end -            end -            local pattern = "^" .. answer -            for _,v in pairs(options) do -                if find(v,pattern) then -                    return v -                end -            end -        end -    end -end  | 
