# HG changeset patch # User Dave Love # Date 959024134 0 # Node ID 86d462e378ceb1d6570c4ef9b402a20328ec0da6 # Parent cdecd2b73d56a7adfa36de5f1d94b7f9256ab062 (feature-symbols, file-provides, file-requires): Use mapc. (feature-file): Avoid calling symbol-name. Doc fix. (file-set-intersect, file-dependents): Use dolist, not mapcar. (loadhist-hook-functions): Add mouse-position-function. (unload-feature): Change uses of mapcar. diff -r cdecd2b73d56 -r 86d462e378ce lisp/loadhist.el --- a/lisp/loadhist.el Mon May 22 19:29:04 2000 +0000 +++ b/lisp/loadhist.el Mon May 22 19:35:34 2000 +0000 @@ -1,9 +1,9 @@ ;;; loadhist.el --- lisp functions for working with feature groups -;; Copyright (C) 1995, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1998, 2000 Free Software Foundation, Inc. ;; Author: Eric S. Raymond -;; Version: 1.0 +;; Maintainer: FSF ;; Keywords: internal ;; This file is part of GNU Emacs. @@ -34,72 +34,65 @@ (defun feature-symbols (feature) "Return the file and list of symbols associated with a given FEATURE." (catch 'foundit - (mapcar - (function (lambda (x) - (if (member (cons 'provide feature) (cdr x)) - (throw 'foundit x)))) - load-history) + (mapc (lambda (x) + (if (member (cons 'provide feature) (cdr x)) + (throw 'foundit x))) + load-history) nil)) (defun feature-file (feature) "Return the file name from which a given FEATURE was loaded. Actually, return the load argument, if any; this is sometimes the name of a -Lisp file without an extension. If the feature came from an eval-buffer on -a buffer with no associated file, or an eval-region, return nil." +Lisp file without an extension. If the feature came from an `eval-buffer' on +a buffer with no associated file, or an `eval-region', return nil." (if (not (featurep feature)) - (error "%s is not a currently loaded feature" (symbol-name feature)) + (error "%S is not a currently loaded feature" feature) (car (feature-symbols feature)))) (defun file-provides (file) "Return the list of features provided by FILE." - (let ((symbols (cdr (assoc file load-history))) (provides nil)) - (mapcar - (function (lambda (x) - (if (and (consp x) (eq (car x) 'provide)) - (setq provides (cons (cdr x) provides))))) - symbols) - provides - )) + (let ((symbols (cdr (assoc file load-history))) + provides) + (mapc (lambda (x) + (if (and (consp x) (eq (car x) 'provide)) + (setq provides (cons (cdr x) provides)))) + symbols) + provides)) (defun file-requires (file) "Return the list of features required by FILE." - (let ((symbols (cdr (assoc file load-history))) (requires nil)) - (mapcar - (function (lambda (x) - (if (and (consp x) (eq (car x) 'require)) - (setq requires (cons (cdr x) requires))))) - symbols) - requires - )) + (let ((symbols (cdr (assoc file load-history))) + requires) + (mapc (lambda (x) + (if (and (consp x) (eq (car x) 'require)) + (setq requires (cons (cdr x) requires)))) + symbols) + requires)) -(defun file-set-intersect (p q) - ;; Return the set intersection of two lists +(defsubst file-set-intersect (p q) + "Return the set intersection of two lists." (let ((ret nil)) - (mapcar - (function (lambda (x) (if (memq x q) (setq ret (cons x ret))))) - p) - ret - )) + (dolist (x p ret) + (if (memq x q) (setq ret (cons x ret)))) + ret)) (defun file-dependents (file) "Return the list of loaded libraries that depend on FILE. This can include FILE itself." - (let ((provides (file-provides file)) (dependents nil)) - (mapcar - (function (lambda (x) - (if (file-set-intersect provides (file-requires (car x))) - (setq dependents (cons (car x) dependents))))) - load-history) - dependents - )) + (let ((provides (file-provides file)) + (dependents nil)) + (dolist (x load-history dependents) + (if (file-set-intersect provides (file-requires (car x))) + (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 (function (lambda (feature) - (list (symbol-name feature)))) + (mapcar (lambda (feature) + (list (symbol-name feature))) features) nil t))) @@ -110,6 +103,7 @@ buffer-access-fontify-functions command-line-functions comment-indent-function kill-buffer-query-functions kill-emacs-query-functions lisp-indent-function +mouse-position-function redisplay-end-trigger-functions temp-buffer-show-function window-scroll-functions window-size-change-functions write-region-annotate-functions) @@ -158,10 +152,10 @@ (string-match "-hooks?\\'" (symbol-name x))) (and (fboundp x) ; Known abnormal hooks etc. (memq x loadhist-hook-functions))) - (mapcar (lambda (y) (remove-hook x y)) - (cdr flist)))))) - (mapcar - (lambda (x) + (dolist (y (cdr flist)) + (remove-hook x y)))))) + (mapc + (lambda (x) (cond ((stringp x) nil) ((consp x) ;; Remove any feature names that this file provided.