GNU bug report logs - #50704
Feature request: Add ensure-list in cl-lib

Previous Next

Package: emacs;

Reported by: Clément Pit-Claudel <cpitclaudel <at> gmail.com>

Date: Mon, 20 Sep 2021 19:44:01 UTC

Severity: wishlist

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
To: 50704 <at> debbugs.gnu.org
Subject: bug#50704: Feature request: Add ensure-list in cl-lib
Date: Mon, 20 Sep 2021 15:43:30 -0400
Hi all,

There are 40+ instances of the following code pattern in Emacs' code base, and many more in packages:

   (if (listp x) x (list x))

It's easy to find single-line instances of it using the regexp [(]if [(]listp .*[(]list .

This pattern is called "ensure-list" in CL:

  (defun ensure-list (thing)
    "Returns THING as a list.

  If THING is already a list (as per listp) it is returned,
  otherwise a one element list containing THING is returned."
    (if (listp thing)
        thing
        (list thing)))

I would like to add a similar function in Emacs, since it comes up so often.  Is that an acceptable change?  

If so:
- Which cl-*.el file should it go into, and where in that file?  
- Should it be a defun or a define-inline?  
- And once it is introduced, should the 40-some instances that could use it be updated, or left as-is?  
- Finally, where should it be documented?

Cheers,
Clément.




This bug report was last modified 3 years and 304 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.