diff options
author | Marius <mariausol@gmail.com> | 2012-06-05 10:40:16 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2012-06-05 10:40:16 +0300 |
commit | 0d22bc1c0589c61e35cf9746a8d4d0c4ac2ea8da (patch) | |
tree | 2ec0f7f663e45fd3c4539dfb54eb6e640d472bd6 /tex/context/base/l-io.lua | |
parent | ad5540007a2ac6504a47289ace109a76ec759a7e (diff) | |
download | context-0d22bc1c0589c61e35cf9746a8d4d0c4ac2ea8da.tar.gz |
beta 2012.06.05 09:16
Diffstat (limited to 'tex/context/base/l-io.lua')
-rw-r--r-- | tex/context/base/l-io.lua | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/tex/context/base/l-io.lua b/tex/context/base/l-io.lua index 4f27dc1dc..657b755b8 100644 --- a/tex/context/base/l-io.lua +++ b/tex/context/base/l-io.lua @@ -17,14 +17,14 @@ else io.fileseparator, io.pathseparator = "/" , ":" end -function io.loaddata(filename,textmode) +function io.loaddata(filename,textmode) -- return nil if empty local f = io.open(filename,(textmode and 'r') or 'rb') if f then local data = f:read('*all') f:close() - return data - else - return nil + if #data > 0 then + return data + end end end @@ -46,6 +46,45 @@ function io.savedata(filename,data,joiner) end end +function io.loadlines(filename,n) -- return nil if empty + local f = io.open(filename,'r') + if f then + if n then + local lines = { } + for i=1,n do + local line = f:read("*lines") + if line then + lines[#lines+1] = line + else + break + end + end + f:close() + lines = concat(lines,"\n") + if #lines > 0 then + return lines + end + else + local line = f:read("*line") or "" + assert(f:close()) + if #line > 0 then + return line + end + end + end +end + +function io.loadchunk(filename,n) + local f = io.open(filename,'rb') + if f then + local data = f:read(n or 1024) + f:close() + if #data > 0 then + return data + end + end +end + function io.exists(filename) local f = io.open(filename) if f == nil then |