function symbol-file symbol \&optional type
This function returns the name of the file that defined
nil, then any kind of definition is acceptable. If
defface, that specifies function definition, variable definition, or face definition only.
The value is normally an absolute file name. It can also be
nil, if the definition is not associated with any file. If
symbol specifies an autoloaded function, the value can be a relative file name without extension.
The basis for
symbol-file is the data in the variable
The value of this variable is an alist that associates the names of loaded library files with the names of the functions and variables they defined, as well as the features they provided or required.
Each element in this alist describes one loaded library (including libraries that are preloaded at startup). It is a list whose CAR is the absolute file name of the library (a string). The rest of the list elements have these forms:
var was defined as a variable.
(defun . fun)
fun was defined.
(t . fun)
fun was previously an autoload before this library redefined it as a function. The following element is always
(defun . fun), which represents defining
fun as a function.
(autoload . fun)
fun was defined as an autoload.
(defface . face)
face was defined.
(require . feature)
feature was required.
(provide . feature)
feature was provided.
(cl-defmethod method specializers)
method was defined by using
specializers as its specializers.
(define-type . type)
type was defined.
The value of
load-history may have one element whose CAR is
nil. This element describes definitions made with
eval-buffer on a buffer that is not visiting a file.
load-history, but does so by adding the symbols defined to the element for the file being visited, rather than replacing that element. See Eval.