GNU bug report logs - #19685
[PATCH] define-minor-mode docstring generation bug

Previous Next

Package: emacs;

Reported by: Kelly Dean <kelly <at> prtime.org>

Date: Sun, 25 Jan 2015 08:54:02 UTC

Severity: normal

Tags: patch

Done: Kelly Dean <kelly <at> prtime.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Kelly Dean <kelly <at> prtime.org>
To: 19685 <at> debbugs.gnu.org
Subject: bug#19685: [PATCH] define-minor-mode docstring generation bug
Date: Sun, 25 Jan 2015 08:52:42 +0000
[Message part 1 (text/plain, inline)]
Try this:
(define-minor-mode foo "foo" :global t)

The variable it creates includes a docstring with

⌜Setting this variable directly does not take effect⌝.

That's a bug.

The attached dmm-docstring-gen-bug.patch fixes it.

Also attached is dmm-docstring-clarification.patch. (Not a bug, but might as well include it here.)

[dmm-docstring-gen-bug.patch (text/x-diff, inline)]
--- emacs-24.4/lisp/emacs-lisp/easy-mmode.el
+++ emacs-24.4/lisp/emacs-lisp/easy-mmode.el
@@ -158,7 +158,8 @@
   ;; Allow skipping the first three args.
   (cond
    ((keywordp init-value)
-    (setq body `(,init-value ,lighter ,keymap ,@body)
+    (setq body (if keymap `(,init-value ,lighter ,keymap ,@body)
+		 `(,init-value ,lighter))
 	  init-value nil lighter nil keymap nil))
    ((keywordp lighter)
     (setq body `(,lighter ,keymap ,@body) lighter nil keymap nil))
[dmm-docstring-clarification.patch (text/x-diff, inline)]
--- emacs-24.4/lisp/emacs-lisp/easy-mmode.el
+++ emacs-24.4/lisp/emacs-lisp/easy-mmode.el
@@ -114,9 +114,11 @@
 BODY contains code to execute each time the mode is enabled or disabled.
   It is executed after toggling the mode, and before running MODE-hook.
   Before the actual body code, you can write keyword arguments, i.e.
-  alternating keywords and values.  These following special keywords
-  are supported (other keywords are passed to `defcustom' if the minor
-  mode is global):
+  alternating keywords and values.  If you provide BODY, then you must
+  provide INIT-VALUE, LIGHTER, and KEYMAP, or provide at least one
+  keyword argument, or both; otherwise, BODY would be misinterpreted.
+  The following special keywords are supported (other keywords are passed
+  to `defcustom' if the minor mode is global):
 
 :group GROUP	Custom group name to use in all generated `defcustom' forms.
 		Defaults to MODE without the possible trailing \"-mode\".

This bug report was last modified 10 years and 156 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.