diff options
| author | ac79b0c6 <[email protected]> | 2023-04-27 17:52:31 +0800 |
|---|---|---|
| committer | ac79b0c6 <[email protected]> | 2023-04-27 17:52:31 +0800 |
| commit | 474cc82d5675fe9c515a4c3cb7e42044f8125f9a (patch) | |
| tree | bd9b1b31814022240479ee956900086f10bf63c6 /mkvlib | |
| parent | 65d4b3492cf4ccc05b0aeeb973f26d9c4fffced2 (diff) | |
update mkvlib:fix bug.
Diffstat (limited to 'mkvlib')
| -rw-r--r-- | mkvlib/ass.go | 37 | ||||
| -rw-r--r-- | mkvlib/shared.go | 2 |
2 files changed, 22 insertions, 17 deletions
diff --git a/mkvlib/ass.go b/mkvlib/ass.go index 2b21488..3c0c7dd 100644 --- a/mkvlib/ass.go +++ b/mkvlib/ass.go @@ -25,12 +25,13 @@ const ( ) type fontInfo struct { - file string - runes []rune - index int - oldName string - newName string - sFont string + file string + runes []rune + index int + oldName string + oldNames []string + newName string + sFont string } type fontCache struct { @@ -576,12 +577,14 @@ func (self *assProcessor) reMap() { for _, v := range self.m { if _, ok := m[v.file]; !ok { m[v.file] = v + m[v.file].oldNames = []string{v.oldName} } else { m[v.file].runes = append(m[v.file].runes, v.runes...) + m[v.file].oldNames = append(m[v.file].oldNames, v.oldName) } } for _, v := range m { - printLog(self.lcb, logInfo, `Font selected:[%s] -> "%s"[%d]`, v.oldName, v.file, v.index) + printLog(self.lcb, logInfo, `Font selected:[%s] -> "%s"[%d]`, strings.Join(v.oldNames, ","), v.file, v.index) } self.m = m } @@ -752,19 +755,21 @@ func (self *assProcessor) changeFontsName() bool { func (self *assProcessor) replaceFontNameInAss() bool { ec := 0 m := make(map[string]map[string]bool) - if self.rename { - for _, v := range self.m { + for _, v := range self.m { + if self.rename || len(v.oldNames) > 1 { for f, s := range self.subtitles { if m[f] == nil { m[f] = make(map[string]bool) } - n := regexp.QuoteMeta(v.oldName) - reg, _ := regexp.Compile(fmt.Sprintf(`(Style:[^,\r\n]+,|\\fn)(@?)%s([,\\\}])`, n)) - if reg.MatchString(s) { - r := fmt.Sprintf("${1}${2}%s${3}", v.newName) - s = reg.ReplaceAllString(s, r) - m[f][v.oldName] = true - self.subtitles[f] = s + for _, _v := range v.oldNames { + n := regexp.QuoteMeta(_v) + reg, _ := regexp.Compile(fmt.Sprintf(`(Style:[^,\r\n]+,|\\fn)(@?)%s([,\\\}])`, n)) + if reg.MatchString(s) { + r := fmt.Sprintf("${1}${2}%s${3}", v.newName) + s = reg.ReplaceAllString(s, r) + m[f][v.oldName] = true + self.subtitles[f] = s + } } } } diff --git a/mkvlib/shared.go b/mkvlib/shared.go index bf8d54d..5f77fa1 100644 --- a/mkvlib/shared.go +++ b/mkvlib/shared.go @@ -12,7 +12,7 @@ import ( ) const libName = "mkvlib" -const libVer = "v2.2.6" +const libVer = "v2.2.7" const LibFName = libName + " " + libVer |
