From: Luc Teirlinck <teirllm@dms.auburn.edu>
Cc: emacs-devel@gnu.org
Subject: Re: find-file-hook as illustration of Custom problems
Date: Thu, 10 Feb 2005 18:09:57 -0600 (CST) [thread overview]
Message-ID: <200502110009.j1B09vg07281@raven.dms.auburn.edu> (raw)
In-Reply-To: <E1CzJFE-0005nG-T3@fencepost.gnu.org> (message from Richard Stallman on Thu, 10 Feb 2005 13:40:52 -0500)
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
============================================================
next prev parent reply other threads:[~2005-02-11 0:09 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-04 0:36 find-file-hook as illustration of Custom problems Luc Teirlinck
2005-02-04 7:16 ` Lennart Borgman
2005-02-05 17:38 ` Richard Stallman
2005-02-05 18:54 ` Luc Teirlinck
2005-02-06 21:01 ` Richard Stallman
2005-02-06 22:19 ` Lennart Borgman
2005-02-05 19:43 ` Lennart Borgman
2005-02-05 20:56 ` Popup when buffer file is changed on disk moheb missaghi
2005-02-05 22:57 ` Eli Zaretskii
2005-02-06 0:51 ` Lennart Borgman
2005-02-06 7:20 ` Eli Zaretskii
2005-02-06 9:02 ` Lennart Borgman
2005-02-06 9:53 ` Eli Zaretskii
2005-02-06 10:41 ` Lennart Borgman
2005-02-06 16:34 ` Luc Teirlinck
2005-02-06 17:52 ` Lennart Borgman
2005-02-06 17:04 ` Luc Teirlinck
2005-02-11 0:33 ` Luc Teirlinck
2005-02-11 15:40 ` Eli Zaretskii
2005-02-11 16:51 ` David Kastrup
2005-02-11 19:38 ` Luc Teirlinck
2005-02-12 11:03 ` Eli Zaretskii
2005-02-12 8:37 ` Richard Stallman
2005-02-13 1:41 ` Luc Teirlinck
2005-02-13 4:36 ` Eli Zaretskii
2005-02-15 3:05 ` Luc Teirlinck
2005-02-15 4:59 ` Eli Zaretskii
2005-02-16 2:59 ` moheb missaghi
2005-02-16 9:31 ` Richard Stallman
2005-02-16 10:37 ` David Kastrup
2005-02-16 15:06 ` Luc Teirlinck
2005-02-16 15:21 ` David Kastrup
2005-02-17 1:08 ` Luc Teirlinck
2005-02-06 12:42 ` Richard Stallman
2005-02-06 18:00 ` Lennart Borgman
2005-02-06 18:17 ` Jan D.
2005-02-06 19:59 ` Lennart Borgman
2005-02-06 20:40 ` Jan D.
2005-02-07 4:34 ` Eli Zaretskii
2005-02-07 4:04 ` Luc Teirlinck
2005-02-06 18:11 ` Luc Teirlinck
2005-02-06 18:45 ` Luc Teirlinck
2005-02-06 13:24 ` Jason Rumney
2005-02-06 13:54 ` Lennart Borgman
2005-02-06 7:23 ` Eli Zaretskii
2005-02-06 21:01 ` find-file-hook as illustration of Custom problems Richard Stallman
2005-02-06 1:50 ` Luc Teirlinck
2005-02-06 3:26 ` Luc Teirlinck
2005-02-06 4:02 ` Luc Teirlinck
2005-02-06 21:02 ` Richard Stallman
2005-02-08 1:50 ` Luc Teirlinck
2005-02-09 8:10 ` Richard Stallman
2005-02-09 10:42 ` Kim F. Storm
2005-02-10 18:39 ` Richard Stallman
2005-02-10 21:42 ` Kim F. Storm
2005-02-12 8:37 ` Richard Stallman
2005-02-10 5:12 ` Luc Teirlinck
2005-02-10 18:40 ` Richard Stallman
2005-02-11 0:09 ` Luc Teirlinck [this message]
2005-02-12 8:37 ` Richard Stallman
2005-02-11 0:21 ` Luc Teirlinck
2005-02-11 14:59 ` Luc Teirlinck
2005-02-10 5:26 ` Luc Teirlinck
2005-02-06 2:07 ` Luc Teirlinck
2005-02-06 3:16 ` Luc Teirlinck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200502110009.j1B09vg07281@raven.dms.auburn.edu \
--to=teirllm@dms.auburn.edu \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.