]> git.eshelyaron.com Git - emacs.git/commitdiff
(read-feature): Reimplement. New optional arg LOADED-P.
authorKim F. Storm <storm@cua.dk>
Fri, 6 Apr 2007 17:03:19 +0000 (17:03 +0000)
committerKim F. Storm <storm@cua.dk>
Fri, 6 Apr 2007 17:03:19 +0000 (17:03 +0000)
(unload-feature): Update interactive spec accordingly.

lisp/loadhist.el

index 39d51a280f51acd2478a22c7dbbd533c1b1aa90d..35b010074d04c0edc65ed59893ef736ad271a78a 100644 (file)
@@ -111,17 +111,18 @@ A library name is equivalent to the file name that `load-library' would load."
          (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 @@ 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))
+  (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