From: Luc Teirlinck Date: Fri, 24 Jun 2005 01:20:14 +0000 (+0000) Subject: (ring-elements): Make it return a list of the elements of RING in X-Git-Tag: emacs-pretest-22.0.90~8676 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7f72ddd58d4ea61fbbb247f4789aff36adecff58;p=emacs.git (ring-elements): Make it return a list of the elements of RING in order, and without bogus nil elements. --- 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." (aref vec (ring-index index hd ln (length vec)))))) (defun ring-elements (ring) - "Return a list of the elements of RING." - (mapcar #'identity (cddr ring))) + "Return a list of the elements of RING, in order, newest first." + (let ((start (car ring)) + (size (ring-size ring)) + (vect (cddr ring)) + lst) + (dotimes (var (cadr ring) lst) + (push (aref vect (mod (+ start var) size)) lst)))) ;;; provide ourself: