all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Luc Teirlinck <teirllm@dms.auburn.edu>
Cc: miles@gnu.org, snogglethorpe@gmail.com, monnier@iro.umontreal.ca,
	emacs-devel@gnu.org
Subject: Re: file-name-shadow-mode
Date: Sat, 19 Mar 2005 09:21:08 -0600 (CST)	[thread overview]
Message-ID: <200503191521.j2JFL8901509@raven.dms.auburn.edu> (raw)
In-Reply-To: <E1DCM4w-0002EE-8E@fencepost.gnu.org> (message from Richard Stallman on Fri, 18 Mar 2005 13:20:10 -0500)

The following four patches enable `file-name-shadow-mode' by default,
preload rfn-eshadow.el and make define-minor-mode accept an
:initialize argument.  (It currently kind of accepts such an argument,
but the result is that the macroexpanded defcustom contains two
:initialize keywords, a bug.)  To make things work correctly, I had to
rearrange define-minor-mode to define the mode function before the
defcustom.  Apparently, this gives no compiler warnings (I checked),
even though the function uses the mode variable, which is, in the new
version, not yet defcustomed.

The patches to loadup.el and src/Makefile.in are identical to those I
sent earlier.

I can install if desired.

===File ~/easy-mmode-diff===================================
*** easy-mmode.el	02 Nov 2004 08:26:43 -0600	1.55
--- easy-mmode.el	18 Mar 2005 18:25:25 -0600	
***************
*** 131,150 ****
  	 (hook (intern (concat mode-name "-hook")))
  	 (hook-on (intern (concat mode-name "-on-hook")))
  	 (hook-off (intern (concat mode-name "-off-hook")))
! 	 keyw keymap-sym)
  
      ;; Check keys.
      (while (keywordp (setq keyw (car body)))
        (setq body (cdr body))
        (case keyw
! 	(:init-value (setq init-value (pop body)))
! 	(:lighter (setq lighter (pop body)))
! 	(:global (setq globalp (pop body)))
! 	(:extra-args (setq extra-args (pop body)))
! 	(:group (setq group (nconc group (list :group (pop body)))))
! 	(:require (setq require (pop body)))
! 	(:keymap (setq keymap (pop body)))
! 	(t (push keyw extra-keywords) (push (pop body) extra-keywords))))
  
      (setq keymap-sym (if (and keymap (symbolp keymap)) keymap
  		       (intern (concat mode-name "-map"))))
--- 131,151 ----
  	 (hook (intern (concat mode-name "-hook")))
  	 (hook-on (intern (concat mode-name "-on-hook")))
  	 (hook-off (intern (concat mode-name "-off-hook")))
! 	 keyw keymap-sym initialize)
  
      ;; Check keys.
      (while (keywordp (setq keyw (car body)))
        (setq body (cdr body))
        (case keyw
! 	    (:init-value (setq init-value (pop body)))
! 	    (:lighter (setq lighter (pop body)))
! 	    (:global (setq globalp (pop body)))
! 	    (:extra-args (setq extra-args (pop body)))
! 	    (:group (setq group (nconc group (list :group (pop body)))))
! 	    (:initialize (setq initialize (list :initialize (pop body))))
! 	    (:require (setq require (pop body)))
! 	    (:keymap (setq keymap (pop body)))
! 	    (t (push keyw extra-keywords) (push (pop body) extra-keywords))))
  
      (setq keymap-sym (if (and keymap (symbolp keymap)) keymap
  		       (intern (concat mode-name "-map"))))
***************
*** 155,190 ****
  	    `(:group ',(or (custom-current-group)
  			   (intern (replace-regexp-in-string
  				    "-mode\\'" "" mode-name))))))
  
      `(progn
-        ;; Define the variable to enable or disable the mode.
-        ,(if (not globalp)
- 	    `(progn
- 	       (defvar ,mode ,init-value ,(format "Non-nil if %s is enabled.
- Use the command `%s' to change this variable." pretty-name mode))
- 	       (make-variable-buffer-local ',mode))
- 
- 	  (let ((curfile (or (and (boundp 'byte-compile-current-file)
- 				  byte-compile-current-file)
- 			     load-file-name)))
- 	    `(defcustom ,mode ,init-value
- 	       ,(format "Non-nil if %s is enabled.
- See the command `%s' for a description of this minor-mode.
- Setting this variable directly does not take effect;
- use either \\[customize] or the function `%s'."
- 			pretty-name mode mode)
- 	       :set 'custom-set-minor-mode
- 	       :initialize 'custom-initialize-default
- 	       ,@group
- 	       :type 'boolean
- 	       ,@(cond
- 		  ((not (and curfile require)) nil)
- 		  ((not (eq require t)) `(:require ,require))
- 		  (t `(:require
- 		       ',(intern (file-name-nondirectory
- 				  (file-name-sans-extension curfile))))))
- 	       ,@(nreverse extra-keywords))))
- 
         ;; The actual function.
         (defun ,mode (&optional arg ,@extra-args)
  	 ,(or doc
--- 156,165 ----
  	    `(:group ',(or (custom-current-group)
  			   (intern (replace-regexp-in-string
  				    "-mode\\'" "" mode-name))))))
+     (unless initialize
+       (setq initialize '(:initialize 'custom-initialize-default)))
  
      `(progn
         ;; The actual function.
         (defun ,mode (&optional arg ,@extra-args)
  	 ,(or doc
***************
*** 219,225 ****
  	 ;; Return the new setting.
  	 ,mode)
  
!        ;; Autoloading an easy-mmode-define-minor-mode autoloads
         ;; everything up-to-here.
         :autoload-end
  
--- 194,228 ----
  	 ;; Return the new setting.
  	 ,mode)
  
!        ;; Define the variable to enable or disable the mode.
!        ,(if (not globalp)
! 	    `(progn
! 	       (defvar ,mode ,init-value ,(format "Non-nil if %s is enabled.
! Use the command `%s' to change this variable." pretty-name mode))
! 	       (make-variable-buffer-local ',mode))
! 
! 	  (let ((curfile (or (and (boundp 'byte-compile-current-file)
! 				  byte-compile-current-file)
! 			     load-file-name)))
! 	    `(defcustom ,mode ,init-value
! 	       ,(format "Non-nil if %s is enabled.
! See the command `%s' for a description of this minor-mode.
! Setting this variable directly does not take effect;
! use either \\[customize] or the function `%s'."
! 			pretty-name mode mode)
! 	       :set 'custom-set-minor-mode
! 	       ,@initialize
! 	       ,@group
! 	       :type 'boolean
! 	       ,@(cond
! 		  ((not (and curfile require)) nil)
! 		  ((not (eq require t)) `(:require ,require))
! 		  (t `(:require
! 		       ',(intern (file-name-nondirectory
! 				  (file-name-sans-extension curfile))))))
! 	       ,@(nreverse extra-keywords))))
! 
!       ;; Autoloading an easy-mmode-define-minor-mode autoloads
         ;; everything up-to-here.
         :autoload-end
  
============================================================

===File ~/rfn-eshadow-diff==================================
*** rfn-eshadow.el	02 Sep 2003 07:36:02 -0500	1.12
--- rfn-eshadow.el	18 Mar 2005 17:49:19 -0600	
***************
*** 92,98 ****
  		  (symbol :tag "Property")
  		  (sexp :tag "Value")))))
  
- ;;;###autoload
  (defcustom file-name-shadow-properties
    '(face file-name-shadow field shadow)
    "Properties given to the `shadowed' part of a filename in the minibuffer.
--- 92,97 ----
***************
*** 102,108 ****
    :type file-name-shadow-properties-custom-type
    :group 'minibuffer)
  
- ;;;###autoload
  (defcustom file-name-shadow-tty-properties
    '(before-string "{" after-string "} " field shadow)
    "Properties given to the `shadowed' part of a filename in the minibuffer.
--- 101,106 ----
***************
*** 195,201 ****
  ;;; `define-minor-mode' actually calls the mode-function if the
  ;;; associated variable is non-nil, which requires that all needed
  ;;; functions be already defined.  [This is arguably a bug in d-m-m]
- ;;;###autoload
  (define-minor-mode file-name-shadow-mode
    "Toggle File-Name Shadow mode.
  When active, any part of a filename being read in the minibuffer
--- 193,198 ----
***************
*** 207,212 ****
--- 204,211 ----
  With prefix argument ARG, turn on if positive, otherwise off.
  Returns non-nil if the new state is enabled."
    :global t
+   :init-value t
+   :initialize 'custom-initialize-set
    :group 'minibuffer
    (if file-name-shadow-mode
        ;; Enable the mode
============================================================

===File ~/loadup-diff=======================================
*** loadup.el	27 Dec 2004 15:02:07 -0600	1.135
--- loadup.el	18 Mar 2005 15:15:11 -0600	
***************
*** 192,197 ****
--- 192,198 ----
  
  (load "vc-hooks")
  (load "ediff-hook")
+ (load "rfn-eshadow")
  (message "%s" (garbage-collect))
  
  ;If you want additional libraries to be preloaded and their
============================================================
	
===File ~/src-Makefile.in-diff==============================
*** Makefile.in	30 Nov 2004 16:57:14 -0600	1.307
--- Makefile.in	17 Mar 2005 20:58:22 -0600	
***************
*** 779,784 ****
--- 779,785 ----
  	${lispsource}emacs-lisp/timer.elc \
  	${lispsource}vc-hooks.elc \
  	${lispsource}ediff-hook.elc \
+ 	${lispsource}rfn-eshadow.elc \
  	VMS_SUPPORT \
  	MSDOS_SUPPORT \
  	WINNT_SUPPORT \
***************
*** 870,875 ****
--- 871,877 ----
  	../lisp/emacs-lisp/timer.elc \
  	../lisp/vc-hooks.elc \
  	../lisp/ediff-hook.elc \
+ 	../lisp/rfn-eshadow.elc \
  	../lisp/widget.elc \
  	../lisp/window.elc \
  	../lisp/version.el
============================================================

  reply	other threads:[~2005-03-19 15:21 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-17  9:16 file-name-shadow-mode David Kastrup
2005-03-17 12:16 ` file-name-shadow-mode Matt Hodges
2005-03-18  1:56   ` file-name-shadow-mode Miles Bader
2005-03-18  1:59 ` file-name-shadow-mode Miles Bader
2005-03-18  2:17   ` file-name-shadow-mode Nick Roberts
2005-03-18  4:35   ` file-name-shadow-mode Luc Teirlinck
2005-03-18  4:47     ` file-name-shadow-mode Stefan Monnier
2005-03-18  4:55       ` file-name-shadow-mode Luc Teirlinck
2005-03-18  5:18       ` file-name-shadow-mode Luc Teirlinck
2005-03-18  5:37       ` file-name-shadow-mode Luc Teirlinck
2005-03-18 18:20       ` file-name-shadow-mode Richard Stallman
2005-03-19 15:21         ` Luc Teirlinck [this message]
2005-03-19 15:45           ` file-name-shadow-mode David Kastrup
2005-03-19 16:45           ` file-name-shadow-mode Stefan Monnier
2005-03-20  2:14             ` file-name-shadow-mode Luc Teirlinck
2005-03-20 14:13               ` file-name-shadow-mode Stefan Monnier
2005-03-20 16:02                 ` file-name-shadow-mode Luc Teirlinck
2005-03-20 16:18                 ` file-name-shadow-mode Luc Teirlinck
2005-03-20  2:30             ` file-name-shadow-mode Luc Teirlinck
2005-03-20  3:33               ` file-name-shadow-mode Miles Bader
2005-03-20  4:28                 ` file-name-shadow-mode David Kastrup
2005-03-20 17:30                 ` file-name-shadow-mode Luc Teirlinck
2005-03-20 18:10                   ` file-name-shadow-mode David Kastrup
2005-03-21  1:19                   ` file-name-shadow-mode Richard Stallman
2005-03-20 18:01                 ` file-name-shadow-mode Richard Stallman
2005-03-20 18:24                   ` file-name-shadow-mode Luc Teirlinck
2005-03-20 18:47                     ` file-name-shadow-mode David Kastrup
2005-03-20 21:11                   ` file-name-shadow-mode Luc Teirlinck
2005-03-20 21:25                     ` file-name-shadow-mode Luc Teirlinck
2005-03-21 13:44                       ` file-name-shadow-mode Stefan Monnier
2005-03-21 22:24                         ` file-name-shadow-mode Luc Teirlinck
2005-03-21 23:00                           ` file-name-shadow-mode Stefan Monnier
2005-03-22 20:44                             ` file-name-shadow-mode Richard Stallman
2005-03-28 21:32                               ` file-name-shadow-mode Stefan Monnier
2005-03-21 13:24                   ` file-name-shadow-mode Stefan Monnier
2005-03-21 14:05                     ` file-name-shadow-mode David Kastrup
2005-03-21 16:48                       ` file-name-shadow-mode Stefan Monnier
2005-03-22  3:34                       ` file-name-shadow-mode Richard Stallman
2005-03-21 14:26                     ` file-name-shadow-mode Miles Bader
2005-03-21 15:14                       ` file-name-shadow-mode David Kastrup
2005-03-21 15:47                         ` file-name-shadow-mode David Kastrup
2005-03-21 16:58                       ` file-name-shadow-mode Stefan Monnier
2005-03-21 23:57                     ` file-name-shadow-mode Luc Teirlinck
2005-03-23 22:55                     ` file-name-shadow-mode Stefan Monnier
2005-03-24  0:04                       ` file-name-shadow-mode David Kastrup
2005-03-25  6:42                         ` file-name-shadow-mode Richard Stallman
2005-03-25  8:45                           ` file-name-shadow-mode David Kastrup
2005-03-18  5:23 ` file-name-shadow-mode Richard Stallman

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=200503191521.j2JFL8901509@raven.dms.auburn.edu \
    --to=teirllm@dms.auburn.edu \
    --cc=emacs-devel@gnu.org \
    --cc=miles@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=snogglethorpe@gmail.com \
    /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.