Remove duplicate Lisp definitions of define-minor-mode variables defined in C.

* lisp/abbrev.el (abbrev-mode):
* lisp/composite.el (auto-composition-mode):
* lisp/menu-bar.el (menu-bar-mode):
* lisp/simple.el (transient-mark-mode):
* lisp/tool-bar.el (tool-bar-mode): Adjust the define-minor-mode calls so
that they do not define the associated variables twice.
* lisp/simple.el (transient-mark-mode): Remove defvar.
* lisp/composite.el (auto-composition-mode): Make variable auto-buffer-local.
* lisp/cus-start.el: Add transient-mark-mode, menu-bar-mode, tool-bar-mode.
Handle multiple groups, and also custom-delayed-init-variables.
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix.

* src/buffer.c (syms_of_buffer) <abbrev-mode, transient-mark-mode>:
* src/frame.c (syms_of_frame) <tool-bar-mode>: Move docs here from Lisp.
This commit is contained in:
Glenn Morris 2010-10-28 20:29:29 -07:00
parent dcc029e017
commit 9d79402605
11 changed files with 81 additions and 48 deletions

View file

@ -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.

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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)))

View file

@ -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.

View file

@ -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

View file

@ -1,3 +1,8 @@
2010-10-29 Glenn Morris <rgm@gnu.org>
* buffer.c (syms_of_buffer) <abbrev-mode, transient-mark-mode>:
* frame.c (syms_of_frame) <tool-bar-mode>: Move doc here from Lisp.
2010-10-26 Juanma Barranquero <lekktu@gmail.com>
* eval.c (init_eval_once): Set max_lisp_eval_depth to 600;

View file

@ -5600,7 +5600,8 @@ Format with `format-mode-line' to produce a string value. */);
doc: /* Local (mode-specific) abbrev table of current buffer. */);
DEFVAR_PER_BUFFER ("abbrev-mode", &current_buffer->abbrev_mode, Qnil,
doc: /* Non-nil turns on automatic expansion of abbrevs as they are inserted. */);
doc: /* Non-nil if Abbrev mode is enabled.
Use the command `abbrev-mode' to change this variable. */);
DEFVAR_PER_BUFFER ("case-fold-search", &current_buffer->case_fold_search,
Qnil,
@ -6098,11 +6099,23 @@ to the value obtained by calling `current-time'.
If the buffer has never been shown in a window, the value is nil. */);
DEFVAR_LISP ("transient-mark-mode", &Vtransient_mark_mode,
doc: /* */);
doc: /* 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. */);
Vtransient_mark_mode = Qnil;
/* The docstring is in simple.el. If we put it here, it would be
overwritten when transient-mark-mode is defined using
define-minor-mode. */
DEFVAR_LISP ("inhibit-read-only", &Vinhibit_read_only,
doc: /* *Non-nil means disregard read-only status of buffers or characters.

View file

@ -4571,7 +4571,11 @@ or call the function `menu-bar-mode'. */);
Vmenu_bar_mode = Qt;
DEFVAR_LISP ("tool-bar-mode", &Vtool_bar_mode,
doc: /* Non-nil if Tool-Bar mode is enabled. */);
doc: /* Non-nil if Tool-Bar mode is enabled.
See the command `tool-bar-mode' for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `tool-bar-mode'. */);
Vtool_bar_mode = Qt;
DEFVAR_KBOARD ("default-minibuffer-frame", Vdefault_minibuffer_frame,