diff --git a/module/buffer.lua b/module/buffer.lua index 6acf1b6..b6805a3 100644 --- a/module/buffer.lua +++ b/module/buffer.lua @@ -294,9 +294,14 @@ function buffer:read(...) elseif char == "B" then -- down hIndex = hIndex - 1 io.write("\27[u"..(" "):rep(buffer:len()+1)) + if hIndex == 0 then + hIndex = hIndex - 1 + buffer = "" + end buffer = self.history[1+#self.history-hIndex] or buffer pos = 1 end + hIndex = math.max(math.min(hIndex,#self.history),0) end elseif char == "\8" then if #buffer > 0 and pos <= #buffer then