[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: find-file-hook as illustration of Custom problems
From: |
Luc Teirlinck |
Subject: |
Re: find-file-hook as illustration of Custom problems |
Date: |
Thu, 10 Feb 2005 18:09:57 -0600 (CST) |
My previously posted patch was indeed not very good. Among other
things `C-h v blinking-cursor-mode' did not find the defcustom. The
patch you proposed has a similar problem. Also cus-start.el is meant
for variables defined in the C code. I believe that we should avoid
using it for Lisp variables, if possible. I now believe that the
following patch to frame.el would be better. I believe that Per
designed the standard value to be an unevaluated expression exactly to
allow what the patch below does. The accompanying patch to startup.el
is now very minor.
===File ~/frame.el-diff=====================================
*** frame.el 09 Feb 2005 15:59:13 -0600 1.215
--- frame.el 10 Feb 2005 17:42:44 -0600
***************
*** 1253,1262 ****
(defvar blink-cursor-timer nil
"Timer started from `blink-cursor-start'.
! This timer calls `blink-cursor' every `blink-cursor-interval' seconds.")
! (defvar blink-cursor-mode nil
! "Non-nil means blinking cursor is active.")
(defun blink-cursor-mode (arg)
"Toggle blinking cursor mode.
--- 1253,1289 ----
(defvar blink-cursor-timer nil
"Timer started from `blink-cursor-start'.
! This timer calls `blink-cursor-timer-function' every
! `blink-cursor-interval' seconds.")
! ;; The strange sequence below is meant to set both the right temporary
! ;; value and the right "standard expression" , according to Custom,
! ;; for blink-cursor-mode. We do not know the concrete standard
! ;; _evaluated_ value yet, because the standard expression uses values
! ;; that are not yet set. Evaluating it now would yield an error, but
! ;; we make sure that it is not evaluated, by making sure that
! ;; blink-cursor-mode is set before the defcustom is evaluated and by
! ;; using the right :initialize function. The correct evaluated
! ;; standard value will be installed in startup.el using exactly the
! ;; same expression as in the defcustom.
! (defvar blink-cursor-mode)
! (unless (boundp 'blink-cursor-mode) (setq blink-cursor-mode nil))
! (defcustom blink-cursor-mode
! (not (or noninteractive
! emacs-quick-startup
! (eq system-type 'ms-dos)
! (not (memq window-system '(x w32)))))
! "*Non-nil means Blinking Cursor mode is active."
! :group 'cursor
! :tag "Blinking cursor"
! :type 'boolean
! :initialize 'custom-initialize-set
! :set #'(lambda (symbol value)
! (set-default symbol value)
! (blink-cursor-mode (or value 0))))
!
! (defvaralias 'blink-cursor 'blink-cursor-mode)
! (make-obsolete-variable 'blink-cursor 'blink-cursor-mode "22.1")
(defun blink-cursor-mode (arg)
"Toggle blinking cursor mode.
***************
*** 1289,1306 ****
(setq blink-cursor-mode t))
(internal-show-cursor nil t))))
- ;; Note that this is really initialized from startup.el before
- ;; the init-file is read.
-
- (defcustom blink-cursor nil
- "*Non-nil means blinking cursor mode is active."
- :group 'cursor
- :tag "Blinking cursor"
- :type 'boolean
- :set #'(lambda (symbol value)
- (set-default symbol value)
- (blink-cursor-mode (or value 0))))
-
(defun blink-cursor-start ()
"Timer function called from the timer `blink-cursor-idle-timer'.
This starts the timer `blink-cursor-timer', which makes the cursor blink
--- 1316,1321 ----
============================================================
===File ~/startup.el-diff===================================
*** startup.el 28 Dec 2004 09:50:38 -0600 1.337
--- startup.el 10 Feb 2005 17:18:09 -0600
***************
*** 735,746 ****
(<= (frame-parameter nil 'tool-bar-lines) 0))
(tool-bar-mode 1))
! ;; Can't do this init in defcustom because window-system isn't set.
(unless (or noninteractive
emacs-quick-startup
(eq system-type 'ms-dos)
(not (memq window-system '(x w32))))
- (setq-default blink-cursor t)
(blink-cursor-mode 1))
(unless noninteractive
--- 735,748 ----
(<= (frame-parameter nil 'tool-bar-lines) 0))
(tool-bar-mode 1))
! ;; Can't do this init in defcustom because the relevant variables
! ;; are not set. If you make any changes to the `or' form below,
! ;; you should also change the corresponding expression in the
! ;; defcustom in frame.el, or Custom will be badly confused.
(unless (or noninteractive
emacs-quick-startup
(eq system-type 'ms-dos)
(not (memq window-system '(x w32))))
(blink-cursor-mode 1))
(unless noninteractive
============================================================
- Re: find-file-hook as illustration of Custom problems, (continued)
- Re: find-file-hook as illustration of Custom problems, Luc Teirlinck, 2005/02/05
- Re: find-file-hook as illustration of Custom problems, Richard Stallman, 2005/02/06
- Re: find-file-hook as illustration of Custom problems, Luc Teirlinck, 2005/02/07
- Re: find-file-hook as illustration of Custom problems, Richard Stallman, 2005/02/09
- Re: find-file-hook as illustration of Custom problems, Kim F. Storm, 2005/02/09
- Re: find-file-hook as illustration of Custom problems, Richard Stallman, 2005/02/10
- Re: find-file-hook as illustration of Custom problems, Kim F. Storm, 2005/02/10
- Re: find-file-hook as illustration of Custom problems, Richard Stallman, 2005/02/12
- Re: find-file-hook as illustration of Custom problems, Luc Teirlinck, 2005/02/10
- Re: find-file-hook as illustration of Custom problems, Richard Stallman, 2005/02/10
- Re: find-file-hook as illustration of Custom problems,
Luc Teirlinck <=
- Re: find-file-hook as illustration of Custom problems, Richard Stallman, 2005/02/12
- Re: find-file-hook as illustration of Custom problems, Luc Teirlinck, 2005/02/10
- Re: find-file-hook as illustration of Custom problems, Luc Teirlinck, 2005/02/11
- Re: find-file-hook as illustration of Custom problems, Luc Teirlinck, 2005/02/10