summaryrefslogtreecommitdiff
path: root/src/fontloader/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'src/fontloader/runtime')
-rw-r--r--src/fontloader/runtime/fontloader-fontloader.lua52
1 files changed, 36 insertions, 16 deletions
diff --git a/src/fontloader/runtime/fontloader-fontloader.lua b/src/fontloader/runtime/fontloader-fontloader.lua
index b47d49e..448846b 100644
--- a/src/fontloader/runtime/fontloader-fontloader.lua
+++ b/src/fontloader/runtime/fontloader-fontloader.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 03/28/15 22:37:53
+-- merge date : 04/12/15 15:41:22
do -- begin closure to overcome local limits and interference
@@ -666,7 +666,6 @@ local function make(t)
local function making(t)
local p=p_false
local keys=sortedkeys(t)
- local okay=t[""]
for i=1,#keys do
local k=keys[i]
if k~="" then
@@ -674,13 +673,14 @@ local function make(t)
if v==true then
p=p+P(k)*p_true
elseif v==false then
- elseif okay then
- p=p+P(k)*(making(v)+p_true)
else
p=p+P(k)*making(v)
end
end
end
+ if t[""] then
+ p=p+p_true
+ end
return p
end
local p=p_false
@@ -692,8 +692,6 @@ local function make(t)
if v==true then
p=p+P(k)*p_true
elseif v==false then
- elseif v[""] then
- p=p+P(k)*(making(v)+p_true)
else
p=p+P(k)*making(v)
end
@@ -4393,7 +4391,8 @@ function constructors.scale(tfmdata,specification)
local stackmath=not properties.nostackmath
local nonames=properties.noglyphnames
local haskerns=properties.haskerns or properties.mode=="base"
- local hasligatures=properties.hasligatures or properties.mode=="base"
+ local hasligatures=properties.hasligatures or properties.mode=="base"
+ local realdimensions=properties.realdimensions
if changed and not next(changed) then
changed=false
end
@@ -4474,6 +4473,26 @@ function constructors.scale(tfmdata,specification)
local width=description.width
local height=description.height
local depth=description.depth
+ if realdimensions then
+ if not height or height==0 then
+ local bb=description.boundingbox
+ local ht=bb[4]
+ if ht~=0 then
+ height=ht
+ end
+ if not depth or depth==0 then
+ local dp=-bb[2]
+ if dp~=0 then
+ depth=dp
+ end
+ end
+ elseif not depth or depth==0 then
+ local dp=-description.boundingbox[2]
+ if dp~=0 then
+ depth=dp
+ end
+ end
+ end
if width then width=hdelta*width else width=scaledwidth end
if height then height=vdelta*height else height=scaledheight end
if depth and depth~=0 then
@@ -7609,15 +7628,16 @@ actions["add dimensions"]=function(data,filename)
report_otf("mark %a with width %b found in %a",d.name or "<noname>",wd,basename)
end
if bb then
- local ht,dp=bb[4],-bb[2]
- if ht==0 or ht<0 then
- else
- d.height=ht
- end
- if dp==0 or dp<0 then
- else
- d.depth=dp
- end
+ local ht=bb[4]
+ local dp=-bb[2]
+ if ht==0 or ht<0 then
+ else
+ d.height=ht
+ end
+ if dp==0 or dp<0 then
+ else
+ d.depth=dp
+ end
end
end
end