summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog14
-rw-r--r--lisp/abbrev.el4
-rw-r--r--lisp/composite.el7
-rw-r--r--lisp/cus-start.el15
-rw-r--r--lisp/emacs-lisp/easy-mmode.el5
-rw-r--r--lisp/menu-bar.el3
-rw-r--r--lisp/simple.el31
-rw-r--r--lisp/tool-bar.el16
8 files changed, 53 insertions, 42 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index fbbddf04b2e..d40db8cf573 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,17 @@
+2010-10-29 Glenn Morris <rgm@gnu.org>
+
+ * abbrev.el (abbrev-mode):
+ * composite.el (auto-composition-mode):
+ * menu-bar.el (menu-bar-mode):
+ * simple.el (transient-mark-mode):
+ * tool-bar.el (tool-bar-mode): Adjust the define-minor-mode calls so
+ that they do not define the associated variables twice.
+ * simple.el (transient-mark-mode): Remove defvar.
+ * composite.el (auto-composition-mode): Make variable auto-buffer-local.
+ * cus-start.el: Add transient-mark-mode, menu-bar-mode, tool-bar-mode.
+ Handle multiple groups, and also custom-delayed-init-variables.
+ * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix.
+
2010-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/pcase.el (pcase): New `string' and `guard' patterns.
diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index 1c21aee5662..9d0e86fbce8 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -57,7 +57,9 @@ define global abbrevs instead."
"Toggle Abbrev mode in the current buffer.
With optional argument ARG, turn abbrev mode on if ARG is
positive, otherwise turn it off. In Abbrev mode, inserting an
-abbreviation causes it to expand and be replaced by its expansion.")
+abbreviation causes it to expand and be replaced by its expansion."
+ ;; It's defined in C, this stops the d-m-m macro defining it again.
+ :variable abbrev-mode)
(put 'abbrev-mode 'safe-local-variable 'booleanp)
diff --git a/lisp/composite.el b/lisp/composite.el
index 02c78580fff..da7705cf9eb 100644
--- a/lisp/composite.el
+++ b/lisp/composite.el
@@ -743,7 +743,11 @@ When Auto Composition is enabled, text characters are automatically composed
by functions registered in `composition-function-table' (which see).
You can use `global-auto-composition-mode' to turn on
-Auto Composition mode in all buffers (this is the default).")
+Auto Composition mode in all buffers (this is the default)."
+ ;; It's defined in C, this stops the d-m-m macro defining it again.
+ :variable auto-composition-mode)
+;; It's not defined with DEFVAR_PER_BUFFER though.
+(make-variable-buffer-local 'auto-composition-mode)
;;;###autoload
(define-minor-mode global-auto-composition-mode
@@ -757,5 +761,4 @@ See `auto-composition-mode' for more information on Auto-Composition mode."
-;; arch-tag: ee703d77-1723-45d4-a31f-e9f0f867aa33
;;; composite.el ends here
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index ceb7bcdfd1a..8fa20d624dd 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -101,6 +101,9 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
:set #'(lambda (symbol value)
(set-default symbol value)
(force-mode-line-update t)))
+ (transient-mark-mode editing-basics boolean nil
+ (not noninteractive)
+ :initialize custom-initialize-delay)
;; callint.c
(mark-even-if-inactive editing-basics boolean)
;; callproc.c
@@ -185,6 +188,8 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
(other :tag "hidden by keypress" 1))
"22.1")
(make-pointer-invisible mouse boolean "23.2")
+ (menu-bar-mode frames boolean)
+ (tool-bar-mode (frames mouse) boolean)
;; fringe.c
(overflow-newline-into-fringe fringe boolean)
;; indent.c
@@ -452,11 +457,17 @@ since it could result in memory overflow and make Emacs crash."
(put symbol 'safe-local-variable (cadr prop)))
(if (setq prop (memq :risky rest))
(put symbol 'risky-local-variable (cadr prop)))
+ ;; Note this is the _only_ initialize property we handle.
+ (if (eq (cadr (memq :initialize rest)) 'custom-initialize-delay)
+ (push symbol custom-delayed-init-variables))
;; If this is NOT while dumping Emacs,
;; set up the rest of the customization info.
(unless purify-flag
- ;; Add it to the right group.
- (custom-add-to-group group symbol 'custom-variable)
+ ;; Add it to the right group(s).
+ (if (listp group)
+ (dolist (g group)
+ (custom-add-to-group g symbol 'custom-variable))
+ (custom-add-to-group group symbol 'custom-variable))
;; Set the type.
(put symbol 'custom-type type)
(put symbol 'custom-version version)
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index e11572dfc62..9a703c96378 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -119,7 +119,8 @@ BODY contains code to execute each time the mode is enabled or disabled.
of the variable MODE to store the state of the mode. PLACE
can also be of the form (GET . SET) where GET is an expression
that returns the current state and SET is a function that takes
- a new state and sets it.
+ a new state and sets it. If you specify a :variable, this
+ function assumes it is defined elsewhere.
For example, you could write
(define-minor-mode foo-mode \"If enabled, foo on you!\"
@@ -196,6 +197,7 @@ For example, you could write
`(:group ',(intern (replace-regexp-in-string
"-mode\\'" "" mode-name)))))
+ ;; TODO? Mark booleans as safe if booleanp? Eg abbrev-mode.
(unless type (setq type '(:type 'boolean)))
`(progn
@@ -583,5 +585,4 @@ BODY is executed after moving to the destination location."
(provide 'easy-mmode)
-;; arch-tag: d48a5250-6961-4528-9cb0-3c9ea042a66a
;;; easy-mmode.el ends here
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index f75bbc5eb76..ac33940011a 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -2073,7 +2073,8 @@ With a numeric argument, if the argument is positive,
turn on menu bars; otherwise, turn off menu bars."
:init-value t
:global t
- :group 'frames
+ ;; It's defined in C/cus-start, this stops the d-m-m macro defining it again.
+ :variable menu-bar-mode
;; Turn the menu-bars on all frames on or off.
(let ((val (if menu-bar-mode 1 0)))
diff --git a/lisp/simple.el b/lisp/simple.el
index 0d5638158fe..4d6d42f55a2 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -1,8 +1,8 @@
;;; simple.el --- basic editing commands for Emacs
-;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998,
+;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+;; 2010 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -4051,29 +4051,8 @@ Invoke \\[apropos-documentation] and type \"transient\" or
\"mark.*active\" at the prompt, to see the documentation of
commands which are sensitive to the Transient Mark mode."
:global t
- :init-value (not noninteractive)
- :initialize 'custom-initialize-delay
- :group 'editing-basics)
-
-;; The variable transient-mark-mode is ugly: it can take on special
-;; values. Document these here.
-(defvar transient-mark-mode t
- "*Non-nil if Transient Mark mode is enabled.
-See the command `transient-mark-mode' for a description of this minor mode.
-
-Non-nil also enables highlighting of the region whenever the mark is active.
-The variable `highlight-nonselected-windows' controls whether to highlight
-all windows or just the selected window.
-
-If the value is `lambda', that enables Transient Mark mode temporarily.
-After any subsequent action that would normally deactivate the mark
-\(such as buffer modification), Transient Mark mode is turned off.
-
-If the value is (only . OLDVAL), that enables Transient Mark mode
-temporarily. After any subsequent point motion command that is not
-shift-translated, or any other action that would normally deactivate
-the mark (such as buffer modification), the value of
-`transient-mark-mode' is set to OLDVAL.")
+ ;; It's defined in C/cus-start, this stops the d-m-m macro defining it again.
+ :variable transient-mark-mode)
(defvar widen-automatically t
"Non-nil means it is ok for commands to call `widen' when they want to.
diff --git a/lisp/tool-bar.el b/lisp/tool-bar.el
index 4dedf3dfca5..6630d85cd3e 100644
--- a/lisp/tool-bar.el
+++ b/lisp/tool-bar.el
@@ -1,8 +1,8 @@
;;; tool-bar.el --- setting up the tool bar
-;;
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
-;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-;;
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+;; 2009, 2010 Free Software Foundation, Inc.
+
;; Author: Dave Love <fx@gnu.org>
;; Keywords: mouse frames
;; Package: emacs
@@ -51,8 +51,8 @@ See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for
conveniently adding tool bar items."
:init-value t
:global t
- :group 'mouse
- :group 'frames
+ ;; It's defined in C/cus-start, this stops the d-m-m macro defining it again.
+ :variable tool-bar-mode
(let ((val (if tool-bar-mode 1 0)))
(dolist (frame (frame-list))
(set-frame-parameter frame 'tool-bar-lines val))
@@ -325,10 +325,10 @@ Customize `tool-bar-mode' if you want to show or hide the tool bar."
:initialize 'custom-initialize-default
:set (lambda (sym val)
(set-default sym val)
- (modify-all-frames-parameters
+ (modify-all-frames-parameters
(list (cons 'tool-bar-position val))))))
(provide 'tool-bar)
-;; arch-tag: 15f30f0a-d0d7-4d50-bbb7-f48fd0c8582f
+
;;; tool-bar.el ends here