summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--luaotfload-database.lua30
-rwxr-xr-xmktests13
2 files changed, 23 insertions, 20 deletions
diff --git a/luaotfload-database.lua b/luaotfload-database.lua
index 28109ec..c979acf 100644
--- a/luaotfload-database.lua
+++ b/luaotfload-database.lua
@@ -2455,23 +2455,19 @@ do
local b = false
if italic_synonym [field] then
- i = true
+ return "i"
end
- if weight == 700 or field == "bold" then
- b = true
+ if field == "bold" then
+ return "b"
end
if field == "bolditalic" or field == "boldoblique" then
- b = true
- i = true
+ return "bi"
end
- if i and b then
- return "bi"
- elseif i then
- return "i"
- elseif b then
+ if weight == 700 then
+ --- matches only if weight is specified
return "b"
end
@@ -2485,11 +2481,11 @@ do
weight)
local style
if fontstyle_name then
- style = choose_exact (fontstyle_name, weight)
+ style = choose_exact (fontstyle_name --[[ , weight ]])
end
if not style then
if prefmodifiers then
- style = choose_exact (prefmodifiers, weight)
+ style = choose_exact (prefmodifiers --[[ , weight ]])
elseif subfamily then
style = choose_exact (subfamily, weight)
end
@@ -2506,7 +2502,9 @@ do
check_regular = function (fontstyle_name,
prefmodifiers,
subfamily,
- splitstyle)
+ splitstyle,
+ italicangle,
+ weight)
if fontstyle_name then
return regular_synonym [fontstyle_name]
@@ -2516,6 +2514,8 @@ do
return regular_synonym [subfamily]
elseif splitstyle then
return regular_synonym [splitstyle]
+ elseif italicangle == 0 and weight == 400 then
+ return true
end
return nil
@@ -2644,7 +2644,9 @@ local collect_families = function (mappings)
modifier = check_regular (fontstyle_name,
prefmodifiers,
subfamily,
- splitstyle)
+ splitstyle,
+ italicangle,
+ weight)
end
if modifier then
diff --git a/mktests b/mktests
index baa710c..3a55b8d 100755
--- a/mktests
+++ b/mktests
@@ -31,6 +31,7 @@ kpse.set_program_name "luatex"
require "lualibs"
require "luaotfload-basics-gen.lua"
require "luaotfload-override.lua"
+require "luaotfload-parsers"
require "luaotfload-database"
local names = fonts.names
@@ -86,11 +87,11 @@ local infer_regular_style = {
{ "Garamond Premier Pro", "GaramondPremrPro.otf" },
{ "CMU Serif", "cmunrm.otf" },
{ "CMU Sans Serif", "cmunss.otf" },
- { "Minion Pro", "MinionPro_Regular.otf" },
+ { "Minion Pro", "MinionPro-Regular.otf" },
--- Below test will succeed only if we match for the
--- splainname (= sanitized tfmdata.fullname) field
--- explicitly.
- { "Minion Pro Italic", "MinionPro_It.otf" },
+ { "Minion Pro Italic", "MinionPro-It.otf" },
}
local choose_optical_size = {
@@ -140,10 +141,10 @@ local choose_style = {
Also, the full Minion Pro set comes with different optical sizes which
for monetary reasons cannot considered here.
--]]--
- { { name = "Minion Pro", style = "regular" }, "MinionPro_Regular.otf" },
- { { name = "Minion Pro", style = "italic" }, "MinionPro_It.otf" },
- { { name = "Minion Pro", style = "bold" }, "MinionPro_Bold.otf" },
- { { name = "Minion Pro", style = "bolditalic" }, "MinionPro_BoldIt.otf" },
+ { { name = "Minion Pro", style = "regular" }, "MinionPro-Regular.otf" },
+ { { name = "Minion Pro", style = "italic" }, "MinionPro-It.otf" },
+ { { name = "Minion Pro", style = "bold" }, "MinionPro-Bold.otf" },
+ { { name = "Minion Pro", style = "bolditalic" }, "MinionPro-BoldIt.otf" },
}
--- this needs a database built with --formats=+pfa,pfb,afm