all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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
============================================================

  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.