aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorBasil L. Contovounesios2018-04-29 15:37:45 +0100
committerNoam Postavsky2018-05-02 20:18:07 -0400
commitf2c74543edc7e8d07655b459ba8898eec9b6d4e8 (patch)
treeb6612a1370f9c20399e8fa32ff50be643a0ecabd /test
parent05e9477ab5d5dba1b960415d60b9957caa90da48 (diff)
downloademacs-f2c74543edc7e8d07655b459ba8898eec9b6d4e8.tar.gz
emacs-f2c74543edc7e8d07655b459ba8898eec9b6d4e8.zip
Fix off-by-one history pruning (bug#31211)
* lisp/subr.el (add-to-history): Clarify docstring. Protect against negative history-length and unnecessary variable modification, as per read_minibuf. * lisp/ido.el (ido-record-command): * lisp/international/mule-cmds.el (deactivate-input-method): (set-language-environment-input-method): * lisp/isearch.el (isearch-done): * lisp/minibuffer.el (read-file-name-default): * lisp/net/eww.el (eww-save-history): * lisp/simple.el (edit-and-eval-command, repeat-complex-command): (command-execute, kill-new, push-mark): * src/callint.c (Fcall_interactively): * src/minibuf.c (read_minibuf): Delegate to add-to-history. * test/lisp/simple-tests.el (command-execute-prune-command-history): * test/src/callint-tests.el (call-interactively-prune-command-history): New tests.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/simple-tests.el11
-rw-r--r--test/src/callint-tests.el8
2 files changed, 19 insertions, 0 deletions
diff --git a/test/lisp/simple-tests.el b/test/lisp/simple-tests.el
index 64b341bd469..7a10df20587 100644
--- a/test/lisp/simple-tests.el
+++ b/test/lisp/simple-tests.el
@@ -448,6 +448,17 @@ See Bug#21722."
448 (call-interactively #'eval-expression) 448 (call-interactively #'eval-expression)
449 (should (equal (current-message) "66 (#o102, #x42, ?B)")))))) 449 (should (equal (current-message) "66 (#o102, #x42, ?B)"))))))
450 450
451(ert-deftest command-execute-prune-command-history ()
452 "Check that Bug#31211 is fixed."
453 (let ((history-length 1)
454 (command-history ()))
455 (dotimes (_ (1+ history-length))
456 (command-execute "" t))
457 (should (= (length command-history) history-length))))
458
459
460;;; `line-number-at-pos'
461
451(ert-deftest line-number-at-pos-in-widen-buffer () 462(ert-deftest line-number-at-pos-in-widen-buffer ()
452 (let ((target-line 3)) 463 (let ((target-line 3))
453 (with-temp-buffer 464 (with-temp-buffer
diff --git a/test/src/callint-tests.el b/test/src/callint-tests.el
index 9a812223ad0..feee9b692b7 100644
--- a/test/src/callint-tests.el
+++ b/test/src/callint-tests.el
@@ -43,4 +43,12 @@
43 (list a b)))) 43 (list a b))))
44 '("a" "b")))) 44 '("a" "b"))))
45 45
46(ert-deftest call-interactively-prune-command-history ()
47 "Check that Bug#31211 is fixed."
48 (let ((history-length 1)
49 (command-history ()))
50 (dotimes (_ (1+ history-length))
51 (call-interactively #'ignore t))
52 (should (= (length command-history) history-length))))
53
46;;; callint-tests.el ends here 54;;; callint-tests.el ends here