diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/luaotfload-auxiliary.lua | 21 | 
1 files changed, 13 insertions, 8 deletions
diff --git a/src/luaotfload-auxiliary.lua b/src/luaotfload-auxiliary.lua index 6ba21e0..35f8f2b 100644 --- a/src/luaotfload-auxiliary.lua +++ b/src/luaotfload-auxiliary.lua @@ -173,25 +173,30 @@ local set_capheight = function (fontdata)      local shared     = fontdata.shared      local parameters = fontdata.parameters      local capheight -    if shared and shared.rawdata.metadata.pfminfo then +    if    shared +      and shared.rawdata.metadata +      and shared.rawdata.metadata.pfminfo +    then        local units_per_em   = parameters.units        local size           = parameters.size        local os2_capheight  = shared.rawdata.metadata.pfminfo.os2_capheight -      if os2_capheight > 0 then +      if capheight and os2_capheight > 0 then          capheight = os2_capheight / units_per_em * size        else -        local X8 = stringbyte"X" -        if fontdata.characters[X8] then -          capheight = fontdata.characters[X8].height +        local X8_str = stringbyte"X" +        local X8_chr = fontdata.characters[X8_str] +        if X8_chr then +          capheight = X8_chr.height          else            capheight = parameters.ascender / units_per_em * size          end        end      else -      local X8 = stringbyte"X" -      if fontdata.characters[X8] then -        capheight = fontdata.characters[X8].height +      local X8_str = stringbyte "X" +      local X8_chr = fontdata.characters[X8_str] +      if X8_chr then +        capheight = X8_chr.height        end      end      if capheight then  | 
