diff options
| -rw-r--r-- | mkvlib/ass.go | 16 | ||||
| -rw-r--r-- | mkvlib/shared.go | 2 |
2 files changed, 14 insertions, 4 deletions
diff --git a/mkvlib/ass.go b/mkvlib/ass.go index 073fb41..4cf869e 100644 --- a/mkvlib/ass.go +++ b/mkvlib/ass.go @@ -297,7 +297,7 @@ func (self *assProcessor) getFontName(p string) []map[string]bool { case "1", "3", "4", "6": names[name] = true break - case "2": + case "2", "17": types[name] = true break } @@ -352,9 +352,14 @@ func (self *assProcessor) matchFonts() bool { printLog(self.lcb, `Font fallback:[%s^%s] -> [%s^Regular]`, _k[0], _k[1], _k[0]) _k[1] = "Regular" } + l := strings.LastIndex(_k[0], "-") + tk := "" + if l > 0 && len(_k[0]) > 1 { + tk = _k[0][l+1:] + } for __k, v := range m { for ___k, _v := range v { - if _v[0][_k[0]] && _v[1][_k[1]] { + if _v[0][_k[0]] && (_v[1][_k[1]] || (tk != "" && _v[1][tk])) { self.m[k].file = __k self.m[k].index = reg.FindStringSubmatch(___k)[1] n := self.fg[_k[0]] @@ -724,12 +729,17 @@ func (self *assProcessor) matchCache(k string) (string, string) { ok := "" i := -1 _k := strings.Split(k, "^") + l := strings.LastIndex(_k[0], "-") + tk := "" + if l > 0 && len(_k[0]) > 1 { + tk = _k[0][l+1:] + } for _, v := range self.cache { for q, _v := range v.Fonts { for _, __v := range _v { if __v == _k[0] { for _, ___v := range v.Types[q] { - if ___v == _k[1] { + if ___v == _k[1] || (tk != "" && ___v == tk) { ok = v.File i = q break diff --git a/mkvlib/shared.go b/mkvlib/shared.go index dec389f..f11c8fa 100644 --- a/mkvlib/shared.go +++ b/mkvlib/shared.go @@ -11,7 +11,7 @@ import ( ) const libName = "mkvlib" -const libVer = "v1.4.3" +const libVer = "v1.4.4" const LibFName = libName + " " + libVer |
