summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Stephani <phst@google.com>2017-10-08 17:25:31 +0200
committerPhilipp Stephani <phst@google.com>2017-12-21 21:49:08 +0100
commit798f07f1509ac973a379db921bd796e0df7f2982 (patch)
treebef1801ab4e29f6b2f56311a9a2e11c9cddbce18
parentad2a47ce83c5c6fada96706a0e596ecc79d77696 (diff)
downloademacs-798f07f1509ac973a379db921bd796e0df7f2982.tar.gz
Document that mode commands should be idempotent.
* doc/lispref/modes.texi (Major Mode Conventions, Minor Mode Conventions): Document that the mode commands should be idempotent.
-rw-r--r--doc/lispref/modes.texi9
1 files changed, 9 insertions, 0 deletions
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index bd94aeadf15..1a601baee86 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -314,6 +314,11 @@ Data}, for other possible forms). The name of the mode appears
in the mode line.
@item
+Calling the major mode command twice in direct succession should not
+fail and should do the same thing as calling the command only once.
+In other words, the major mode command should be idempotent.
+
+@item
@cindex functions in modes
Since all global names are in the same name space, all the global
variables, constants, and functions that are part of the mode should
@@ -1412,6 +1417,10 @@ a minor mode in a mode hook is a little uglier:
@noindent
However, this is not very commonly done.
+ Enabling or disabling a minor mode twice in direct succession should
+not fail and should do the same thing as enabling or disabling it only
+once. In other words, the minor mode command should be idempotent.
+
@item
Add an element to @code{minor-mode-alist} for each minor mode
(@pxref{Definition of minor-mode-alist}), if you want to indicate the