summaryrefslogtreecommitdiff
path: root/dalos-hexview.lua
diff options
context:
space:
mode:
Diffstat (limited to 'dalos-hexview.lua')
-rw-r--r--dalos-hexview.lua43
1 files changed, 4 insertions, 39 deletions
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,