Perils of bleeding edge
Posted on Wed 27 July 2011 by alex in geek
I've taken to running the latest emacs from a source tree install. It works well enough and additional modes I use have been liberally ${VC} fetched into my .emacs.d. However there are still a number of packages I'd like to use from Debian's emacs version agnostic site-lisp directories. I came up with this:
;; Add site-lisp to search path ; ; This is a work-around function for when I'm running bleeding ; emacs from the source tree but still want Debian's developer ; tools. I'd caution about having too many extra packages about that ; have been merged into the source tree (cedet etc) lest it get ; confused. (defun load-debian-site-lisp() "Attempt to load Debian's site-lisp if it's there" (interactive) (when (and (not (member "/usr/share/emacs/site-lisp" load-path)) (fboundp 'normal-top-level-add-subdirs-to-load-path)) (let* ((default-directory "/usr/share/emacs/site-lisp")) (normal-top-level-add-subdirs-to-load-path)))) (load-debian-site-lisp)
Which seems to work well enough to give me my debian-changelog-mode back. However it's still not seamless as I have to manually (require 'debian-changelog-mode) before loading a changelog which forces the issue with local variables. I suspect I'll have to replicate the boilerplate that /usr/share/emacs/site-lisp/debian-startup.el does but I can't use because it doesn't degrade gracefully if no debian-emacs-flavour is defined. Suggestions for making this behaviour neater would be useful....