X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/9850eff524bd0747a9561f3b4c90dfc3749f4ecb..f2536958ec711b50a0cf8714defb921193ea8ae4:/lisp/rfn-eshadow.el diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el index f44eafe8b5..362ffa7237 100644 --- a/lisp/rfn-eshadow.el +++ b/lisp/rfn-eshadow.el @@ -1,10 +1,10 @@ ;;; rfn-eshadow.el --- Highlight `shadowed' part of read-file-name input text ;; -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 2000-2016 Free Software Foundation, Inc. ;; ;; Author: Miles Bader ;; Keywords: convenience minibuffer +;; Package: emacs ;; This file is part of GNU Emacs. @@ -92,7 +92,8 @@ (sexp :tag "Value"))))) (defcustom file-name-shadow-properties - '(face file-name-shadow field shadow) + ;; FIXME: should we purecopy this? +'(face file-name-shadow field shadow) "Properties given to the `shadowed' part of a filename in the minibuffer. Only used when `file-name-shadow-mode' is active. If Emacs is not running under a window system, @@ -102,7 +103,7 @@ If Emacs is not running under a window system, :version "22.1") (defcustom file-name-shadow-tty-properties - '(before-string "{" after-string "} " field shadow) + (purecopy '(before-string "{" after-string "} " field shadow)) "Properties given to the `shadowed' part of a filename in the minibuffer. Only used when `file-name-shadow-mode' is active and Emacs is not running under a window-system; if Emacs is running under a window @@ -175,10 +176,11 @@ This is intended to be used as a minibuffer `post-command-hook' for `file-name-shadow-mode'; the minibuffer should have already been set up by `rfn-eshadow-setup-minibuffer'." (condition-case nil - (let ((goal (substitute-in-file-name (minibuffer-contents))) - (mid (overlay-end rfn-eshadow-overlay)) - (start (minibuffer-prompt-end)) - (end (point-max))) + (let* ((non-essential t) + (goal (substitute-in-file-name (minibuffer-contents))) + (mid (overlay-end rfn-eshadow-overlay)) + (start (minibuffer-prompt-end)) + (end (point-max))) (unless ;; Catch the common case where the shadow does not need to move. (and mid @@ -206,16 +208,23 @@ been set up by `rfn-eshadow-setup-minibuffer'." (error nil))) (define-minor-mode file-name-shadow-mode - "Toggle File-Name Shadow mode. -When active, any part of a filename being read in the minibuffer -that would be ignored (because the result is passed through + "Toggle file-name shadowing in minibuffers (File-Name Shadow mode). +With a prefix argument ARG, enable File-Name Shadow mode if ARG +is positive, and disable it otherwise. If called from Lisp, +enable the mode if ARG is omitted or nil. + +File-Name Shadow mode is a global minor mode. When enabled, any +part of a filename being read in the minibuffer that would be +ignored (because the result is passed through `substitute-in-file-name') is given the properties in -`file-name-shadow-properties', which can be used to make -that portion dim, invisible, or otherwise less visually noticeable. - -With prefix argument ARG, turn on if positive, otherwise off. -Returns non-nil if the new state is enabled." +`file-name-shadow-properties', which can be used to make that +portion dim, invisible, or otherwise less visually noticeable." :global t + ;; We'd like to use custom-initialize-set here so the setup is done + ;; before dumping, but at the point where the defcustom is evaluated, + ;; the corresponding function isn't defined yet, so + ;; custom-initialize-set signals an error. + :initialize 'custom-initialize-delay :init-value t :group 'minibuffer :version "22.1" @@ -233,5 +242,4 @@ Returns non-nil if the new state is enabled." (provide 'rfn-eshadow) -;; arch-tag: dcf70a52-0115-4ec2-b1e3-4f8d3541a888 ;;; rfn-eshadow.el ends here