;;; loadhist.el --- lisp functions for working with feature groups
;; Copyright (C) 1995, 1998, 2000, 2001, 2002, 2003, 2004,
-;; 2005, 2006, 2007 Free Software Foundation, Inc.
+;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Maintainer: FSF
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
(let (provides)
(dolist (x (file-loadhist-lookup file) provides)
(when (eq (car-safe x) 'provide)
- (push x provides)))))
+ (push (cdr x) provides)))))
(defun file-requires (file)
"Return the list of features required by FILE as it was loaded.
(let (requires)
(dolist (x (file-loadhist-lookup file) requires)
(when (eq (car-safe x) 'require)
- (push x requires)))))
+ (push (cdr x) requires)))))
(defsubst file-set-intersect (p q)
"Return the set intersection of two lists."
(defvar unload-feature-special-hooks
'(after-change-functions after-insert-file-functions
after-make-frame-functions auto-fill-function before-change-functions
- blink-paren-function buffer-access-fontify-functions command-line-functions
- comment-indent-function compilation-finish-functions
+ blink-paren-function buffer-access-fontify-functions
+ choose-completion-string-functions command-line-functions
+ comment-indent-function compilation-finish-functions delete-frame-functions
disabled-command-function find-file-not-found-functions
font-lock-beginning-of-syntax-function font-lock-fontify-buffer-function
font-lock-fontify-region-function font-lock-mark-block-function
font-lock-syntactic-face-function font-lock-unfontify-buffer-function
font-lock-unfontify-region-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-contents-functions write-file-functions
+ redisplay-end-trigger-functions suspend-tty-functions
+ temp-buffer-show-function window-scroll-functions
+ window-size-change-functions write-contents-functions write-file-functions
write-region-annotate-functions)
"A list of special hooks from Info node `(elisp)Standard Hooks'.
(unload-func (intern-soft (concat name "-unload-function"))))
;; If FEATURE-unload-function is defined and returns non-nil,
;; don't try to do anything more; otherwise proceed normally.
- (unless (and (bound-and-true-p unload-func)
+ (unless (and (fboundp unload-func)
(funcall unload-func))
;; Try to avoid losing badly when hooks installed in critical
;; places go away. (Some packages install things on