diff options
| author | b5f0d6c3 <[email protected]> | 2022-04-28 10:05:52 +0800 |
|---|---|---|
| committer | b5f0d6c3 <[email protected]> | 2022-04-28 10:05:52 +0800 |
| commit | 039c65cb01122d0c8d380075a67e093ed0832e4b (patch) | |
| tree | 738824b5d0be6a524f075e380d1a07f76a09abde | |
| parent | b1c9158e1d9929812ff4694768c0db639b731660 (diff) | |
update mkvlib:fix fallback bug
| -rw-r--r-- | mkvlib/ass.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/mkvlib/ass.go b/mkvlib/ass.go index b9cd911..43a984b 100644 --- a/mkvlib/ass.go +++ b/mkvlib/ass.go @@ -81,6 +81,7 @@ func (self *assProcessor) parse() bool { opt := astisub.SSAOptions{} reg, _ := regexp.Compile(`\\fn@?([^\r\n\\\}]*)`) _reg, _ := regexp.Compile(`\\([bir])([^\r\n\\\}]*)`) + __reg, _ := regexp.Compile(`nd\d+`) m := make(map[string]map[rune]bool) for k, v := range self.subtitles { subtitle, err := astisub.ReadFromSSAWithOptions(strings.NewReader(v), opt) @@ -111,6 +112,9 @@ func (self *assProcessor) parse() bool { _i = v[2] == "1" break case "r": + if __reg.MatchString(v[2]) { + break + } v[2] = strings.TrimPrefix(v[2], "*") if v[2] == "" { name = "" @@ -789,9 +793,9 @@ func (self *assProcessor) matchCache(k string) (string, string) { for _, v := range self.cache { for q, _v := range v.Fonts { for _, __v := range _v { - if __v == _k[0] || _tk(false, _k[0]) { + if __v == _k[0] || _tk(false, __v) { for _, ___v := range v.Types[q] { - if ___v == _k[1] || _tk(true, _k[1]) { + if ___v == _k[1] || _tk(true, ___v) { ok = v.File i = q break |
