From 023045d66ddef29afa17245d4de14b9d77915f5a Mon Sep 17 00:00:00 2001 From: Dave Love Date: Fri, 5 Jan 2001 16:56:21 +0000 Subject: [PATCH] butlast, nbutlast. --- etc/NEWS | 4 ++++ lispref/lists.texi | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 385c811d8a1..0259fb2fa6e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2105,6 +2105,10 @@ long promised. * Lisp changes made after edition 2.6 of the Emacs Lisp Manual, (Display-related features are described in a page of their own below.) ++++ +** Functions `butlast' and `nbutlast' for removing trailing elements +from a list are now available without requiring the CL package. + +++ ** The new user-option `even-window-heights' can be set to nil to prevent `display-buffer' from evening out window heights. diff --git a/lispref/lists.texi b/lispref/lists.texi index 222f723944f..6ae9e68d402 100644 --- a/lispref/lists.texi +++ b/lispref/lists.texi @@ -422,6 +422,20 @@ This is the same as @code{(cdr (cdr @var{cons-cell}))} or @code{(nthcdr 2 @var{cons-cell})}. @end defun +@defun butlast x &optional n +This function returns the list @var{x} with the last element, +or the last @var{n} elements, removed. If @var{n} is greater +than zero it makes a copy of the list so as not to damage the +original list. In general, @code{(append (butlast @var{x} @var{n}) +(last @var{x} @var{n}))} will return a list equal to @var{x}. +@end defun + +@defun nbutlast x &optional n +This is a version of @code{butlast} that works by destructively +modifying the @code{cdr} of the appropriate element, rather than +making a copy of the list. +@end defun + @node Building Lists @comment node-name, next, previous, up @section Building Cons Cells and Lists -- 2.39.2