From 0b0c99f1f536a27925c7e3bc67d11972999aad14 Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Wed, 19 May 2021 14:58:00 -0400 Subject: [PATCH] Warn for readonly instead of setting option Fixes #2106 --- cmd/micro/micro.go | 3 ++- internal/buffer/buffer.go | 5 +++-- internal/buffer/message.go | 10 ++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/cmd/micro/micro.go b/cmd/micro/micro.go index 049be337..5427b707 100644 --- a/cmd/micro/micro.go +++ b/cmd/micro/micro.go @@ -319,6 +319,8 @@ func main() { screen.TermMessage(err) } + action.InitGlobals() + buffer.SetMessager(action.InfoBar) args := flag.Args() b := LoadInput(args) @@ -329,7 +331,6 @@ func main() { } action.InitTabs(b) - action.InitGlobals() err = config.RunPluginFn("init") if err != nil { diff --git a/internal/buffer/buffer.go b/internal/buffer/buffer.go index 034e28e5..99921dfa 100644 --- a/internal/buffer/buffer.go +++ b/internal/buffer/buffer.go @@ -252,8 +252,9 @@ func NewBufferFromFileAtLoc(path string, btype BufType, cursorLoc Loc) (*Buffer, buf = NewBuffer(file, util.FSize(file), filename, cursorLoc, btype) } - if readonly { - buf.SetOptionNative("readonly", true) + if readonly && prompt != nil { + prompt.Message("Warning: file is readonly - sudo will be attempted when saving") + // buf.SetOptionNative("readonly", true) } return buf, nil diff --git a/internal/buffer/message.go b/internal/buffer/message.go index 31c96326..dfff37b5 100644 --- a/internal/buffer/message.go +++ b/internal/buffer/message.go @@ -82,3 +82,13 @@ func (b *Buffer) ClearMessages(owner string) { func (b *Buffer) ClearAllMessages() { b.Messages = make([]*Message, 0) } + +type Messager interface { + Message(msg ...interface{}) +} + +var prompt Messager + +func SetMessager(m Messager) { + prompt = m +}