Subject: bug#33428: 27.0.50; edebug-print-{length,level} customization types

From: Stephen Berman <[email-masked]>
Date: Mon, 19 Nov 2018 11:32:51 +0100

The doc strings of edebug-print-length and edebug-print-level imply that
nil is a valid value and indeed it is.  Yet trying to set the value to
nil via `M-x customize-option' fails with the error "This field should
contain an integer", because nil does not fit the customization type
:integer used in the definitions of these user options.  It's been like
this since they were changed from defvars to defcustoms more than 20
years ago (though "If non-nil" was added to the doc strings only a
little less than 10 years ago), so should the fix (below) go into
master, or is it on the order of a documentation fix and suitable for
the release branch?

diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 15f68a62ac..b50b0383da 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -192,11 +192,11 @@ edebug-continue-kbd-macro
 
 (defcustom edebug-print-length 50
   "If non-nil, default value of `print-length' for printing results in Edebug."
-  :type 'integer
+  :type '(choice integer (const nil))
   :group 'edebug)
 (defcustom edebug-print-level 50
   "If non-nil, default value of `print-level' for printing results in Edebug."
-  :type 'integer
+  :type '(choice integer (const nil))
   :group 'edebug)
 (defcustom edebug-print-circle t
   "If non-nil, default value of `print-circle' for printing results in Edebug."

In GNU Emacs 27.0.50 (build 13, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2018-11-18 built on rosalinde
Repository revision: 5d140800398287c20230dda79162a7c40016d88e
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12001000
System Description: 8.3