Mercurial > emacs
changeset 39725:c64d3e3adf5d
(symbol-file-load-history-loaded)
(load-symbol-file-load-history, symbol-file): Moved from `help.el'.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Tue, 09 Oct 2001 11:14:31 +0000 |
parents | 6d912cac53cf |
children | 19d78cd38271 |
files | lisp/subr.el |
diffstat | 1 files changed, 39 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/subr.el Tue Oct 09 10:18:43 2001 +0000 +++ b/lisp/subr.el Tue Oct 09 11:14:31 2001 +0000 @@ -797,6 +797,45 @@ (if append (append (symbol-value list-var) (list element)) (cons element (symbol-value list-var)))))) + + +;;; Load history + +(defvar symbol-file-load-history-loaded nil + "Non-nil means we have loaded the file `fns-VERSION.el' in `exec-directory'. +That file records the part of `load-history' for preloaded files, +which is cleared out before dumping to make Emacs smaller.") + +(defun load-symbol-file-load-history () + "Load the file `fns-VERSION.el' in `exec-directory' if not already done. +That file records the part of `load-history' for preloaded files, +which is cleared out before dumping to make Emacs smaller." + (unless symbol-file-load-history-loaded + (load (expand-file-name + ;; fns-XX.YY.ZZ.el does not work on DOS filesystem. + (if (eq system-type 'ms-dos) + "fns.el" + (format "fns-%s.el" emacs-version)) + exec-directory) + ;; The file name fns-%s.el already has a .el extension. + nil nil t) + (setq symbol-file-load-history-loaded t))) + +(defun symbol-file (function) + "Return the input source from which FUNCTION was loaded. +The value is normally a string that was passed to `load': +either an absolute file name, or a library name +\(with no directory name and no `.el' or `.elc' at the end). +It can also be nil, if the definition is not associated with any file." + (load-symbol-file-load-history) + (let ((files load-history) + file functions) + (while files + (if (memq function (cdr (car files))) + (setq file (car (car files)) files nil)) + (setq files (cdr files))) + file)) + ;;;; Specifying things to do after certain files are loaded.