From 7b5bc8fe37b896947ca1c72e9d60724a2c51aeac Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Wed, 12 Feb 2020 13:18:59 -0500 Subject: [PATCH] Fix issue with global/local settings --- internal/buffer/buffer.go | 6 +++++- internal/config/settings.go | 10 +++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/internal/buffer/buffer.go b/internal/buffer/buffer.go index 1f761e97..e7aec4a3 100644 --- a/internal/buffer/buffer.go +++ b/internal/buffer/buffer.go @@ -215,7 +215,8 @@ func NewBuffer(r io.Reader, size int64, path string, startcursor Loc, btype BufT b.Settings = config.DefaultCommonSettings() for k, v := range config.GlobalSettings { - if _, ok := b.Settings[k]; ok { + if _, ok := config.DefaultGlobalOnlySettings[k]; !ok { + // make sure setting is not global-only b.Settings[k] = v } } @@ -425,6 +426,9 @@ func (b *Buffer) ReOpen() error { b.EventHandler.ApplyDiff(txt) err = b.UpdateModTime() + if !b.Settings["fastdirty"].(bool) { + calcHash(b, &b.origHash) + } b.isModified = false b.RelocateCursors() return err diff --git a/internal/config/settings.go b/internal/config/settings.go index a9e8b70c..4d82c960 100644 --- a/internal/config/settings.go +++ b/internal/config/settings.go @@ -165,14 +165,14 @@ func RegisterGlobalOptionPlug(pl string, name string, defaultvalue interface{}) // RegisterGlobalOption creates a new global-only option func RegisterGlobalOption(name string, defaultvalue interface{}) error { if v, ok := GlobalSettings[name]; !ok { - defaultGlobalSettings[name] = defaultvalue + DefaultGlobalOnlySettings[name] = defaultvalue GlobalSettings[name] = defaultvalue err := WriteSettings(filepath.Join(ConfigDir, "settings.json")) if err != nil { return errors.New("Error writing settings.json file: " + err.Error()) } } else { - defaultGlobalSettings[name] = v + DefaultGlobalOnlySettings[name] = v } return nil } @@ -244,7 +244,7 @@ func DefaultCommonSettings() map[string]interface{} { // a list of settings that should only be globally modified and their // default values -var defaultGlobalSettings = map[string]interface{}{ +var DefaultGlobalOnlySettings = map[string]interface{}{ "autosave": float64(0), "colorscheme": "default", "infobar": true, @@ -270,7 +270,7 @@ func DefaultGlobalSettings() map[string]interface{} { for k, v := range defaultCommonSettings { globalsettings[k] = v } - for k, v := range defaultGlobalSettings { + for k, v := range DefaultGlobalOnlySettings { globalsettings[k] = v } return globalsettings @@ -283,7 +283,7 @@ func DefaultAllSettings() map[string]interface{} { for k, v := range defaultCommonSettings { allsettings[k] = v } - for k, v := range defaultGlobalSettings { + for k, v := range DefaultGlobalOnlySettings { allsettings[k] = v } return allsettings -- 2.44.0