Merge pull request #1056 from chrox/fix_1035

fix #1035
pull/1058/head
Qingping Hou 10 years ago
commit 387114812c

@ -1 +1 @@
Subproject commit 1c623700fb4499e4dcb2d56f59319c4be235fe3b
Subproject commit 267cfbd223d6d606329d3f13b6f3b6bd486239eb

@ -32,6 +32,25 @@ function ReaderDictionary:onLookupWord(word, box, highlight)
return true
end
local function tidyCDATA(results)
local cdata_tag = "<!%[CDATA%[(.-)%]%]>"
local format_escape = "&[29Ib%+]{(.-)}"
for _, result in ipairs(results) do
-- parse CDATA text in XML
if result.definition:find(cdata_tag) then
local def = result.definition:gsub(cdata_tag, "%1")
-- ignore all tags
def = def:gsub("%b<>", "")
-- ignore format strings
while def:find(format_escape) do
def = def:gsub(format_escape, "%1")
end
result.definition = def
end
end
return results
end
function ReaderDictionary:stardictLookup(word, box)
DEBUG("lookup word:", word, box)
if word then
@ -47,7 +66,7 @@ function ReaderDictionary:stardictLookup(word, box)
local ok, results = pcall(JSON.decode, JSON, results_str)
if ok and results then
DEBUG("lookup result table:", word, results)
self:showDict(word, results, box)
self:showDict(word, tidyCDATA(results), box)
else
-- dummy results
results = {
@ -93,6 +112,7 @@ function ReaderDictionary:onReadSettings(config)
end
function ReaderDictionary:onSaveSettings()
DEBUG("save default dictionary", self.default_dictionary)
self.ui.doc_settings:saveSetting("default_dictionary", self.default_dictionary)
end

@ -65,4 +65,8 @@ function ReaderWikipedia:onLookupWikipedia(word, box)
end
end
-- override onSaveSettings in ReaderDictionary
function ReaderWikipedia:onSaveSettings()
end
return ReaderWikipedia

Loading…
Cancel
Save