From cb7c8031ced6e9a393e8bdc3f409687741ef9feb Mon Sep 17 00:00:00 2001 From: Pixel Date: Sun, 20 Dec 2009 03:02:33 -0800 Subject: Factorizing some bits of code. --- dalos-hexview.lua | 43 ++++--------------------------------------- 1 file changed, 4 insertions(+), 39 deletions(-) (limited to 'dalos-hexview.lua') diff --git a/dalos-hexview.lua b/dalos-hexview.lua index 8aa53bb..381ffd4 100644 --- a/dalos-hexview.lua +++ b/dalos-hexview.lua @@ -50,52 +50,17 @@ dalosp.hexview = { hvo = self, ind = ind, origin = cursor, - offset = 0, size = maxsize - cursor, - canread = function (self) return true end, - canwrite = function (self) return false end, - canseek = function (self) return true end, - canwatch = function (self) return self.h:canwatch() end, getname = function (self) return self.hvo.name .. ":" .. self.ind end, - tell = function (self) return self.offset end, - getsize = function (self) return self.size end, getmodif = function (self) return self.hvo:getmodif() end, - flush = function (self) return self.hvo:flush() 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 + do_seek = function (self) self.h:seek(self.offset + self.origin) - 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 = self.h:read(count, userdata) - self.offset = self.offset + r - if r == 0 then self.got_eof = true end - return r + do_read = function (self, userdata, count) + return self.h:read(count, userdata) end, } - local newh = HandleLua(obj) - obj.lh = newh - self:set_houtput(newh, ind) + self:set_houtput(dalos.luahandle(obj), ind) end end, -- cgit v1.2.3