- "site-lisp/"
- "local.lisp/"))
-
-(setq EMACS_DATADIR (expand-file-name EMACS_PREFIX DATADIR))
-
-(defvar LISPDIR (expand-file-name LISP_PREFIX EMACS_DATADIR))
-
+ "site-lisp"
+ "local.lisp"))
+
+(setq PATTERN-TO-INSTALL
+ (expand-file-name (concat ".*/" LISP_PREFIX) PREFIX))
+(setq PATTERN-TO-AVOID
+ (format "%d\\.%s" emacs-major-version emacs-minor-version))
+
+(defvar LISPDIR
+ (or
+ (catch 'tag
+ (let ((rest default-load-path)
+ dir)
+ (while (setq dir (car rest))
+ (or (string-match PATTERN-TO-AVOID dir)
+ (if (string-match PATTERN-TO-INSTALL dir)
+ (throw 'tag (substring dir 0 (match-end 0)))
+ ))
+ (setq rest (cdr rest))
+ )))
+ (expand-file-name (concat
+ (if running-emacs-19
+ "share/"
+ "lib/")
+ (cond ((boundp 'NEMACS) "nemacs/")
+ ((boundp 'MULE) "mule/")
+ (running-xemacs
+ (if (featurep 'mule)
+ "xmule/"
+ "xemacs/"))
+ (t "emacs/"))
+ LISP_PREFIX) PREFIX)
+ ))