浏览代码

fix: only add to history of different

if the last item in history is the same as the one being added, skip it.
this reduces the number of history entries. the behaviour is similar to
how most shells maintain history
Michael Yang 4 月之前
父节点
当前提交
7ccdc98a5f
共有 1 个文件被更改,包括 7 次插入5 次删除
  1. 7 5
      readline/history.go

+ 7 - 5
readline/history.go

@@ -81,11 +81,13 @@ func (h *History) Init() error {
 }
 
 func (h *History) Add(s string) {
-	h.Buf.Add(s)
-	h.Compact()
-	h.Pos = h.Size()
-	if h.Autosave {
-		_ = h.Save()
+	if latest, _ := h.Buf.Get(h.Size() - 1); latest != s {
+		h.Buf.Add(s)
+		h.Compact()
+		h.Pos = h.Size()
+		if h.Autosave {
+			_ = h.Save()
+		}
 	}
 }