X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/cce7d53002e8abc346b67ea4100507b0e7c4d68e..d8788e1e6f06cc719c4348c407015338a59a2f05:/lisp/pcmpl-rpm.el diff --git a/lisp/pcmpl-rpm.el b/lisp/pcmpl-rpm.el index 475215b162..f28469d791 100644 --- a/lisp/pcmpl-rpm.el +++ b/lisp/pcmpl-rpm.el @@ -1,6 +1,6 @@ ;;; pcmpl-rpm.el --- functions for dealing with rpm completions -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Package: pcomplete @@ -29,6 +29,13 @@ ;; Functions: +;; FIXME rpm -qa can be slow, so: +;; Adding --nodigest --nosignature is MUCH faster. +;; (Probably need to test --help for those options though.) +;; Consider caching the result (cf woman). +;; Consider printing an explanatory message before running -qa. +;; +;; Seems pointless for this to be a defsubst. (defsubst pcmpl-rpm-packages () (split-string (pcomplete-process-result "rpm" "-q" "-a"))) @@ -92,6 +99,7 @@ '("--changelog" "--dbpath" "--dump" + "--file" "--ftpport" ;nyi for the next four "--ftpproxy" "--httpport" @@ -112,6 +120,8 @@ (pcomplete-here*)) ((pcomplete-test "--rcfile") (pcomplete-here* (pcomplete-entries))) + ((pcomplete-test "--file") + (pcomplete-here* (pcomplete-entries))) ((pcomplete-test "--root") (pcomplete-here* (pcomplete-dirs))) ((pcomplete-test "--scripts") @@ -129,7 +139,9 @@ (pcomplete-opt "af.p(pcmpl-rpm-files)ilsdcvR") (if (pcomplete-test "-[^-]*p" 'first 1) (pcomplete-here (pcmpl-rpm-files)) - (pcomplete-here (pcmpl-rpm-packages)))))) + (if (pcomplete-test "-[^-]*f" 'first 1) + (pcomplete-here* (pcomplete-entries)) + (pcomplete-here (pcmpl-rpm-packages))))))) ((pcomplete-test "--pipe") (pcomplete-here* (funcall pcomplete-command-completion-function))) ((pcomplete-test "--rmsource") @@ -313,9 +325,9 @@ (if (pcomplete-match "^-" 0) (pcomplete-opt "v") (pcomplete-here - (if (eq mode 'test) - (pcomplete-dirs-or-entries "\\.tar\\'") - (pcomplete-dirs-or-entries "\\.spec\\'")))))) + (pcomplete-dirs-or-entries (if (eq mode 'test) + "\\.tar\\'" + "\\.spec\\'")))))) (t (error "You must select a mode: -q, -i, -U, --verify, etc"))))))