unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Luc Teirlinck <teirllm@dms.auburn.edu>
Cc: rms@gnu.org, emacs-devel@gnu.org
Subject: Re: obsolete comment in tool-bar.el
Date: Thu, 14 Jul 2005 13:30:05 -0500 (CDT)	[thread overview]
Message-ID: <200507141830.j6EIU5r11167@raven.dms.auburn.edu> (raw)
In-Reply-To: <wlackpls7o.wl%mituharu@math.s.chiba-u.ac.jp> (message from YAMAMOTO Mitsuharu on Thu, 14 Jul 2005 17:14:35 +0900)

I have the impression that the offending code in define-minor-mode:

;; If the mode is global, call the function according to the default.
       ,(if globalp
           `(if (and load-file-name (not (equal ,init-value ,mode)))
		 (eval-after-load load-file-name '(,mode (if ,mode 1 -1))))))))

combined with custom-initialize-default, is an ugly kludge to get around
a bug people sometimes make where they use functions or variables in a
:set function that are defined in the same file, but _after_ the defcustom.
That of course does not work and the obvious solution is to define
those functions and variables before the defcustom.

But I believe that define-minor-mode tries to hide this type of user
bug and work around it by delaying the enabling of the minor mode
function until after the file is loaded.

If this is the correct interpretation of the code, then that was a
silly thing to do, but now things may have come to rely on it.

Until we decide what to really do with this, I believe that the
following patch should at least allow Emacs CVS to be built on all
operating systems (but I can not test).  Rather than applying this
patch, I would rather get rid of the `eval-after-load' kludge
altogether, but if the patch works, it at least shows that we have
isolated the only real problem.

===File ~/easy-mmode-diff===================================
*** easy-mmode.el	14 Jul 2005 12:45:27 -0500	1.68
--- easy-mmode.el	14 Jul 2005 12:51:32 -0500	
***************
*** 264,271 ****
  
         ;; If the mode is global, call the function according to the default.
         ,(if globalp
! 	    `(if (and load-file-name (not (equal ,init-value ,mode)))
! 		 (eval-after-load load-file-name '(,mode (if ,mode 1 -1))))))))
  \f
  ;;;
  ;;; make global minor mode
--- 264,274 ----
  
         ;; If the mode is global, call the function according to the default.
         ,(if globalp
! 	    `(and load-file-name
! 		  (eq (quote ,initialize)
! 		      (quote (:initialize 'custom-initialize-default)))
! 		  (not (equal ,init-value ,mode))
! 		  (eval-after-load load-file-name '(,mode (if ,mode 1 -1))))))))
  \f
  ;;;
  ;;; make global minor mode
============================================================

  parent reply	other threads:[~2005-07-14 18:30 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-07 12:40 obsolete comment in tool-bar.el Mathias Dahl
2005-07-07 19:15 ` Luc Teirlinck
2005-07-08  6:40   ` Mathias Dahl
2005-07-08 15:29     ` Luc Teirlinck
2005-07-08 17:40   ` Richard M. Stallman
2005-07-08 18:53     ` Drew Adams
2005-07-09  1:53       ` Luc Teirlinck
2005-07-09  4:20       ` Richard M. Stallman
2005-07-09  2:35     ` Luc Teirlinck
2005-07-10  5:19       ` Richard M. Stallman
2005-07-11  3:21         ` Luc Teirlinck
2005-07-11 16:53           ` Richard M. Stallman
2005-07-11 17:56             ` David Kastrup
2005-07-11 20:28               ` Luc Teirlinck
2005-07-12  3:20               ` Richard M. Stallman
2005-07-13  3:02                 ` Luc Teirlinck
2005-07-13 16:52                   ` Richard M. Stallman
2005-07-14  2:08                     ` Luc Teirlinck
2005-07-14  8:14                       ` YAMAMOTO Mitsuharu
2005-07-14 16:50                         ` Luc Teirlinck
2005-07-14 18:30                         ` Luc Teirlinck [this message]
2005-07-15  4:35                           ` Stefan Monnier
2005-07-15 13:53                             ` Luc Teirlinck
2005-07-15 20:44                               ` Stefan Monnier
2005-07-15 22:05                                 ` Luc Teirlinck
2005-07-15 22:46                                 ` Luc Teirlinck
2005-07-16  1:47                                 ` Luc Teirlinck
2005-07-16  2:04                                 ` Luc Teirlinck
2005-07-19  2:59                                   ` Luc Teirlinck
2005-07-19 14:41                                     ` Stefan Monnier
2005-07-20  4:05                                       ` Luc Teirlinck
2005-07-21  5:40                                         ` Stefan Monnier
2005-07-20  8:34                                     ` Richard M. Stallman
     [not found]                       ` <E1Dt8bd-0001fH-Eu@fencepost.gnu.org>
2005-07-14 22:05                         ` Luc Teirlinck
2005-07-15  3:24                           ` Luc Teirlinck
2005-07-15 18:10                             ` Richard M. Stallman
2005-07-16  2:32                               ` Luc Teirlinck
2005-07-13  3:20                 ` Luc Teirlinck
2005-07-09  3:57     ` Luc Teirlinck
2005-07-09  7:55       ` Eli Zaretskii
2005-07-09 13:57         ` Luc Teirlinck
2005-07-12  4:13           ` YAMAMOTO Mitsuharu
2005-07-12 12:20             ` YAMAMOTO Mitsuharu
2005-07-12 18:25               ` Luc Teirlinck
2005-07-12 23:58                 ` Luc Teirlinck
2005-07-13 16:52                   ` Richard M. Stallman
2005-07-12 20:19               ` Luc Teirlinck
2005-07-13  1:53               ` 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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200507141830.j6EIU5r11167@raven.dms.auburn.edu \
    --to=teirllm@dms.auburn.edu \
    --cc=emacs-devel@gnu.org \
    --cc=rms@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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).