From 2f9a44bfc617a7cfed1137d1b8b1338b809097c3 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sat, 3 Mar 2012 22:56:54 +0800 Subject: [PATCH] code clean up for first demo --- djvu.c | 10 +++++++++- djvureader.lua | 5 ++--- filesearcher.lua | 10 +++------- reader.lua | 6 ++++-- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/djvu.c b/djvu.c index b27524582..327b97ced 100644 --- a/djvu.c +++ b/djvu.c @@ -17,6 +17,7 @@ */ #include +#include "string.h" #include "blitbuffer.h" #include "djvu.h" @@ -107,6 +108,13 @@ static int closeDocument(lua_State *L) { } if(doc->context != NULL) { ddjvu_context_release(doc->context); + + /*@TODO fix this! 03.03 2012 + * it works fine in EMU mode, but if I don't + * add this printf after context_release, kpfview + * simply exit after this function call! */ + printf("remeber to fix this bug!\n"); + doc->context = NULL; } } @@ -276,7 +284,7 @@ static int drawPage(lua_State *L) { imagebuffer = malloc((bb->w)*(bb->h)+1); /* fill pixel map with white color */ - memset(imagebuffer, 0xFF, (bb->w)*(bb->h)+1); + memset((void *)imagebuffer, 0xFF, (bb->w)*(bb->h)+1); pixelformat = ddjvu_format_create(DDJVU_FORMAT_GREY8, 0, NULL); ddjvu_format_set_row_order(pixelformat, 1); diff --git a/djvureader.lua b/djvureader.lua index b0ce85aae..03084ee46 100644 --- a/djvureader.lua +++ b/djvureader.lua @@ -337,8 +337,7 @@ function DJVUReader:inputloop() self:goto(self.pageno + 1) end elseif ev.code == KEY_PGBCK or ev.code == KEY_LPGBCK then - if Keys.shiftmode then - self:setglobalzoom(self.globalzoom - 0.2) + if Keys.shiftmode then self:setglobalzoom(self.globalzoom - 0.2) elseif Keys.altmode then self:setglobalzoom(self.globalzoom - 0.1) else @@ -386,7 +385,7 @@ function DJVUReader:inputloop() self:setglobalzoommode(self.ZOOM_FIT_TO_PAGE_HEIGHT) end elseif ev.code == KEY_T then - self:showTOC() + --self:showTOC() elseif ev.code == KEY_B then self:showJumpStack() end diff --git a/filesearcher.lua b/filesearcher.lua index 55ef1892e..e0f41d8de 100644 --- a/filesearcher.lua +++ b/filesearcher.lua @@ -46,7 +46,7 @@ function FileSearcher:readdir() if lfs.attributes(d.."/"..f, "mode") == "directory" and f ~= "." and f~= ".." and not string.match(f, "^%.[^.]") then table.insert(new_dirs, d.."/"..f) - elseif string.match(f, ".+%.[pP][dD][fF]$") then + elseif string.match(f, ".+%.[pP][dD][fF]$") or string.match(f, ".+%.[dD][jJ][vV][uU]$") then file_entry = {dir=d, name=f,} table.insert(self.files, file_entry) --print("file:"..d.."/"..f) @@ -261,12 +261,8 @@ function FileSearcher:choose(ypos, height, keywords) pagedirty = true elseif ev.code == KEY_ENTER or ev.code == KEY_FW_PRESS then file_entry = self.result[perpage*(self.page-1)+self.current] - file_path = file_entry.dir .. "/" .. file_entry.name - - if PDFReader:open(file_path,"") then -- TODO: query for password - PDFReader:goto(tonumber(PDFReader.settings:readsetting("last_page") or 1)) - PDFReader:inputloop() - end + file_full_path = file_entry.dir .. "/" .. file_entry.name + openFile(file_full_path) pagedirty = true elseif ev.code == KEY_BACK then diff --git a/reader.lua b/reader.lua index 5e3e41191..61817638f 100755 --- a/reader.lua +++ b/reader.lua @@ -36,12 +36,14 @@ function openFile(filename) local file_type = string.lower(string.match(filename, ".+%.(.+)")) if file_type == "djvu" then if DJVUReader:open(filename) then - DJVUReader:goto(tonumber(DJVUReader.settings:readsetting("last_page")) or 1) + page_num = DJVUReader.settings:readsetting("last_page") or 1 + DJVUReader:goto(tonumber(page_num)) DJVUReader:inputloop() end elseif file_type == "pdf" then if PDFReader:open(filename,"") then -- TODO: query for password - PDFReader:goto(tonumber(PDFReader.settings:readsetting("last_page") or 1)) + page_num = PDFReader.settings:readsetting("last_page") or 1 + PDFReader:goto(tonumber(page_num)) PDFReader:inputloop() end end