From 4ef6c7d5c02563b9edd490bcdc575888d598e3a1 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Sun, 6 Mar 2022 14:38:27 -0400 Subject: [PATCH] fix: hilbish.read overriding history --- api.go | 2 +- main.go | 2 +- rl.go | 18 +++++++++++------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/api.go b/api.go index d9dd755..2ecac5d 100644 --- a/api.go +++ b/api.go @@ -206,7 +206,7 @@ func getenv(key, fallback string) string { // --- @param prompt string func hlread(L *lua.LState) int { luaprompt := L.CheckString(1) - lualr := newLineReader("") + lualr := newLineReader("", true) lualr.SetPrompt(luaprompt) input, err := lualr.Read() diff --git a/main.go b/main.go index f66128f..a248f88 100644 --- a/main.go +++ b/main.go @@ -114,7 +114,7 @@ func main() { go handleSignals() luaInit() - lr = newLineReader("") + lr = newLineReader("", false) // If user's config doesn't exixt, if _, err := os.Stat(defaultConfPath); os.IsNotExist(err) && *configflag == defaultConfPath { // Read default from current directory diff --git a/rl.go b/rl.go index a994adb..9118f5f 100644 --- a/rl.go +++ b/rl.go @@ -15,15 +15,19 @@ type lineReader struct { var fileHist *fileHistory // other gophers might hate this naming but this is local, shut up -func newLineReader(prompt string) *lineReader { +func newLineReader(prompt string, noHist bool) *lineReader { rl := readline.NewInstance() - fh, err := newFileHistory() - fileHist = fh // go stupid - if err != nil { - panic(err) + // we don't mind hilbish.read rl instances having completion, + // but it cant have shared history + if !noHist { + fh, err := newFileHistory() + fileHist = fh // go stupid + if err != nil { + panic(err) + } + rl.SetHistoryCtrlR("file", fileHist) + rl.HistoryAutoWrite = false } - rl.SetHistoryCtrlR("file", fileHist) - rl.HistoryAutoWrite = false rl.ShowVimMode = false rl.ViModeCallback = func(mode readline.ViMode) { modeStr := ""