actions: saveas: Fix crash at access without permission (#3082)

This commit is contained in:
Jöran Karl 2023-12-10 22:52:22 +01:00 committed by GitHub
parent d8e9d61a95
commit 2d82362a66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -793,25 +793,26 @@ func (h *BufPane) SaveAsCB(action string, callback func()) bool {
filename := strings.Join(args, " ")
fileinfo, err := os.Stat(filename)
if err != nil {
if os.IsNotExist(err) {
if errors.Is(err, fs.ErrNotExist) || errors.Is(err, fs.ErrPermission) {
noPrompt := h.saveBufToFile(filename, action, callback)
if noPrompt {
h.completeAction(action)
return
}
}
}
InfoBar.YNPrompt(
fmt.Sprintf("the file %s already exists in the directory, would you like to overwrite? Y/n", fileinfo.Name()),
func(yes, canceled bool) {
if yes && !canceled {
noPrompt := h.saveBufToFile(filename, action, callback)
if noPrompt {
h.completeAction(action)
} else {
InfoBar.YNPrompt(
fmt.Sprintf("The file %s already exists in the directory, would you like to overwrite? Y/n", fileinfo.Name()),
func(yes, canceled bool) {
if yes && !canceled {
noPrompt := h.saveBufToFile(filename, action, callback)
if noPrompt {
h.completeAction(action)
}
}
}
},
)
},
)
}
}
})
return false