diff --git a/frontend/ui/font.lua b/frontend/ui/font.lua index f6a07513a..3a43eaa8d 100644 --- a/frontend/ui/font.lua +++ b/frontend/ui/font.lua @@ -130,17 +130,56 @@ function Font:getFace(font, size) end --[[ - These fonts from Kindle system cannot be loaded by Freetype. + These non-LGC Kindle system fonts fail CRe's moronic header check. --]] local kindle_fonts_blacklist = { + ["DiwanMuna-Bold.ttf"] = true, + ["DiwanMuna-Regular.ttf"] = true, ["HYGothicBold.ttf"] = true, ["HYGothicMedium.ttf"] = true, ["HYMyeongJoBold.ttf"] = true, ["HYMyeongJoMedium.ttf"] = true, + ["KindleBlackboxBoldItalic.ttf"] = true, + ["KindleBlackboxBold.ttf"] = true, + ["KindleBlackboxItalic.ttf"] = true, + ["KindleBlackboxRegular.ttf"] = true, + ["Kindle_MonospacedSymbol.ttf"] = true, + ["Kindle_Symbol.ttf"] = true, + ["MTChineseSurrogates.ttf"] = true, ["MYingHeiTBold.ttf"] = true, ["MYingHeiTMedium.ttf"] = true, + ["NotoNaskhArabicUI-Bold.ttf"] = true, + ["NotoNaskhArabicUI-Regular.ttf"] = true, + ["NotoNaskh-Bold.ttf"] = true, + ["NotoNaskh-Regular.ttf"] = true, + ["NotoSansBengali-Regular.ttf"] = true, + ["NotoSansDevanagari-Regular.ttf"] = true, + ["NotoSansGujarati-Regular.ttf"] = true, + ["NotoSansKannada-Regular.ttf"] = true, + ["NotoSansMalayalam-Regular.ttf"] = true, + ["NotoSansTamil-Regular.ttf"] = true, + ["NotoSansTelugu-Regular.ttf"] = true, + ["SakkalKitab-Bold.ttf"] = true, + ["SakkalKitab-Regular.ttf"] = true, ["SongTBold.ttf"] = true, ["SongTMedium.ttf"] = true, + ["STHeitiBold.ttf"] = true, + ["STHeitiMedium.ttf"] = true, + ["STSongBold.ttf"] = true, + ["STSongMedium.ttf"] = true, + ["TBGothicBold_213.ttf"] = true, + ["TBGothicMed_213.ttf"] = true, + ["TBMinchoBold_213.ttf"] = true, + ["TBMinchoMedium_213.ttf"] = true, + ["STKaiMedium.ttf"] = true, + ["Caecilia_LT_67_Cond_Medium.ttf"] = true, + ["Caecilia_LT_68_Cond_Medium_Italic.ttf"] = true, + ["Caecilia_LT_77_Cond_Bold.ttf"] = true, + ["Caecilia_LT_78_Cond_Bold_Italic.ttf"] = true, + ["Helvetica_LT_65_Medium.ttf"] = true, + ["Helvetica_LT_66_Medium_Italic.ttf"] = true, + ["Helvetica_LT_75_Bold.ttf"] = true, + ["Helvetica_LT_76_Bold_Italic.ttf"] = true, } local function isInFontsBlacklist(f) @@ -157,11 +196,13 @@ function Font:_readList(target, dir) if lfs.attributes(dir.."/"..f, "mode") == "directory" and f ~= "." and f ~= ".." then self:_readList(target, dir.."/"..f) else - local file_type = string.lower(string.match(f, ".+%.([^.]+)") or "") - if file_type == "ttf" or file_type == "ttc" - or file_type == "cff" or file_type == "otf" then - if not isInFontsBlacklist(f) then - table.insert(target, dir.."/"..f) + if string.sub(f, 1, 1) ~= "." then + local file_type = string.lower(string.match(f, ".+%.([^.]+)") or "") + if file_type == "ttf" or file_type == "ttc" + or file_type == "cff" or file_type == "otf" then + if not isInFontsBlacklist(f) then + table.insert(target, dir.."/"..f) + end end end end