From f2019fc676c2206bbdc53855e3bc4f1086676d3d Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 9 Nov 2019 21:56:30 +0200 Subject: Fix case-insensitive completion of buffer names * test/src/minibuf-tests.el (test-try-completion-ignore-case): New test, suggested by Stefan Monnier . * src/minibuf.c (Ftry_completion): Don't treat strings that are identical but for the case as if they were identical for the purposes of not counting the same string twice. This fixes case-insensitive completion when all the candidates are identical but for the letter-case. (Bug#11339) --- test/src/minibuf-tests.el | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test/src') diff --git a/test/src/minibuf-tests.el b/test/src/minibuf-tests.el index 12b018b8228..c64892822d6 100644 --- a/test/src/minibuf-tests.el +++ b/test/src/minibuf-tests.el @@ -399,5 +399,16 @@ (minibuf-tests--test-completion-regexp #'minibuf-tests--strings-to-symbol-hashtable)) +(ert-deftest test-try-completion-ignore-case () + (let ((completion-ignore-case t)) + (should (equal (try-completion "bar" '("bAr" "barfoo")) "bAr")) + (should (equal (try-completion "bar" '("bArfoo" "barbaz")) "bar")) + (should (equal (try-completion "bar" '("bArfoo" "barbaz")) + (try-completion "bar" '("barbaz" "bArfoo")))) + ;; bug#11339 + (should (equal (try-completion "baz" '("baz" "bAz")) "baz")) ;And not `t'! + (should (equal (try-completion "baz" '("bAz" "baz")) + (try-completion "baz" '("baz" "bAz")))))) + ;;; minibuf-tests.el ends here -- cgit v1.2.1