diff options
| author | Luc Teirlinck | 2005-06-24 01:20:14 +0000 |
|---|---|---|
| committer | Luc Teirlinck | 2005-06-24 01:20:14 +0000 |
| commit | 7f72ddd58d4ea61fbbb247f4789aff36adecff58 (patch) | |
| tree | 5089f83b97bfb1787ec9368359d8c8e29a71f787 | |
| parent | 528b6abcb4703f1825d8e323152f8b93b4bb9ecc (diff) | |
| download | emacs-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.el | 9 |
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 | ||