emacs: Use `cl-lib' instead of deprecated `cl'
authorJonas Bernoulli <jonas@bernoul.li>
Sat, 25 Apr 2020 20:18:07 +0000 (22:18 +0200)
committerDavid Bremner <david@tethera.net>
Mon, 27 Apr 2020 10:36:10 +0000 (07:36 -0300)
commit11ac932a4503872c19987b843d58513c4b9ef76f
tree6de8150bae61955b2b25e860390e9e4b3367596b
parent7b756d1e3885b70e81647a85432e0f2d043167c9
emacs: Use `cl-lib' instead of deprecated `cl'

Starting with Emacs 27 the old `cl' implementation is finally
considered obsolete.  Previously its use was strongly discouraged
at run-time but one was still allowed to use it at compile-time.

For the most part the transition is very simple and boils down to
adding the "cl-" prefix to some symbols.  A few replacements do not
follow that simple pattern; e.g. `first' is replaced with `car',
even though the alias `cl-first' exists, because the latter is not
idiomatic emacs-lisp.

In a few cases we start using `pcase-let' or `pcase-lambda' instead
of renaming e.g. `first' to `car'.  That way we can remind the reader
of the meaning of the various parts of the data that is being
deconstructed.

An obsolete `lexical-let' and a `lexical-let*' are replaced with their
regular variants `let' and `let*' even though we do not at the same
time enable `lexical-binding' for that file.  That is the right thing
to do because it does not actually make a difference in those cases
whether lexical bindings are used or not, and because this should be
enabled in a separate commit.

We need to explicitly depend on the `cl-lib' package because Emacs
24.1 and 24.2 lack that library.  When using these releases we end
up using the backport from GNU Elpa.

We need to explicitly require the `pcase' library because
`pcase-dolist' was not autoloaded until Emacs 25.1.
16 files changed:
emacs/notmuch-company.el
emacs/notmuch-draft.el
emacs/notmuch-hello.el
emacs/notmuch-jump.el
emacs/notmuch-lib.el
emacs/notmuch-maildir-fcc.el
emacs/notmuch-mua.el
emacs/notmuch-parser.el
emacs/notmuch-pkg.el.tmpl
emacs/notmuch-show.el
emacs/notmuch-tag.el
emacs/notmuch-tree.el
emacs/notmuch.el
test/T450-emacs-show.sh
test/emacs-attachment-warnings.el
test/test-lib.el