Mercurial > hg > xemacs-beta
diff lisp/package-admin.el @ 325:f2b5d7006b0a r21-0-60
Import from CVS: tag r21-0-60
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:47:35 +0200 |
parents | 19dcec799385 |
children | 03446687b7cc |
line wrap: on
line diff
--- a/lisp/package-admin.el Mon Aug 13 10:47:10 2007 +0200 +++ b/lisp/package-admin.el Mon Aug 13 10:47:35 2007 +0200 @@ -123,16 +123,20 @@ (defun package-admin-install-function-mswindows (file pkg-dir buf) "Install function for mswindows" - (let ( (default-directory pkg-dir) ) - (call-process "djtar" nil buf t "-x" file) - )) + (let ((default-directory (file-name-as-directory pkg-dir))) + (unless (file-directory-p default-directory) + (make-directory default-directory t)) + (call-process "djtar" nil buf t "-x" file))) (defun package-admin-default-install-function (file pkg-dir buf) "Default function to install a package. Install package FILENAME into directory PKG-DIR, with any messages output to buffer BUF." - (let (filename) - (setq filename (expand-file-name file pkg-dir)) + (let* ((pkg-dir (file-name-as-directory pkg-dir)) + (default-directory pkg-dir) + (filename (expand-file-name file))) + (unless (file-directory-p pkg-dir) + (make-directory pkg-dir t)) ;; Don't assume GNU tar. (if (shell-command (concat "gunzip -c " filename " | tar xvf -") buf) 0 @@ -320,10 +324,11 @@ start err-list ) (setq pkg-dir (package-admin-get-install-dir 'unknown pkg-dir)) - ;; Insure that the current directory doesn't change + ;; Ensure that the current directory doesn't change (save-excursion (set-buffer buf) - (setq default-directory pkg-dir) + ;; This is not really needed + (setq default-directory (file-name-as-directory pkg-dir)) (setq case-fold-search t) (buffer-disable-undo) (goto-char (setq start (point-max)))