From cf921eefab289bcd8603465b8d8f237167f42aff Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Wed, 1 Dec 2010 23:33:25 +0100 Subject: [PATCH] Implement rtree-extract. --- lisp/rtree.el | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lisp/rtree.el b/lisp/rtree.el index 8913d321a..87558d7ce 100644 --- a/lisp/rtree.el +++ b/lisp/rtree.el @@ -71,6 +71,9 @@ (defmacro rtree-right (node) `(cddr ,node)) +(defmacro rtree-range (node) + `(car ,node)) + (defsubst rtree-normalise-range (range) (when (numberp range) (setq range (cons range range))) @@ -106,6 +109,18 @@ (and (rtree-right tree) (rtree-memq (rtree-right tree) number))))) +(defun rtree-extract (tree) + "Convert TREE to range form." + (nconc (and (rtree-left tree) + (rtree-extract (rtree-left tree))) + (list + (if (= (rtree-low tree) + (rtree-high tree)) + (rtree-low tree) + (rtree-range tree))) + (and (rtree-right tree) + (rtree-extract (rtree-right tree))))) + (provide 'rtree) ;;; rtree.el ends here -- 2.25.1