tpl: Fix BOM issue in templates

Fixes #4895
This commit is contained in:
Bjørn Erik Pedersen
2018-10-30 17:36:05 +01:00
parent 729593c842
commit 3a786a248d
2 changed files with 42 additions and 1 deletions

View File

@@ -655,6 +655,22 @@ func (t *textTemplates) handleMaster(name, overlayFilename, masterFilename strin
}
func removeLeadingBOM(s string) string {
const bom = '\ufeff'
for i, r := range s {
if i == 0 && r != bom {
return s
}
if i > 0 {
return s[i:]
}
}
return s
}
func (t *templateHandler) addTemplateFile(name, baseTemplatePath, path string) error {
t.checkState()
@@ -666,7 +682,8 @@ func (t *templateHandler) addTemplateFile(name, baseTemplatePath, path string) e
if err != nil {
return templateInfo{filename: filename, fs: fs}, err
}
s := string(b)
s := removeLeadingBOM(string(b))
realFilename := filename
if fi, err := fs.Stat(filename); err == nil {