diff options
Diffstat (limited to 'mkvlib/ass.go')
| -rw-r--r-- | mkvlib/ass.go | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/mkvlib/ass.go b/mkvlib/ass.go index 826c484..f7c195c 100644 --- a/mkvlib/ass.go +++ b/mkvlib/ass.go @@ -98,8 +98,8 @@ func (self *assProcessor) parse() bool { ec++ } else { data, err := io.ReadAll(f) - str := toUTF8(data) if err == nil { + str := toUTF8(data) self.subtitles[file] = str } else { ec++ @@ -108,6 +108,7 @@ func (self *assProcessor) parse() bool { if ec > 0 { printLog(self.lcb, `Failed to read the ass file: "%s"`, file) } + _ = f.Close() } if ec == 0 { opt := parser.SSAOptions{} @@ -194,7 +195,7 @@ func (self *assProcessor) parse() bool { if ___reg.MatchString(v) { v += "0123456789" } - v += "\u0020\u00a0" + v += "a\u0020\u00a0" self.m[k] = new(fontInfo) self.m[k].runes = []rune(v) self.m[k].oldName = strings.Split(k, "^")[0] @@ -376,8 +377,12 @@ func (self *assProcessor) checkFontMissing(f *fontInfo, i int, c bool) bool { } } } + } else { + return false } } + } else { + return false } h := "N" if c { @@ -886,7 +891,12 @@ func (self *assProcessor) matchCache(k, o string) (string, int) { names := self.getFontName(v.File) if len(names) > 0 { _count++ - if !self.checkFontMissing(self.m[o], _count, true) && self.strict { + f := new(fontInfo) + f.oldName = _k[0] + f.file = ok + f.index = i + f.runes = self.m[o].runes + if !self.checkFontMissing(f, _count, true) && self.strict { ok = "" i = 0 continue |
