From c040bdedee928c47d773629dfea26d7abdb0d5e3 Mon Sep 17 00:00:00 2001 From: "5684185+vsariola@users.noreply.github.com" <5684185+vsariola@users.noreply.github.com> Date: Sun, 27 Aug 2023 11:29:55 +0300 Subject: [PATCH] fix: when just saving a file, open the file in write mode (fixes #99) --- tracker/gioui/files.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tracker/gioui/files.go b/tracker/gioui/files.go index 3bf0afc..6abaf70 100644 --- a/tracker/gioui/files.go +++ b/tracker/gioui/files.go @@ -32,7 +32,7 @@ func (t *Tracker) OpenSongFile(forced bool) { func (t *Tracker) SaveSongFile() bool { if p := t.FilePath(); p != "" { - if f, err := os.Open(p); err == nil { + if f, err := os.OpenFile(p, os.O_WRONLY|os.O_CREATE, 0644); err == nil { return t.saveSong(f) } } @@ -126,8 +126,14 @@ func (t *Tracker) saveSong(w io.WriteCloser) bool { t.Alert.Update(fmt.Sprintf("Error marshaling a song file: %v", err), Error, time.Second*3) return false } - w.Write(contents) - w.Close() + if _, err := w.Write(contents); err != nil { + t.Alert.Update(fmt.Sprintf("Error writing to file: %v", err), Error, time.Second*3) + return false + } + if err := w.Close(); err != nil { + t.Alert.Update(fmt.Sprintf("Error closing file: %v", err), Error, time.Second*3) + return false + } t.SetFilePath(path) t.SetChangedSinceSave(false) return true