# HG changeset patch # User Kim F. Storm # Date 1175878999 0 # Node ID a188649f301c058a27cac0132ad586975fdfea80 # Parent 0d13000e85a0090ceb2ff2247fba3d7af9a80aa1 (read-feature): Reimplement. New optional arg LOADED-P. (unload-feature): Update interactive spec accordingly. diff -r 0d13000e85a0 -r a188649f301c lisp/loadhist.el --- a/lisp/loadhist.el Fri Apr 06 17:02:57 2007 +0000 +++ b/lisp/loadhist.el Fri Apr 06 17:03:19 2007 +0000 @@ -111,17 +111,18 @@ (setq dependents (cons (car x) dependents)))) dependents)) -(defun read-feature (prompt) - "Read a feature name \(string\) from the minibuffer. -Prompt with PROMPT and completing from `features', and -return the feature \(symbol\)." - (intern (completing-read prompt - (mapcar (lambda (feature) - (list (symbol-name feature))) - features) - ;; Complete only features loaded from a file - #'(lambda (f) (feature-file (intern (car f)))) - t))) +(defun read-feature (prompt &optional loaded-p) + "Read feature name from the minibuffer, prompting with string PROMPT. +If optional second arg LOADED-P is non-nil, the feature must be loaded +from a file." + (intern + (completing-read prompt + (cons nil features) + (and loaded-p + #'(lambda (f) + (and f ; ignore nil + (feature-file f)))) + loaded-p))) (defvaralias 'loadhist-hook-functions 'unload-feature-special-hooks) (defvar unload-feature-special-hooks @@ -162,7 +163,9 @@ variable `unload-hook-features-list' and could remove features from it in the event that the package has done something normally-ill-advised, such as redefining an Emacs function." - (interactive (list (read-feature "Feature: ") current-prefix-arg)) + (interactive + (list + (read-feature "Unload feature: " t) current-prefix-arg)) (unless (featurep feature) (error "%s is not a currently loaded feature" (symbol-name feature))) (unless force