summaryrefslogtreecommitdiff
path: root/dalos-luahandle.lua
diff options
context:
space:
mode:
Diffstat (limited to 'dalos-luahandle.lua')
-rw-r--r--dalos-luahandle.lua102
1 files changed, 51 insertions, 51 deletions
diff --git a/dalos-luahandle.lua b/dalos-luahandle.lua
index 332a90e..952f856 100644
--- a/dalos-luahandle.lua
+++ b/dalos-luahandle.lua
@@ -1,51 +1,51 @@
-dalosp.luahandle = {
- create = function (tab)
- local obj = {
- offset = 0,
- canread = function (self) return true end,
- canwrite = function (self) return false end,
- canseek = function (self) return true end,
- canwatch = function (self) return false end,
- tell = function (self) return self.offset end,
- getsize = function (self) return self.size end,
- getmodif = function (self) return 0 end,
- flush = function (self) return true end,
- seek = function (self, offset, wheel)
- if wheel == SEEK_SET then
- self.offset = offset
- elseif wheel == SEEK_CUR then
- self.offset = self.offset + offset
- elseif wheel == SEEK_END then
- self.offset = self.size + offset
- else
- error "Unknown wheel"
- end
- if self.offset < 0 then self.offset = 0 end
- if self.offset >= self.size then self.offset = self.size end
- if self.do_seek then self:do_seek() end
- return self.offset
- end,
- read = function (self, userdata, count)
- count = math.min(count, self.size - self.offset)
-
- if count == 0 then
- if self.got_eof then self.lh:close() end
- self.got_eof = true
- return 0
- end
-
- self.got_eof = false
-
- local r, t = self:do_read(count, userdata)
- self.offset = self.offset + r
- return r, t
- end,
- }
- for k, v in pairs(tab) do obj[k] = v end
- local newh = HandleLua(obj)
- obj.lh = newh
- return newh
- end,
-}
-
-dalos.luahandle = dalosp.luahandle.create
+dalosp.luahandle = {
+ create = function (tab)
+ local obj = {
+ offset = 0,
+ canread = function (self) return true end,
+ canwrite = function (self) return false end,
+ canseek = function (self) return true end,
+ canwatch = function (self) return false end,
+ tell = function (self) return self.offset end,
+ getsize = function (self) return self.size end,
+ getmodif = function (self) return 0 end,
+ flush = function (self) return true end,
+ seek = function (self, offset, wheel)
+ if wheel == SEEK_SET then
+ self.offset = offset
+ elseif wheel == SEEK_CUR then
+ self.offset = self.offset + offset
+ elseif wheel == SEEK_END then
+ self.offset = self.size + offset
+ else
+ error "Unknown wheel"
+ end
+ if self.offset < 0 then self.offset = 0 end
+ if self.offset >= self.size then self.offset = self.size end
+ if self.do_seek then self:do_seek() end
+ return self.offset
+ end,
+ read = function (self, userdata, count)
+ count = math.min(count, self.size - self.offset)
+
+ if count == 0 then
+ if self.got_eof then self.lh:close() end
+ self.got_eof = true
+ return 0
+ end
+
+ self.got_eof = false
+
+ local r, t = self:do_read(count, userdata)
+ self.offset = self.offset + r
+ return r, t
+ end,
+ }
+ for k, v in pairs(tab) do obj[k] = v end
+ local newh = HandleLua(obj)
+ obj.lh = newh
+ return newh
+ end,
+}
+
+dalos.luahandle = dalosp.luahandle.create