changeset 112007:79209520f4c4

* help-fns.el (find-lisp-object-file-name): Locate .emacs from .emacs.elc (Bug#7530).
author Chong Yidong <cyd@stupidchicken.com>
date Tue, 21 Dec 2010 14:45:11 +0800
parents 5dbf421ae0b5
children 03d428c4090e
files lisp/ChangeLog lisp/help-fns.el
diffstat 2 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Dec 21 10:36:48 2010 +0800
+++ b/lisp/ChangeLog	Tue Dec 21 14:45:11 2010 +0800
@@ -1,5 +1,8 @@
 2010-12-21  Chong Yidong  <cyd@stupidchicken.com>
 
+	* help-fns.el (find-lisp-object-file-name): Locate .emacs from
+	.emacs.elc (Bug#7530).
+
 	* wid-edit.el (widget-image-find): Remove bogus :ascent spec from
 	image spec (Bug#7480).
 
--- a/lisp/help-fns.el	Tue Dec 21 10:36:48 2010 +0800
+++ b/lisp/help-fns.el	Tue Dec 21 14:45:11 2010 +0800
@@ -289,13 +289,19 @@
      ((not (stringp file-name))
       ;; If we don't have a file-name string by now, we lost.
       nil)
+     ;; Now, `file-name' should have become an absolute file name.
+     ;; For files loaded from ~/.emacs.elc, try ~/.emacs.
+     ((let (fn)
+	(and (string-equal file-name
+			   (expand-file-name ".emacs.elc" "~"))
+	     (file-readable-p (setq fn (expand-file-name ".emacs" "~")))
+	     fn)))
+     ;; When the Elisp source file can be found in the install
+     ;; directory, return the name of that file.
      ((let ((lib-name
 	     (if (string-match "[.]elc\\'" file-name)
 		 (substring-no-properties file-name 0 -1)
 	       file-name)))
-	;; When the Elisp source file can be found in the install
-	;; directory return the name of that file - `file-name' should
-	;; have become an absolute file name ny now.
 	(or (and (file-readable-p lib-name) lib-name)
 	    ;; The library might be compressed.
 	    (and (file-readable-p (concat lib-name ".gz")) lib-name))))