mirror of
https://github.com/zyedidia/micro.git
synced 2026-03-15 21:37:09 +09:00
serialize: Perform write process safe
This commit is contained in:
@@ -1,15 +1,13 @@
|
|||||||
package buffer
|
package buffer
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"encoding/gob"
|
"encoding/gob"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"golang.org/x/text/encoding"
|
|
||||||
|
|
||||||
"github.com/zyedidia/micro/v2/internal/config"
|
"github.com/zyedidia/micro/v2/internal/config"
|
||||||
"github.com/zyedidia/micro/v2/internal/util"
|
"github.com/zyedidia/micro/v2/internal/util"
|
||||||
)
|
)
|
||||||
@@ -31,16 +29,18 @@ func (b *Buffer) Serialize() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
name := util.DetermineEscapePath(filepath.Join(config.ConfigDir, "buffers"), b.AbsPath)
|
var buf bytes.Buffer
|
||||||
|
err := gob.NewEncoder(&buf).Encode(SerializedBuffer{
|
||||||
return overwriteFile(name, encoding.Nop, func(file io.Writer) error {
|
b.EventHandler,
|
||||||
err := gob.NewEncoder(file).Encode(SerializedBuffer{
|
b.GetActiveCursor().Loc,
|
||||||
b.EventHandler,
|
b.ModTime,
|
||||||
b.GetActiveCursor().Loc,
|
})
|
||||||
b.ModTime,
|
if err != nil {
|
||||||
})
|
|
||||||
return err
|
return err
|
||||||
}, false)
|
}
|
||||||
|
|
||||||
|
name := util.DetermineEscapePath(filepath.Join(config.ConfigDir, "buffers"), b.AbsPath)
|
||||||
|
return util.SafeWrite(name, buf.Bytes(), true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unserialize loads the buffer info from config.ConfigDir/buffers
|
// Unserialize loads the buffer info from config.ConfigDir/buffers
|
||||||
|
|||||||
Reference in New Issue
Block a user