]> code.delx.au - gnu-emacs/blobdiff - lisp/pcmpl-rpm.el
Doc fixes
[gnu-emacs] / lisp / pcmpl-rpm.el
index 3d79dff4579f223a9b38b0bc430ff8936b546115..f28469d791bfe2495eea1410698c8896d2908ddb 100644 (file)
@@ -1,7 +1,8 @@
 ;;; pcmpl-rpm.el --- functions for dealing with rpm completions
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2012 Free Software Foundation, Inc.
+
+;; Package: pcomplete
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Commentary:
 
-;; These functions provide completion rules for RedHat's `rpm' tool.
+;; These functions provide completion rules for the `rpm' command.
 
 ;;; Code:
 
-(provide 'pcmpl-rpm)
-
 (require 'pcomplete)
 
-(defgroup pcmpl-rpm nil
-  "Functions for dealing with CVS completions."
-  :group 'pcomplete)
-
 ;; 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")))
 
 
 ;;;###autoload
 (defun pcomplete/rpm ()
-  "Completion for RedHat's `rpm' command.
-These rules were taken from the output of `rpm --help' on a RedHat 6.1
-system.  They follow my interpretation of what followed, but since I'm
-not a major rpm user/builder, please send me any corrections you find.
-You can use \\[report-emacs-bug] to do so."
+  "Completion for the `rpm' command."
+  ;; Originally taken from the output of `rpm --help' on a Red Hat 6.1 system.
   (let (mode)
     (while (<= pcomplete-index pcomplete-last)
       (unless mode
@@ -100,6 +99,7 @@ You can use \\[report-emacs-bug] to do so."
               '("--changelog"
                 "--dbpath"
                 "--dump"
+                "--file"
                 "--ftpport"            ;nyi for the next four
                 "--ftpproxy"
                 "--httpport"
@@ -120,6 +120,8 @@ You can use \\[report-emacs-bug] to do so."
                (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")
@@ -136,8 +138,10 @@ You can use \\[report-emacs-bug] to do so."
          (if (pcomplete-match "^-" 0)
              (pcomplete-opt "af.p(pcmpl-rpm-files)ilsdcvR")
            (if (pcomplete-test "-[^-]*p" 'first 1)
-               (pcomplete-here (pcmpl-rpm-files))      
-             (pcomplete-here (pcmpl-rpm-packages))))))
+               (pcomplete-here (pcmpl-rpm-files))
+              (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")
@@ -321,11 +325,12 @@ You can use \\[report-emacs-bug] to do so."
          (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"))))))
 
-;; arch-tag: 4e64b490-fecf-430e-b2b9-70a8ad64b8c1
+(provide 'pcmpl-rpm)
+
 ;;; pcmpl-rpm.el ends here