Commit 12d9b59e authored by Kim F. Storm's avatar Kim F. Storm
Browse files

(read-feature): Reimplement. New optional arg LOADED-P.

(unload-feature): Update interactive spec accordingly.
parent ba8357c8
......@@ -111,17 +111,18 @@ A library name is equivalent to the file name that `load-library' would load."
(setq dependents (cons (car x) 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)))
;; Complete only features loaded from a file
#'(lambda (f) (feature-file (intern (car f))))
(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."
(completing-read prompt
(cons nil features)
(and loaded-p
#'(lambda (f)
(and f ; ignore nil
(feature-file f))))
(defvaralias 'loadhist-hook-functions 'unload-feature-special-hooks)
(defvar unload-feature-special-hooks
......@@ -162,7 +163,9 @@ the package's feature list (before anything is unbound) in the
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))
(read-feature "Unload feature: " t) current-prefix-arg))
(unless (featurep feature)
(error "%s is not a currently loaded feature" (symbol-name feature)))
(unless force
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment