comparison lisp/packages.el @ 318:afd57c14dfc8 r21-0b57

Import from CVS: tag r21-0b57
author cvs
date Mon, 13 Aug 2007 10:45:36 +0200
parents d1b52dcaa789
children 1d62742628b6
comparison
equal deleted inserted replaced
317:a2fc9afbef65 318:afd57c14dfc8
133 name)) 133 name))
134 ((< (package-get-key name :version) version) 134 ((< (package-get-key name :version) version)
135 (error "Need version %g of package %s, got version %g" 135 (error "Need version %g of package %s, got version %g"
136 version name (cdr pkg))) 136 version name (cdr pkg)))
137 (t t)))) 137 (t t))))
138
139 (defun package-delete-name (name)
140 (let (pkg)
141 ;; Delete ALL versions of package.
142 ;; This is pretty memory-intensive, as we use copy-alist when deleting
143 ;; package entries, to prevent side-effects in functions that call this
144 ;; one.
145 (while (setq pkg (assq name packages-package-list))
146 (setq packages-package-list (delete pkg (copy-alist
147 packages-package-list)))
148 )
149 ))
138 150
139 ;;; Build time stuff 151 ;;; Build time stuff
140 152
141 (defvar autoload-file-name "auto-autoloads.el" 153 (defvar autoload-file-name "auto-autoloads.el"
142 "Filename that autoloads are expected to be found in.") 154 "Filename that autoloads are expected to be found in.")
291 (setq autoload-list (cdr autoload-list))))) 303 (setq autoload-list (cdr autoload-list)))))
292 304
293 ;; Data-directory is really a list now. Provide something to search it for 305 ;; Data-directory is really a list now. Provide something to search it for
294 ;; directories. 306 ;; directories.
295 307
308 (defun locate-data-directory-list (name &optional dir-list)
309 "Locate the matching list of directories in a search path DIR-LIST.
310 If no DIR-LIST is supplied, it defaults to `data-directory-list'."
311 (unless dir-list
312 (setq dir-list data-directory-list))
313 (let (found found-dir found-dir-list)
314 (while dir-list
315 (setq found (file-name-as-directory (concat (car dir-list) name))
316 found-dir (file-directory-p found))
317 (and found-dir
318 (setq found-dir-list (cons found found-dir-list)))
319 (setq dir-list (cdr dir-list)))
320 (nreverse found-dir-list)))
321
322 ;; Data-directory is really a list now. Provide something to search it for
323 ;; a directory.
324
296 (defun locate-data-directory (name &optional dir-list) 325 (defun locate-data-directory (name &optional dir-list)
297 "Locate a directory in a search path DIR-LIST (a list of directories). 326 "Locate a directory in a search path DIR-LIST (a list of directories).
298 If no DIR-LIST is supplied, it defaults to `data-directory-list'." 327 If no DIR-LIST is supplied, it defaults to `data-directory-list'."
299 (unless dir-list 328 (unless dir-list
300 (setq dir-list data-directory-list)) 329 (setq dir-list data-directory-list))
328 (site-directory (paths-find-site-directory roots base))) 357 (site-directory (paths-find-site-directory roots base)))
329 (paths-uniq-append 358 (paths-uniq-append
330 (and version-directory (list version-directory)) 359 (and version-directory (list version-directory))
331 (and site-directory (list site-directory))))) 360 (and site-directory (list site-directory)))))
332 361
333 (defvar packages-special-base-regexp "^\\(etc\\|info\\|lisp\\|lib-src\\|bin\\)$" 362 (defvar packages-special-base-regexp "^\\(etc\\|info\\|lisp\\|lib-src\\|bin\\|pkginfo\\|man\\)$"
334 "Special subdirectories of packages.") 363 "Special subdirectories of packages.")
335 364
336 (defvar packages-no-package-hierarchy-regexp 365 (defvar packages-no-package-hierarchy-regexp
337 (concat "\\(" paths-version-control-filename-regexp "\\)" 366 (concat "\\(" paths-version-control-filename-regexp "\\)"
338 "\\|" 367 "\\|"