all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: David Kastrup <dak@gnu.org>
To: "Herbert Euler" <herberteuler@hotmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: A suggestion...
Date: Thu, 17 May 2007 09:14:14 +0200	[thread overview]
Message-ID: <85zm43zzuh.fsf@lola.goethe.zz> (raw)
In-Reply-To: <BAY143-F194CDB2E5C45D8A9132E7FDA330@phx.gbl> (Herbert Euler's message of "Thu\, 17 May 2007 12\:31\:45 +0800")

"Herbert Euler" <herberteuler@hotmail.com> writes:

>>When doing something like C-h f for a function, one gets displayed a
>>hyperlink to the corresponding source file.
>>
>>Now there is not rarely the situation that one actually wants not to
>>go to the Elisp file in load-path, but rather the actual source file.
>>
>>It happens that .elc files have a header similar to the following:
>>
>>;ELC.
>>;;; Compiled by dak@lola.quinscape.zz on Mon May 14 12:09:35 2007
>>;;; from file /rep/emacs/lisp/gnus/mml2015.el
>>;;; in Emacs version 23.0.51
>>;;; with all optimizations.
>>
>>The information is sufficient for determining whether the compilation
>>happened on the current machine by the current user, and if so, what
>>the actual source file has been.
>>
>>So in this particular case, I'd prefer if, without further
>>configuration and ado, I'd be landed in the corresponding source file
>>if it is still present on the given machine.
>>
>>Since I have several packages I build and install from the respective
>>CVS source archives, having this work automatically would be quite
>>nice.
>
> I agree.  M-. now always creates buffers like "subr.el<2>", which
> is not good.

I have in my own personal .emacs file the following which mitigates
the problem but requires manual configuration for every package you
work with.  And at my Emacs at the workplace, I have not yet adapted
.emacs, so I was annoyed again.  All the info for an automatic
solution is actually in-place in the compiled Lisp files.  Even when
some installation procedure copies _only_ the compiled files.

(defcustom find-function-transform-list
  `((,(expand-file-name ".." data-directory)
     "/home/tmp/emacs")
    ("/usr/local/emacs-21/share/emacs/site-lisp/preview"
     "/home/tmp/auctex/preview")
    ("/usr/local/emacs-21/share/emacs/site-lisp/auctex"
     "/home/tmp/auctex/preview"
     "/home/tmp/auctex"))
  "File prefixes to transform `find-function-source-path'."
  :group 'find-file
  :type '(repeat (list string (repeat string))))


(defadvice find-library-name (around find-function-transform activate)
  (let ((find-function-source-path (or find-function-source-path load-path)))
    (let (lst case-fold-search lst2 len elt2)
      (setq find-function-source-path
	    (dolist (elt find-function-source-path (nreverse lst))
	      (setq lst2 find-function-transform-list)
	      (catch 'found
		(while lst2
		  (setq elt2 (pop lst2)
			len (length (car elt2)))
		  (when (or (string= elt (car elt2))
			    (and (< len (length elt))
				 (string= (substring elt 0 (1+ len))
					  (concat (car elt2) "/"))))
		    (while (setq elt2 (cdr elt2))
		      (push (concat (car elt2) (substring elt len)) lst))
		    (throw 'found t)))
		(push elt lst)))))
    ad-do-it))


-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

  reply	other threads:[~2007-05-17  7:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-14 10:16 A suggestion David Kastrup
2007-05-17  4:31 ` Herbert Euler
2007-05-17  7:14   ` David Kastrup [this message]
2007-05-17 14:28     ` Jan Djärv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=85zm43zzuh.fsf@lola.goethe.zz \
    --to=dak@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=herberteuler@hotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.