aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Teirlinck2005-06-24 01:20:14 +0000
committerLuc Teirlinck2005-06-24 01:20:14 +0000
commit7f72ddd58d4ea61fbbb247f4789aff36adecff58 (patch)
tree5089f83b97bfb1787ec9368359d8c8e29a71f787
parent528b6abcb4703f1825d8e323152f8b93b4bb9ecc (diff)
downloademacs-7f72ddd58d4ea61fbbb247f4789aff36adecff58.tar.gz
emacs-7f72ddd58d4ea61fbbb247f4789aff36adecff58.zip
(ring-elements): Make it return a list of the elements of RING in
order, and without bogus nil elements.
-rw-r--r--lisp/emacs-lisp/ring.el9
1 files changed, 7 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el
index fce07953ba9..6e0f9cd70b4 100644
--- a/lisp/emacs-lisp/ring.el
+++ b/lisp/emacs-lisp/ring.el
@@ -155,8 +155,13 @@ will be performed."
155 (aref vec (ring-index index hd ln (length vec)))))) 155 (aref vec (ring-index index hd ln (length vec))))))
156 156
157(defun ring-elements (ring) 157(defun ring-elements (ring)
158 "Return a list of the elements of RING." 158 "Return a list of the elements of RING, in order, newest first."
159 (mapcar #'identity (cddr ring))) 159 (let ((start (car ring))
160 (size (ring-size ring))
161 (vect (cddr ring))
162 lst)
163 (dotimes (var (cadr ring) lst)
164 (push (aref vect (mod (+ start var) size)) lst))))
160 165
161;;; provide ourself: 166;;; provide ourself:
162 167