summaryrefslogtreecommitdiff
path: root/lisp/subr.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2004-12-27 16:23:34 +0000
committerRichard M. Stallman <rms@gnu.org>2004-12-27 16:23:34 +0000
commit9e247d246e31afad6ce78c65c2e996a8be1fe933 (patch)
tree1f319576089988147753d9d7e7786c2268f2159d /lisp/subr.el
parent654359e2e3cbae9727b2bf6a298054bee9e10d41 (diff)
downloademacs-9e247d246e31afad6ce78c65c2e996a8be1fe933.tar.gz
(messages-buffer-max-lines): Alias for message-log-max.
(symbol-file): Rewritten to handle new load-history format. Now takes an arg TYPE to specify looking for a particular type of definition only.
Diffstat (limited to 'lisp/subr.el')
-rw-r--r--lisp/subr.el32
1 files changed, 24 insertions, 8 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index 84129908fc7..7cfc390d84a 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -823,7 +823,7 @@ is converted into a string by expressing it in decimal."
(defalias 'unfocus-frame 'ignore "")
-;;;; Obsolescence declarations for variables.
+;;;; Obsolescence declarations for variables, and aliases.
(make-obsolete-variable 'directory-sep-char "do not use it." "21.1")
(make-obsolete-variable 'mode-line-inverse-video "use the appropriate faces instead." "21.1")
@@ -840,6 +840,8 @@ is converted into a string by expressing it in decimal."
(make-obsolete-variable 'x-lost-selection-hooks 'x-lost-selection-functions "21.4")
(defvaralias 'x-sent-selection-hooks 'x-sent-selection-functions)
(make-obsolete-variable 'x-sent-selection-hooks 'x-sent-selection-functions "21.4")
+
+(defvaralias 'messages-buffer-max-lines 'message-log-max)
;;;; Alternate names for functions - these are not being phased out.
@@ -1012,19 +1014,33 @@ other hooks, such as major mode hooks, can do the job."
;;; nil nil t)
;;; (setq symbol-file-load-history-loaded t)))
-(defun symbol-file (function)
- "Return the input source from which FUNCTION was loaded.
+(defun symbol-file (symbol &optional type)
+ "Return the input source in which SYMBOL was defined.
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."
- (if (and (symbolp function) (fboundp function)
- (eq 'autoload (car-safe (symbol-function function))))
- (nth 1 (symbol-function function))
+It can also be nil, if the definition is not associated with any file.
+
+If TYPE is nil, then any kind of definition is acceptable.
+If type is `defun' or `defvar', that specifies function
+definition only or variable definition only."
+ (if (and (or (null type) (eq type 'defun))
+ (symbolp symbol) (fboundp symbol)
+ (eq 'autoload (car-safe (symbol-function symbol))))
+ (nth 1 (symbol-function symbol))
(let ((files load-history)
file)
(while files
- (if (member function (cdr (car files)))
+ (if (if type
+ (if (eq type 'defvar)
+ ;; Variables are present just as their names.
+ (member symbol (cdr (car files)))
+ ;; Other types are represented as (TYPE . NAME).
+ (member (cons type symbol) (cdr (car files))))
+ ;; We accept all types, so look for variable def
+ ;; and then for any other kind.
+ (or (member symbol (cdr (car files)))
+ (rassq symbol (cdr (car files)))))
(setq file (car (car files)) files nil))
(setq files (cdr files)))
file)))