X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fpackage-admin.el;h=2f971ea966a33be4ad5a8484b7063f2b9498d3ec;hb=966e4965d6d47b225bd3d33359a0d7af12b03a07;hp=dcc62a55eec86772df82ae770740ab71d3725992;hpb=cb9f6f4eadc44f1becb32cbbd1db26449e347755;p=chise%2Fxemacs-chise.git diff --git a/lisp/package-admin.el b/lisp/package-admin.el index dcc62a5..2f971ea 100644 --- a/lisp/package-admin.el +++ b/lisp/package-admin.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1997 by Free Software Foundation, Inc. -;; Author: SL Baur +;; Author: SL Baur ;; Keywords: internal ;; This file is part of XEmacs. @@ -38,11 +38,13 @@ (defvar package-admin-temp-buffer "*Package Output*" "Temporary buffer where output of backend commands is saved.") -(defvar package-admin-install-function 'package-admin-default-install-function +(defvar package-admin-install-function (if (eq system-type 'windows-nt) + 'package-admin-install-function-mswindows + 'package-admin-default-install-function) "The function to call to install a package. -Three args are passed: FILENAME PKG-DIR BUF +Three args are passed: FILENAME PKG-DIR BUFFER Install package FILENAME into directory PKG-DIR, with any messages output -to buffer BUF.") +to buffer BUFFER.") (defvar package-admin-error-messages '( "No space left on device" @@ -121,31 +123,31 @@ The optional `pkg-dir' can be used to override the default package hierarchy ;; rest of command line follows package-admin-xemacs file destination))) -(defun package-admin-install-function-mswindows (file pkg-dir buf) - "Install function for mswindows" +(defun package-admin-install-function-mswindows (file pkg-dir buffer) + "Install function for mswindows." (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))) + (call-process "minitar" nil buffer t file))) -(defun package-admin-default-install-function (file pkg-dir buf) +(defun package-admin-default-install-function (filename pkg-dir buffer) "Default function to install a package. Install package FILENAME into directory PKG-DIR, with any messages output -to buffer BUF." +to BUFFER." (let* ((pkg-dir (file-name-as-directory pkg-dir)) (default-directory pkg-dir) - (filename (expand-file-name file))) + (filename (expand-file-name filename))) (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) + (if (shell-command (concat "gunzip -c " filename " | tar xvf -") buffer) 0 1) )) ; (call-process "add-big-package.sh" ; nil -; buf +; buffer ; t ; ;; rest of command line follows ; package-admin-xemacs file pkg-dir)) @@ -164,7 +166,7 @@ or return a location appropriate for the package otherwise." (setq autoload-dir (feature-file package-feature)) (setq autoload-dir (file-name-directory autoload-dir)) (member autoload-dir late-package-load-path)) - ;; Find the corresonding entry in late-package + ;; Find the corresponding entry in late-package (setq pkg-dir (car-safe (member-if (lambda (h) (string-match (concat "^" (regexp-quote h)) @@ -175,8 +177,10 @@ or return a location appropriate for the package otherwise." ;; Ok we need to guess (if mule-related (package-admin-get-install-dir 'mule-base nil nil) - (car (last late-packages))))))) - + (if (eq package 'xemacs-base) + (car (last late-packages)) + (package-admin-get-install-dir 'xemacs-base nil nil))))))) + (defun package-admin-get-manifest-file (pkg-topdir package) @@ -290,7 +294,7 @@ is the top-level directory under which the package was installed." ;; Create pkginfo, if necessary (if (not (file-directory-p pathname)) (make-directory pathname)) - (setq pathname (expand-file-name + (setq pathname (expand-file-name (concat "MANIFEST." package-name) pathname)) (save-excursion @@ -431,13 +435,14 @@ PACKAGE is a symbol, not a string." ;; Note, user might have removed the file! (condition-case () (delete-file file) - (error nil))) ;; We may want to turn the error into a Warning? + (error nil))) ;; We may want to turn the error into a Warning? (forward-line 1)) - + ;; Delete empty directories. (if dirs (let ( (orig-default-directory default-directory) - directory files file ) + ;; directory files file + ) ;; Make sure we preserve the existing `default-directory'. ;; JV, why does this change the default directory? Does it indeed? (unwind-protect @@ -468,7 +473,7 @@ PACKAGE is a symbol, not a string." (lambda (dir) (condition-case () (delete-directory dir))) - dirs)) + dirs)) (setq default-directory orig-default-directory) ))) ) @@ -494,7 +499,7 @@ PACKAGE is a symbol, not a string." (package-admin-rmtree package-lispdir) (message "Removing old lisp directory \"%s\" ... done" package-lispdir) - )) + )) ;; Delete the package from the database of installed packages. (package-delete-name package)))