diff options
| author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-08-23 20:22:22 +0200 | 
|---|---|---|
| committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-08-23 20:22:22 +0200 | 
| commit | 533102a1bfe4891ab6adc82ac0492ef2db285b27 (patch) | |
| tree | 02a1410d7fcf91fc4ff161fd8e57b237695fc91b | |
| parent | 350c3ae07c4fa7e99c8f4e638cc2a381265909f4 (diff) | |
| download | geiser-533102a1bfe4891ab6adc82ac0492ef2db285b27.tar.gz geiser-533102a1bfe4891ab6adc82ac0492ef2db285b27.tar.bz2 | |
geiser-reload works again (was broken for installed geiser).
| -rw-r--r-- | elisp/geiser-base.el | 3 | ||||
| -rw-r--r-- | elisp/geiser-reload.el | 36 | 
2 files changed, 18 insertions, 21 deletions
| diff --git a/elisp/geiser-base.el b/elisp/geiser-base.el index ba0067a..fca955a 100644 --- a/elisp/geiser-base.el +++ b/elisp/geiser-base.el @@ -27,7 +27,7 @@  ;;; Emacs compatibility: -(eval-when-compile (require 'cl)) +(require 'cl)  (eval-after-load "ring"    '(when (not (fboundp 'ring-member)) @@ -39,7 +39,6 @@  (when (not (fboundp 'completion-table-dynamic))    (defun completion-table-dynamic (fun) -    (require 'cl)      (lexical-let ((fun fun))        (lambda (string pred action)          (with-current-buffer (let ((win (minibuffer-selected-window))) diff --git a/elisp/geiser-reload.el b/elisp/geiser-reload.el index f592164..97b398d 100644 --- a/elisp/geiser-reload.el +++ b/elisp/geiser-reload.el @@ -23,6 +23,8 @@  (require 'geiser-impl)  (require 'geiser-repl)  (require 'geiser-mode) +(require 'geiser-base) +(require 'geiser)  ;;; Reload: @@ -46,46 +48,42 @@             geiser-custom             geiser-base             geiser-popup +           geiser-install             geiser             geiser-version             ))) -(defun geiser-reload-unload-function () -  (dolist (feature (geiser--features-list)) -    (when (featurep feature) (unload-feature feature t))) -  t) -  (defun geiser-unload () +  "Unload all Geiser modules."    (interactive) -  (unload-feature 'geiser-reload)) +  (let ((fs (geiser--features-list))) +    (unload-feature 'geiser-reload t) +    (dolist (f fs) +      (when (featurep f) (unload-feature f t)))))  (defun geiser-reload (&optional arg)    "Reload Geiser.  With prefix arg, prompts for the DIRECTORY from which Geiser should be -loaded." +loaded again."    (interactive "P")    (let* ((old-dir geiser-elisp-dir)           (dir (or (and arg (read-directory-name "New Geiser elisp dir: "                                                  old-dir old-dir t old-dir)) -                  old-dir)) -         (gf (expand-file-name "geiser.el" dir)) -         (gfi (expand-file-name "geiser-install.el" dir))) -    (unless (or (file-exists-p gfi) -                (file-exists-p gf)) +                  old-dir))) +    (unless (or (file-exists-p (expand-file-name "geiser-reload.el" dir)) +                (file-exists-p (expand-file-name "geiser-reload.elc" dir)))        (error "%s does not contain Geiser!" dir)) -    (let ((installed-impls geiser-impl-installed-implementations) +    (let ((installed (featurep 'geiser-install)) +          (installed-impls geiser-impl-installed-implementations)            (impls geiser-impl--impls)            (repls (geiser-repl--repl-list))            (buffers (geiser-mode--buffers))) -      (setq load-path (remove geiser-elisp-dir load-path))        (geiser-unload) +      (setq load-path (remove old-dir load-path))        (add-to-list 'load-path dir)        (setq geiser-impl-installed-implementations installed-impls) -      (if (file-exists-p gfi) -          (require 'geiser-install) -        (load-file gf)) -      (dolist (feature (geiser--features-list)) -        (load-library (format "%s" feature))) +      (require 'geiser-reload) +      (when installed (require 'geiser-install nil t))        (geiser-impl--reload-implementations impls)        (geiser-repl--restore repls)        (geiser-mode--restore buffers) | 
