Subject: bug#62207: 29.0.60; Trying to remove non-existent key binding instead adds a binding

From: Jonas Bernoulli <[email-masked]>
Date: Wed, 15 Mar 2023 17:07:42 +0100

(keymap-unset map key t) is supposed to remove a binding completely,
and that works if there actually is a binding:

  (let ((map (make-sparse-keymap)))
    (keymap-set map "i" 'bound)
    (keymap-unset map "i" t)
    map)
  => (keymap)

However if you try to remove a binding that does not actually exist,
then the opposite happens, a "nil binding" is *added*:

  (let ((map (make-sparse-keymap)))
    (keymap-unset map "i" t)
    map)
  => (keymap (105))