[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 4e77ff0: Fix imenu--sort-by-position for non-pairs
From: |
Nicolas Petton |
Subject: |
[Emacs-diffs] master 4e77ff0: Fix imenu--sort-by-position for non-pairs parameters (bug#26457) |
Date: |
Thu, 13 Apr 2017 05:44:35 -0400 (EDT) |
branch: master
commit 4e77ff0d45b88cade7836c01344cd8d892adfde8
Author: Damien Cassou <address@hidden>
Commit: Nicolas Petton <address@hidden>
Fix imenu--sort-by-position for non-pairs parameters (bug#26457)
* lisp/imenu.el (imenu--sort-by-position): Fix to accept lists beyond
pairs.
* test/lisp/imenu-tests.el: Add 2 tests for `imenu--sort-by-position`.
---
lisp/imenu.el | 7 ++++++-
test/lisp/imenu-tests.el | 10 ++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/lisp/imenu.el b/lisp/imenu.el
index 0f47a92..c1fd400 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -499,7 +499,12 @@ An item looks like (NAME . POSITION)."
(string-lessp (car item1) (car item2)))
(defun imenu--sort-by-position (item1 item2)
- (< (cdr item1) (cdr item2)))
+ "Comparison function to sort items depending on their position.
+Return non-nil if and only if ITEM1's position is lower than ITEM2's
+position."
+ (if (listp (cdr item1))
+ (< (cadr item1) (cadr item2))
+ (< (cdr item1) (cdr item2))))
(defun imenu--relative-position (&optional reverse)
"Support function to calculate relative position in buffer.
diff --git a/test/lisp/imenu-tests.el b/test/lisp/imenu-tests.el
index 480368f..9309094 100644
--- a/test/lisp/imenu-tests.el
+++ b/test/lisp/imenu-tests.el
@@ -83,6 +83,16 @@ function ABC_D()
}
" '("a" "b" "c" "ABC_D"))
+(ert-deftest imenu--sort-by-position-pairs ()
+ (should (imenu--sort-by-position '("a" . 2) '("a" . 3)))
+ (should-not (imenu--sort-by-position '("a" . 3) '("a" . 2))))
+
+;; Regression test for bug#26457: 25.2; Cannot pass a function to
+;; imenu-generic-expression
+(ert-deftest imenu--sort-by-position-list ()
+ (should (imenu--sort-by-position '("a" 2 nil) '("a" 3 nil)))
+ (should-not (imenu--sort-by-position '("a" 3 nil) '("a" 2 nil))))
+
(provide 'imenu-tests)
;;; imenu-tests.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 4e77ff0: Fix imenu--sort-by-position for non-pairs parameters (bug#26457),
Nicolas Petton <=