X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/2a64315a111fb4da67e9c40c9b69045c4f63d619..fc6c27276c470a46cdce2a3f09e7968360b91584:/lisp/cus-start.el diff --git a/lisp/cus-start.el b/lisp/cus-start.el index bc48aa88cc..6113a4321c 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -1,10 +1,10 @@ ;;; 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-2011 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen ;; Keywords: internal +;; Package: emacs ;; This file is part of GNU Emacs. @@ -33,6 +33,19 @@ ;;; 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) (garbage-collection-messages alloc boolean) @@ -95,6 +108,16 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of "21.1") (line-spacing display (choice (const :tag "none" nil) integer) "22.1") + (cursor-in-non-selected-windows + 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 + :standard (not noninteractive) + :initialize custom-initialize-delay + :set custom-set-minor-mode) ;; callint.c (mark-even-if-inactive editing-basics boolean) ;; callproc.c @@ -143,12 +166,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" @@ -165,6 +182,36 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of ;; fileio.c (delete-by-moving-to-trash auto-save boolean "23.1") (auto-save-visited-file-name auto-save boolean) + ;; filelock.c + (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). + ;; It could be used elsewhere, eg Fcall_process_region, + ;; server-socket-dir. See bug#7135. + (cond ((memq system-type '(ms-dos windows-nt)) + (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") + "c:/temp")) + ((eq system-type 'darwin) + (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") + ;; See bug#7135. + (let ((tmp (ignore-errors + (shell-command-to-string + "getconf DARWIN_USER_TEMP_DIR")))) + (and (stringp tmp) + (setq tmp (replace-regexp-in-string + "\n\\'" "" tmp)) + ;; Handles "getconf: Unrecognized variable..." + (file-directory-p tmp) + tmp)) + "/tmp")) + (t + (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") + "/tmp")))) + :initialize custom-initialize-delay) ;; fns.c (use-dialog-box menu boolean "21.1") (use-file-dialog menu boolean "22.1") @@ -179,6 +226,13 @@ 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 + ;; FIXME? +; :initialize custom-initialize-default + :set custom-set-minor-mode) + (tool-bar-mode (frames mouse) boolean nil +; :initialize custom-initialize-default + :set custom-set-minor-mode) ;; fringe.c (overflow-newline-into-fringe fringe boolean) ;; indent.c @@ -197,9 +251,19 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (help-char keyboard character) (help-event-list keyboard (repeat (sexp :format "%v"))) (menu-prompting menu boolean) + (select-active-regions killing + (choice (const :tag "always" t) + (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 @@ -254,18 +318,42 @@ 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) (const control) (const meta) (const alt) (const hyper) (const super)) "23.1") + (ns-right-alternate-modifier + ns + (choice (const :tag "No modifier (work as alternate/option)" none) + (const :tag "Use the value of ns-alternate-modifier" + left) + (const control) (const meta) + (const alt) (const hyper) + (const super)) "23.3") (ns-function-modifier ns (choice (const :tag "No modifier (work as function)" none) @@ -273,6 +361,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 @@ -313,6 +402,8 @@ since it could result in memory overflow and make Emacs crash." (other :tag "Always" t)) "23.1") ;; xdisp.c + (show-trailing-whitespace whitespace-faces boolean nil + :safe booleanp) (scroll-step windows integer) (scroll-conservatively windows integer) (scroll-margin windows integer) @@ -345,8 +436,12 @@ since it could result in memory overflow and make Emacs crash." (const :tag "Text" :value text) (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") + (auto-hscroll-mode scrolling boolean "21.1") + (display-hourglass cursor boolean) + (hourglass-delay cursor number) ;; xfaces.c (scalable-fonts-allowed display boolean "22.1") @@ -357,13 +452,14 @@ since it could result in memory overflow and make Emacs crash." (x-gtk-show-hidden-files menu boolean "22.1") (x-gtk-file-dialog-help-text menu boolean "22.1") (x-gtk-whole-detached-tool-bar x boolean "22.1") + (x-gtk-use-system-tooltips tooltip boolean "23.3") ;; xterm.c (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") ;; xsettings.c (font-use-system-font font-selection boolean "23.2"))) - this symbol group type standard version native-p + this symbol group type standard version native-p rest prop propval ;; This function turns a value ;; into an expression which produces that value. (quoter (lambda (sexp) @@ -382,12 +478,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)))) + 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 @@ -420,25 +517,44 @@ since it could result in memory overflow and make Emacs crash." ;; Save the standard value, unless we already did. (or (get symbol 'standard-value) (put symbol 'standard-value (list standard))) - ;; If this is NOT while dumping Emacs, - ;; set up the rest of the customization info. + ;; We need these properties independent of whether cus-start is loaded. + (if (setq prop (memq :safe rest)) + (put symbol 'safe-local-variable (cadr prop))) + (if (setq prop (memq :risky rest)) + (put symbol 'risky-local-variable (cadr prop))) + (if (setq prop (memq :set rest)) + (put symbol 'custom-set (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. This is the stuff that is not needed + ;; until someone does M-x customize etc. (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))))) + (if version (put symbol 'custom-version version)) + (while rest + (setq prop (car rest) + propval (cadr rest) + rest (nthcdr 2 rest)) + (cond ((memq prop '(:standard :risky :safe :set))) ; handled above + ((eq prop :tag) + (put symbol 'custom-tag propval)))))))) (custom-add-to-group 'iswitchb 'read-buffer-function 'custom-variable) (custom-add-to-group 'font-lock 'open-paren-in-column-0-is-defun-start 'custom-variable) -;; Record cus-start as loaded -;; if we have set up all the info that we can set up. -;; Don't record cus-start as loaded -;; if we have set up only the standard values. +;; Record cus-start as loaded if we have set up all the info that we can. +;; Don't record it as loaded if we have only set up the standard values +;; and safe/risky properties. (unless purify-flag (provide 'cus-start)) -;; arch-tag: 4502730d-bcb3-4f5e-99a3-a86f2d54af60 ;;; cus-start.el ends here