]> code.delx.au - gnu-emacs/blobdiff - lisp/cus-start.el
not compiling yet
[gnu-emacs] / lisp / cus-start.el
index af5338b0bcd8e9bdfe1d9b6a1cb121ecfbd14020..0eb8b2d63c3c68f0e3e9b6e80257c33f6cccfc38 100644 (file)
@@ -1,8 +1,7 @@
 ;;; cus-start.el --- define customization properties of builtins
-;;
-;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-;;   2007, 2008, 2009, 2010  Free Software Foundation, Inc.
-;;
+
+;; Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc.
+
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: internal
 ;; Package: emacs
@@ -23,7 +22,7 @@
 ;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
-;;
+
 ;; This file adds customize support for built-in variables.
 
 ;; While dumping Emacs, this file is loaded, but it only records
 
 ;;; Code:
 
+;; Elements of this list have the form:
+;; SYMBOL GROUP TYPE VERSION REST...
+;; SYMBOL is the name of the variable.
+;; GROUP is the custom group to which it belongs (may also be a list
+;; of groups)
+;; TYPE is the defcustom :type.
+;; VERSION is the defcustom :version (or nil).
+;; REST is a set of :KEYWORD VALUE pairs.  Accepted :KEYWORDs are:
+;; :standard - standard value for SYMBOL (else use current value)
+;; :set - custom-set property
+;; :risky - risky-local-variable property
+;; :safe - safe-local-variable property
+;; :tag - custom-tag property
 (let ((all '(;; alloc.c
             (gc-cons-threshold alloc integer)
+            (gc-cons-percentage alloc float)
             (garbage-collection-messages alloc boolean)
             ;; buffer.c
             (mode-line-format mode-line sexp) ;Hard to do right.
@@ -97,14 +110,22 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
             (line-spacing display (choice (const :tag "none" nil) integer)
                           "22.1")
             (cursor-in-non-selected-windows
-             cursor boolean nil t :tag "Cursor In Non-selected Windows"
-             :set #'(lambda (symbol value)
-                      (set-default symbol value)
-                      (force-mode-line-update t)))
+             cursor boolean nil
+             :tag "Cursor In Non-selected Windows"
+             :set (lambda (symbol value)
+                    (set-default symbol value)
+                    (force-mode-line-update t)))
             (transient-mark-mode editing-basics boolean nil
-                                 (not noninteractive)
+                                 :standard (not noninteractive)
                                  :initialize custom-initialize-delay
                                  :set custom-set-minor-mode)
+            (bidi-paragraph-direction
+             paragraphs
+             (choice
+              (const :tag "Left to Right" left-to-right)
+              (const :tag "Right to Left" right-to-left)
+              (const :tag "Dynamic, according to paragraph text" nil))
+             "24.1")
             ;; callint.c
             (mark-even-if-inactive editing-basics boolean)
             ;; callproc.c
@@ -112,15 +133,25 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
             (exec-path execute
                        (repeat (choice (const :tag "default directory" nil)
                                        (directory :format "%v"))))
+            (exec-suffixes execute (repeat string))
             ;; charset.c
             (charset-map-path installation
                               (repeat (directory :format "%v")))
             ;; coding.c
             (inhibit-eol-conversion mule boolean)
             (eol-mnemonic-undecided mule string)
-            (eol-mnemonic-unix mule string)
-            (eol-mnemonic-dos mule string)
-            (eol-mnemonic-mac mule string)
+            ;; startup.el fiddles with the values.  IMO, would be
+            ;; simpler to just use #ifdefs in coding.c.
+            (eol-mnemonic-unix mule string nil
+                               :standard
+                               (if (memq system-type '(ms-dos windows-nt))
+                                   "(Unix)" ":"))
+            (eol-mnemonic-dos mule string nil
+                              :standard
+                              (if (memq system-type '(ms-dos windows-nt))
+                                  "\\" "(DOS)"))
+            (eol-mnemonic-mac mule string nil
+                              :standard "(Mac)")
             (file-coding-system-alist
              mule
              (alist
@@ -145,6 +176,13 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
             (inverse-video display boolean)
             (visible-bell display boolean)
             (no-redraw-on-reenter display boolean)
+
+            ;; dosfns.c
+            (dos-display-scancodes display boolean)
+            (dos-hyper-key keyboard integer)
+            (dos-super-key keyboard integer)
+            (dos-keypad-mode keyboard integer)
+
             ;; editfns.c
             (user-full-name mail string)
             ;; eval.c
@@ -153,12 +191,6 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
             (max-mini-window-height limits
                                     (choice (const :tag "quarter screen" nil)
                                             number) "23.1")
-            (stack-trace-on-error debug
-                                  (choice (const :tag "off")
-                                          (repeat :menu-tag "When"
-                                                  :value (nil)
-                                                  (symbol :format "%v"))
-                                          (const :tag "always" t)))
             (debug-on-error debug
                             (choice (const :tag "off")
                                     (repeat :menu-tag "When"
@@ -166,19 +198,17 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
                                             (symbol :format "%v"))
                                     (const :tag "always" t)))
             (debug-ignored-errors debug (repeat (choice symbol regexp)))
-            (debug-on-quit debug
-                           (choice (const :tag "off")
-                                   (repeat :menu-tag "When"
-                                           :value (nil)
-                                           (symbol :format "%v"))
-                                   (const :tag "always" t)))
-             ;; fileio.c
-             (delete-by-moving-to-trash auto-save boolean "23.1")
+            (debug-on-quit debug boolean)
+            (debug-on-signal debug boolean)
+            ;; fileio.c
+            (delete-by-moving-to-trash auto-save boolean "23.1")
             (auto-save-visited-file-name auto-save boolean)
             ;; filelock.c
+            (create-lockfiles files boolean "24.3")
             (temporary-file-directory
              ;; Darwin section added 24.1, does not seem worth :version bump.
              files directory nil
+             :standard
              (file-name-as-directory
               ;; FIXME ? Should there be Ftemporary_file_directory to do this
               ;; more robustly (cf set_local_socket in emacsclient.c).
@@ -208,6 +238,8 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
             (use-dialog-box menu boolean "21.1")
             (use-file-dialog menu boolean "22.1")
             (focus-follows-mouse frames boolean "20.3")
+            ;; fontset.c
+            (vertical-centering-font-regexp display regexp)
             ;; frame.c
             (default-frame-alist frames
               (repeat (cons :format "%v"
@@ -218,15 +250,17 @@ 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 nil t
+            (menu-bar-mode frames boolean nil
                            ;; FIXME?
 ;                          :initialize custom-initialize-default
                            :set custom-set-minor-mode)
-            (tool-bar-mode (frames mouse) boolean nil t
+            (tool-bar-mode (frames mouse) boolean nil
 ;                          :initialize custom-initialize-default
                            :set custom-set-minor-mode)
             ;; fringe.c
             (overflow-newline-into-fringe fringe boolean)
+            ;; image.c
+            (imagemagick-render-type image integer "24.1")
             ;; indent.c
             (indent-tabs-mode indent boolean)
             ;; keyboard.c
@@ -248,9 +282,11 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
                                            (const :tag "only shift-selection or mouse-drag" only)
                                            (const :tag "off" nil))
                                    "24.1")
-            (suggest-key-bindings keyboard (choice (const :tag "off" nil)
-                                                   (integer :tag "time" 2)
-                                                   (other :tag "on")))
+             (debug-on-event debug
+                             (choice (const :tag "None" nil)
+                                     (const :tag "When sent SIGUSR1" sigusr1)
+                                     (const :tag "When sent SIGUSR2" sigusr2))
+                             "24.1")
 
 ;; This is not good news because it will use the wrong
 ;; version-specific directories when you upgrade.  We need
@@ -305,12 +341,28 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
                      (const control) (const meta)
                      (const alt) (const hyper)
                      (const super)) "23.1")
+            (ns-right-control-modifier
+             ns
+             (choice (const :tag "No modifier (work as control)" none)
+                     (const :tag "Use the value of ns-control-modifier"
+                            left)
+                     (const control) (const meta)
+                     (const alt) (const hyper)
+                     (const super)) "24.0")
             (ns-command-modifier
              ns
              (choice (const :tag "No modifier" nil)
                      (const control) (const meta)
                      (const alt) (const hyper)
                      (const super)) "23.1")
+            (ns-right-command-modifier
+             ns
+             (choice (const :tag "No modifier (work as command)" none)
+                     (const :tag "Use the value of ns-command-modifier"
+                            left)
+                     (const control) (const meta)
+                     (const alt) (const hyper)
+                     (const super)) "24.0")
             (ns-alternate-modifier
              ns
              (choice (const :tag "No modifier (work as alternate/option)" none)
@@ -332,6 +384,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
                      (const alt) (const hyper)
                      (const super)) "23.1")
             (ns-antialias-text ns boolean "23.1")
+            (ns-auto-hide-menu-bar ns boolean "24.0")
             ;; process.c
             (delete-exited-processes processes-basics boolean)
             ;; syntax.c
@@ -358,21 +411,20 @@ since it could result in memory overflow and make Emacs crash."
             ;; window.c
             (temp-buffer-show-function windows (choice (const nil) function))
             (next-screen-context-lines windows integer)
-            (window-min-height windows integer)
-            (window-min-width windows integer)
             (scroll-preserve-screen-position
              windows (choice
                       (const :tag "Off (nil)" :value nil)
                       (const :tag "Full screen (t)" :value t)
                       (other :tag "Always" 1)) "22.1")
-            (recenter-redisplay windows
-                                (choice
-                                 (const :tag "Never (nil)" :value nil)
-                                 (const :tag "Only on ttys" :value tty)
-                                 (other :tag "Always" t))
-                                "23.1")
+            (recenter-redisplay
+             windows (choice
+                      (const :tag "Never (nil)" :value nil)
+                      (const :tag "Only on ttys" :value tty)
+                      (other :tag "Always" t)) "23.1")
+            (window-combination-resize windows boolean "24.1")
+            (window-combination-limit windows boolean "24.1")
             ;; xdisp.c
-            (show-trailing-whitespace whitespace-faces boolean nil nil
+            (show-trailing-whitespace whitespace-faces boolean nil
                                       :safe booleanp)
             (scroll-step windows integer)
             (scroll-conservatively windows integer)
@@ -380,6 +432,7 @@ since it could result in memory overflow and make Emacs crash."
             (hscroll-margin windows integer "22.1")
             (hscroll-step windows number "22.1")
             (truncate-partial-width-windows display boolean "23.1")
+            (make-cursor-line-fully-visible windows boolean)
             (mode-line-inverse-video mode-line boolean)
             (mode-line-in-non-selected-windows mode-line boolean "22.1")
             (line-number-display-limit display
@@ -407,13 +460,24 @@ since it could result in memory overflow and make Emacs crash."
                      (const :tag "Both" :value both)
                      (const :tag "Both-horiz" :value both-horiz)
                      (const :tag "Text-image-horiz" :value text-image-horiz)
-                     (const :tag "System default" :value nil)) "23.3")
-             (tool-bar-max-label-size frames integer "23.3")
+                     (const :tag "System default" :value nil)) "24.1")
+             (tool-bar-max-label-size frames integer "24.1")
             (auto-hscroll-mode scrolling boolean "21.1")
+            (void-text-area-pointer cursor
+                                    (choice
+                                     (const :tag "Standard (text pointer)" :value nil)
+                                     (const :tag "Arrow" :value arrow)
+                                     (const :tag "Text pointer" :value text)
+                                     (const :tag "Hand" :value hand)
+                                     (const :tag "Vertical dragger" :value vdrag)
+                                     (const :tag "Horizontal dragger" :value hdrag)
+                                     (const :tag "Same as mode line" :value modeline)
+                                     (const :tag "Hourglass" :value hourglass)))
             (display-hourglass cursor boolean)
             (hourglass-delay cursor number)
 
             ;; xfaces.c
+            (font-list-limit display integer)
             (scalable-fonts-allowed display boolean "22.1")
             ;; xfns.c
             (x-bitmap-file-path installation
@@ -427,6 +491,8 @@ since it could result in memory overflow and make Emacs crash."
             (x-use-underline-position-properties display boolean "22.1")
             (x-underline-at-descent-line display boolean "22.1")
             (x-stretch-cursor display boolean "21.1")
+            ;; xselect.c
+            (x-select-enable-clipboard-manager killing boolean "24.1")
             ;; xsettings.c
             (font-use-system-font font-selection boolean "23.2")))
       this symbol group type standard version native-p rest prop propval
@@ -448,13 +514,13 @@ since it could result in memory overflow and make Emacs crash."
          group (nth 1 this)
          type (nth 2 this)
          version (nth 3 this)
+         rest (nthcdr 4 this)
          ;; If we did not specify any standard value expression above,
          ;; use the current value as the standard value.
-         standard (if (nthcdr 4 this)
-                      (nth 4 this)
-                    (when (default-boundp symbol)
-                      (funcall quoter (default-value symbol))))
-         rest (nthcdr 5 this)
+         standard (if (setq prop (memq :standard rest))
+                      (cadr prop)
+                    (if (default-boundp symbol)
+                        (funcall quoter (default-value symbol))))
          ;; Don't complain about missing variables which are
          ;; irrelevant to this platform.
          native-p (save-match-data
@@ -467,18 +533,26 @@ since it could result in memory overflow and make Emacs crash."
                       (featurep 'ns))
                      ((string-match "\\`x-.*gtk" (symbol-name symbol))
                       (featurep 'gtk))
+                     ((string-match "clipboard-manager" (symbol-name symbol))
+                      (boundp 'x-select-enable-clipboard-manager))
                      ((string-match "\\`x-" (symbol-name symbol))
                       (fboundp 'x-create-frame))
                      ((string-match "selection" (symbol-name symbol))
                       (fboundp 'x-selection-exists-p))
                      ((string-match "fringe" (symbol-name symbol))
                       (fboundp 'define-fringe-bitmap))
+                     ((string-match "\\`imagemagick" (symbol-name symbol))
+                      (fboundp 'imagemagick-types))
                      ((equal "font-use-system-font" (symbol-name symbol))
                       (featurep 'system-font-setting))
                      ;; Conditioned on x-create-frame, because that's
                      ;; the condition for loadup.el to preload tool-bar.el.
                      ((string-match "tool-bar-" (symbol-name symbol))
                       (fboundp 'x-create-frame))
+                     ((equal "vertical-centering-font-regexp"
+                             (symbol-name symbol))
+                      ;; Any function from fontset.c will do.
+                      (fboundp 'new-fontset))
                      (t t))))
     (if (not (boundp symbol))
        ;; If variables are removed from C code, give an error here!
@@ -508,12 +582,12 @@ since it could result in memory overflow and make Emacs crash."
          (custom-add-to-group group symbol 'custom-variable))
        ;; Set the type.
        (put symbol 'custom-type type)
-       (put symbol 'custom-version version)
+       (if version (put symbol 'custom-version version))
        (while rest
          (setq prop (car rest)
                propval (cadr rest)
                rest (nthcdr 2 rest))
-         (cond ((memq prop '(:risky :safe :set))) ; handled above
+         (cond ((memq prop '(:standard :risky :safe :set))) ; handled above
                ((eq prop :tag)
                 (put symbol 'custom-tag propval))))))))