Subject: bug#27726: 26.0.50; plist functions give confusing errors on invalid plists

From: Lars Ingebrigtsen <[email-masked]>
Date: Sun, 16 Jul 2017 21:50:27 +0200

(plist-put '(:foo 1 :bar) :zot 2)

Debugger entered--Lisp error: (wrong-type-argument listp (:foo 1 :bar))
  plist-put((:foo 1 :bar) :zot 2)
  eval((plist-put '(:foo 1 :bar) :zot 2) nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

The error seems to say that '(:foo 1 :bar) isn't a list.  But the
problem is that it's not a valid plist, since it has an odd number of
elements.

So I think there should be a different error being signalled here.  (And
there isn't really a backwards compatibility issue here of introducing a
new error symbol: Emacs 26.1 started signalling errors for these lists;
previously it was fine having odd plists.)

In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2017-07-16 built on mouse
Repository revision: 45892db6f53cccc045da9c7215b467617c067f04
Windowing system distributor 'The X.Org Foundation', version 11.0.11903000
System Description:	Ubuntu 17.04

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no