unicode_input: Only serialize favorites if no user config exists
This commit is contained in:
parent
a7b4d07601
commit
c2fc4eadc8
@ -92,6 +92,7 @@ func serialize_favorites(favs []rune) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var loaded_favorites []rune
|
var loaded_favorites []rune
|
||||||
|
var favorites_loaded_from_user_config bool
|
||||||
|
|
||||||
func favorites_path() string {
|
func favorites_path() string {
|
||||||
return filepath.Join(utils.ConfigDir(), "unicode-input-favorites.conf")
|
return filepath.Join(utils.ConfigDir(), "unicode-input-favorites.conf")
|
||||||
@ -102,8 +103,10 @@ func load_favorites(refresh bool) []rune {
|
|||||||
raw, err := os.ReadFile(favorites_path())
|
raw, err := os.ReadFile(favorites_path())
|
||||||
if err == nil {
|
if err == nil {
|
||||||
loaded_favorites = parse_favorites(utils.UnsafeBytesToString(raw))
|
loaded_favorites = parse_favorites(utils.UnsafeBytesToString(raw))
|
||||||
|
favorites_loaded_from_user_config = true
|
||||||
} else {
|
} else {
|
||||||
loaded_favorites = DEFAULT_SET
|
loaded_favorites = DEFAULT_SET
|
||||||
|
favorites_loaded_from_user_config = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return loaded_favorites
|
return loaded_favorites
|
||||||
@ -427,19 +430,21 @@ func (self *handler) handle_favorites_key_event(event *loop.KeyEvent) {
|
|||||||
self.lp.Quit(1)
|
self.lp.Quit(1)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
raw := serialize_favorites(load_favorites(false))
|
|
||||||
fp := favorites_path()
|
fp := favorites_path()
|
||||||
err = os.MkdirAll(filepath.Dir(fp), 0o755)
|
if len(load_favorites(false)) == 0 || !favorites_loaded_from_user_config {
|
||||||
if err != nil {
|
raw := serialize_favorites(load_favorites(false))
|
||||||
self.err = fmt.Errorf("Failed to create config directory to store favorites in: %w", err)
|
err = os.MkdirAll(filepath.Dir(fp), 0o755)
|
||||||
self.lp.Quit(1)
|
if err != nil {
|
||||||
return
|
self.err = fmt.Errorf("Failed to create config directory to store favorites in: %w", err)
|
||||||
}
|
self.lp.Quit(1)
|
||||||
err = utils.AtomicUpdateFile(fp, utils.UnsafeStringToBytes(raw), 0o600)
|
return
|
||||||
if err != nil {
|
}
|
||||||
self.err = fmt.Errorf("Failed to write to favorites file %s with error: %w", fp, err)
|
err = utils.AtomicUpdateFile(fp, utils.UnsafeStringToBytes(raw), 0o600)
|
||||||
self.lp.Quit(1)
|
if err != nil {
|
||||||
return
|
self.err = fmt.Errorf("Failed to write to favorites file %s with error: %w", fp, err)
|
||||||
|
self.lp.Quit(1)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
err = self.lp.SuspendAndRun(func() error {
|
err = self.lp.SuspendAndRun(func() error {
|
||||||
cmd := exec.Command(exe, "edit-in-kitty", "--type=overlay", fp)
|
cmd := exec.Command(exe, "edit-in-kitty", "--type=overlay", fp)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user