From 648cb76c24cd53f99e5bf8322459f7f3cf09a5d4 Mon Sep 17 00:00:00 2001 From: "Tom Breton (Tehom)" Date: Thu, 11 Nov 2010 18:09:29 -0500 Subject: [PATCH] Make autoloads wrt relative filename, not absolute. --- elinstall.el | 52 ++++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/elinstall.el b/elinstall.el index 22a5b3f..6ba7a97 100644 --- a/elinstall.el +++ b/elinstall.el @@ -193,7 +193,8 @@ RELATIVE-NAME is its name respective to some component of load-path." ;; Read the next form and make an autoload. (let* ((form (prog1 (read (current-buffer)) (or (bolp) (forward-line 1)))) - (autoload (make-autoload form load-name))) + (autoload + (make-autoload form relative-name))) (if autoload (push (nth 1 form) autoloads-done) (setq autoload form)) @@ -588,7 +589,7 @@ Other non-nil cases of FORCE are reserved for future development." ;;Target shouldn't already exist, but if force is given, let ;;user override. ;;$$IMPROVE ME If it is a symlink pointing to the same place, - ;;do nothing. + ;;do nothing even on force. ((and (file-exists-p target) (or @@ -675,28 +676,31 @@ Returns a list whose elements are each a cons of: (dolist (act actions) (when act - (let* - ( (deffile-name - (case (car act) - ((add-file-autoloads - add-to-info-path - add-to-load-path) - (second act)) - ((preload-file run-tests byte-compile) - nil))) - - (cell - (if deffile-name - (assoc deffile-name segment-list) - last-segment))) - (if cell - (setcdr cell (cons act (cdr cell))) - (setq segment-list - (cons - (cons - deffile-name - (list act)) - segment-list)))))) + (let + ((cell + (case (car act) + ((add-file-autoloads + add-to-info-path + add-to-load-path) + (let* + ((deffile-name (second act)) + (cell-already + (assoc deffile-name segment-list))) + (if cell-already + cell-already + (let + ((new-cell (list deffile-name))) + (setq segment-list + (cons + new-cell + segment-list)) + new-cell)))) + ((preload-file run-tests byte-compile) + last-segment)))) + + (unless cell "Error: Couldn't find segment") + (setcdr cell (cons act (cdr cell)))))) + (elinstall-remove-empty-segs (append segment-list -- 2.11.4.GIT