]> git.lizzy.rs Git - micro.git/commitdiff
Close fd properly in save
authorZachary Yedidia <zyedidia@gmail.com>
Fri, 30 Mar 2018 19:59:26 +0000 (15:59 -0400)
committerZachary Yedidia <zyedidia@gmail.com>
Fri, 30 Mar 2018 19:59:26 +0000 (15:59 -0400)
Fixes #1057

cmd/micro/buffer.go
cmd/micro/messenger.go

index d0dda6ef0a27db209f6df063348ebe6527db428f..6d0c641ba91c0e4d6b9bcbc4a0cc4624d661e0cb 100644 (file)
@@ -220,6 +220,7 @@ func NewBuffer(reader io.Reader, size int64, path string) *Buffer {
                // If either savecursor or saveundo is turned on, we need to load the serialized information
                // from ~/.config/micro/buffers
                file, err := os.Open(configDir + "/buffers/" + EscapePath(b.AbsPath))
+               defer file.Close()
                if err == nil {
                        var buffer SerializedBuffer
                        decoder := gob.NewDecoder(file)
@@ -242,7 +243,6 @@ func NewBuffer(reader io.Reader, size int64, path string) *Buffer {
                                }
                        }
                }
-               file.Close()
        }
 
        if !b.Settings["fastdirty"].(bool) {
@@ -505,6 +505,7 @@ func (b *Buffer) SaveAs(filename string) error {
        }
 
        f, err := os.OpenFile(absFilename, os.O_WRONLY|os.O_CREATE, 0644)
+       defer f.Close()
        if err != nil {
                return err
        }
index 29f96e38ace6e7b88c665ee648f44ffa7731a911..b55557af290832cbea0a799e47f2d8fd8ada3ce2 100644 (file)
@@ -604,11 +604,11 @@ func (m *Messenger) Display() {
 func (m *Messenger) LoadHistory() {
        if GetGlobalOption("savehistory").(bool) {
                file, err := os.Open(configDir + "/buffers/history")
+               defer file.Close()
                var decodedMap map[string][]string
                if err == nil {
                        decoder := gob.NewDecoder(file)
                        err = decoder.Decode(&decodedMap)
-                       file.Close()
 
                        if err != nil {
                                m.Error("Error loading history:", err)
@@ -638,6 +638,7 @@ func (m *Messenger) SaveHistory() {
                }
 
                file, err := os.Create(configDir + "/buffers/history")
+               defer file.Close()
                if err == nil {
                        encoder := gob.NewEncoder(file)
 
@@ -646,7 +647,6 @@ func (m *Messenger) SaveHistory() {
                                m.Error("Error saving history:", err)
                                return
                        }
-                       file.Close()
                }
        }
 }