]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove duplicate Lisp definitions of define-minor-mode variables defined in C.
authorGlenn Morris <rgm@gnu.org>
Fri, 29 Oct 2010 03:29:29 +0000 (20:29 -0700)
committerGlenn Morris <rgm@gnu.org>
Fri, 29 Oct 2010 03:29:29 +0000 (20:29 -0700)
* 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.

lisp/ChangeLog
lisp/abbrev.el
lisp/composite.el
lisp/cus-start.el
lisp/emacs-lisp/easy-mmode.el
lisp/menu-bar.el
lisp/simple.el
lisp/tool-bar.el
src/ChangeLog
src/buffer.c
src/frame.c

index fbbddf04b2e483e9944e49ac3f0ff28f28bd1095..d40db8cf5738ea988cf6cd41b221a39ea9645390 100644 (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.
index 1c21aee5662eb9a85aaa34e03ab59e8dee9b9aa6..9d0e86fbce8ecc61946304190cd0716951c5d951 100644 (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)
 
index 02c78580fff59b94173173191b64e326dcbb2f9b..da7705cf9ebb233ccd1b2faff932377f9d9afb78 100644 (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."
 
 \f
 
-;; arch-tag: ee703d77-1723-45d4-a31f-e9f0f867aa33
 ;;; composite.el ends here
index ceb7bcdfd1a339ab9462c5fe807288ea07a79747..8fa20d624dd33ed89087bf2016dff252d3e5749c 100644 (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)
index e11572dfc627521c26f3bd2230b39acdbee2ca65..9a703c96378c478cd400e18e8fac825de62b6b31 100644 (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
index f75bbc5eb76220958f56a6b4c231a6cd65810673..ac33940011a8126f75ecbfc8df75e54bff3141e0 100644 (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)))
index 0d5638158fe2ff5d5bf60dbda9638d76050a0687..4d6d42f55a29272b1eacc33d081812e24fba7eeb 100644 (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.
index 4dedf3dfca52a7e03cd21a8c02783bb41af6ef22..6630d85cd3ed40c9b143d8c12741645d42e78e82 100644 (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
index f3e2ea7854ef859020932865a0b3cc374cc34cfa..d61e20aa600f71d3adb60aef88901f336937c64a 100644 (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;
index 5a6bfcba060b5b7dbf36bb09e665e6bfbd9a3078..67192b4843bb2a7cf209adf4c7d4201cab5fb81e 100644 (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.
index 1c9d471cfa9d82dfe714e80874a7de6f4cfdd77c..1f8ff8d562b7f49e77fccde320b36483f031b38a 100644 (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,