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

From: Eli Zaretskii <[email-masked]>
Date: Sat, 02 Sep 2017 15:45:00 +0300

unblock 24655 by 27726
thanks

> 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.)

Would someone please look into this bug?

In any case, I don't see why this should block Emacs 26.1, so I'm
unblocking it.

Thanks.