diff --git a/cmd/fyne/internal/commands/encode.go b/cmd/fyne/internal/commands/encode.go new file mode 100644 index 0000000000..42920b2412 --- /dev/null +++ b/cmd/fyne/internal/commands/encode.go @@ -0,0 +1,7 @@ +package commands + +import "strings" + +func encodeXMLString(in string) string { + return strings.ReplaceAll(in, "&", "&") +} diff --git a/cmd/fyne/internal/commands/encode_test.go b/cmd/fyne/internal/commands/encode_test.go new file mode 100644 index 0000000000..34ef523454 --- /dev/null +++ b/cmd/fyne/internal/commands/encode_test.go @@ -0,0 +1,14 @@ +package commands + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestEncodeXMLString(t *testing.T) { + assert.Equal(t, "", encodeXMLString("")) + assert.Equal(t, "Hello", encodeXMLString("Hello")) + assert.Equal(t, "Hi & bye", encodeXMLString("Hi & bye")) + assert.Equal(t, "Hi & bye", encodeXMLString("Hi & bye")) +} diff --git a/cmd/fyne/internal/commands/package-windows.go b/cmd/fyne/internal/commands/package-windows.go index 036f8a2451..0d2c3162e5 100644 --- a/cmd/fyne/internal/commands/package-windows.go +++ b/cmd/fyne/internal/commands/package-windows.go @@ -59,7 +59,7 @@ func (p *Packager) packageWindows() error { manifestFile, _ := os.Create(manifest) tplData := windowsData{ - Name: p.Name, + Name: encodeXMLString(p.Name), CombinedVersion: p.combinedVersion(), } err := templates.ManifestWindows.Execute(manifestFile, tplData) diff --git a/cmd/fyne/internal/commands/release.go b/cmd/fyne/internal/commands/release.go index 56aa33644c..1544d6038d 100644 --- a/cmd/fyne/internal/commands/release.go +++ b/cmd/fyne/internal/commands/release.go @@ -346,9 +346,9 @@ func (r *Releaser) packageWindowsRelease(outFile string) error { manifestData := struct{ AppID, Developer, DeveloperName, Name, Version string }{ AppID: r.AppID, // TODO read this info - Developer: r.developer, - DeveloperName: r.nameFromCertInfo(r.developer), - Name: r.Name, + Developer: encodeXMLString(r.developer), + DeveloperName: encodeXMLString(r.nameFromCertInfo(r.developer)), + Name: encodeXMLString(r.Name), Version: r.combinedVersion(), } err = templates.AppxManifestWindows.Execute(manifest, manifestData)