Mercurial > hg > xemacs-beta
comparison lisp/package-admin.el @ 382:064ab7fed2e0 r21-2-6
Import from CVS: tag r21-2-6
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:07:39 +0200 |
parents | 8626e4521993 |
children | bbff43aa5eb7 |
comparison
equal
deleted
inserted
replaced
381:908a86f940e6 | 382:064ab7fed2e0 |
---|---|
121 ;; rest of command line follows | 121 ;; rest of command line follows |
122 package-admin-xemacs file destination))) | 122 package-admin-xemacs file destination))) |
123 | 123 |
124 (defun package-admin-install-function-mswindows (file pkg-dir buf) | 124 (defun package-admin-install-function-mswindows (file pkg-dir buf) |
125 "Install function for mswindows" | 125 "Install function for mswindows" |
126 (let ( (default-directory pkg-dir) ) | 126 (let ((default-directory (file-name-as-directory pkg-dir))) |
127 (call-process "djtar" nil buf t "-x" file) | 127 (unless (file-directory-p default-directory) |
128 )) | 128 (make-directory default-directory t)) |
129 (call-process "djtar" nil buf t "-x" file))) | |
129 | 130 |
130 (defun package-admin-default-install-function (file pkg-dir buf) | 131 (defun package-admin-default-install-function (file pkg-dir buf) |
131 "Default function to install a package. | 132 "Default function to install a package. |
132 Install package FILENAME into directory PKG-DIR, with any messages output | 133 Install package FILENAME into directory PKG-DIR, with any messages output |
133 to buffer BUF." | 134 to buffer BUF." |
134 (let (filename) | 135 (let* ((pkg-dir (file-name-as-directory pkg-dir)) |
135 (setq filename (expand-file-name file pkg-dir)) | 136 (default-directory pkg-dir) |
137 (filename (expand-file-name file))) | |
138 (unless (file-directory-p pkg-dir) | |
139 (make-directory pkg-dir t)) | |
136 ;; Don't assume GNU tar. | 140 ;; Don't assume GNU tar. |
137 (if (shell-command (concat "gunzip -c " filename " | tar xvf -") buf) | 141 (if (shell-command (concat "gunzip -c " filename " | tar xvf -") buf) |
138 0 | 142 0 |
139 1) | 143 1) |
140 )) | 144 )) |
321 ) | 325 ) |
322 (setq pkg-dir (package-admin-get-install-dir 'unknown pkg-dir)) | 326 (setq pkg-dir (package-admin-get-install-dir 'unknown pkg-dir)) |
323 ;; Insure that the current directory doesn't change | 327 ;; Insure that the current directory doesn't change |
324 (save-excursion | 328 (save-excursion |
325 (set-buffer buf) | 329 (set-buffer buf) |
326 (setq default-directory pkg-dir) | 330 ;; This is not really needed |
331 (setq default-directory (file-name-as-directory pkg-dir)) | |
327 (setq case-fold-search t) | 332 (setq case-fold-search t) |
328 (buffer-disable-undo) | 333 (buffer-disable-undo) |
329 (goto-char (setq start (point-max))) | 334 (goto-char (setq start (point-max))) |
330 (if (= 0 (setq status (funcall package-admin-install-function | 335 (if (= 0 (setq status (funcall package-admin-install-function |
331 file pkg-dir buf))) | 336 file pkg-dir buf))) |