X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/a971635315e259c076de020b3676c04d1dcc415e..ed571ccb1d14abc788a29c3b3bbf08aa4b951ab8:/lisp/pcmpl-linux.el diff --git a/lisp/pcmpl-linux.el b/lisp/pcmpl-linux.el index 74a696e7c1..10e762132d 100644 --- a/lisp/pcmpl-linux.el +++ b/lisp/pcmpl-linux.el @@ -1,7 +1,8 @@ ;;; pcmpl-linux.el --- functions for dealing with GNU/Linux completions -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. + +;; Package: pcomplete ;; This file is part of GNU Emacs. @@ -47,9 +48,7 @@ (pcomplete-match-string 1 0))) (while (pcomplete-here (if (file-directory-p "/proc") - (let ((default-directory "/proc/")) - (mapcar 'directory-file-name - (pcomplete-entries "[0-9]+/$")))) + (directory-files "/proc" nil "\\`[0-9]+\\'")) nil 'identity))) ;;;###autoload @@ -68,13 +67,8 @@ (defun pcmpl-linux-fs-types () "Return a list of available fs modules on GNU/Linux systems." (let ((kernel-ver (pcomplete-process-result "uname" "-r"))) - (mapcar - (function - (lambda (fsobj) - (substring fsobj 0 (- (length fsobj) 2)))) - (let ((default-directory - (concat "/lib/modules/" kernel-ver "/fs/"))) - (pcomplete-entries "\\.o$"))))) + (directory-files + (concat "/lib/modules/" kernel-ver "/kernel/fs/")))) (defun pcmpl-linux-mounted-directories () "Return a list of mounted directory names." @@ -89,6 +83,19 @@ (forward-line))) (pcomplete-uniqify-list points)))) +(defun pcomplete-pare-list (l r) + "Destructively remove from list L all elements matching any in list R. +Test is done using `equal'." + (while (and l (and r (member (car l) r))) + (setq l (cdr l))) + (let ((m l)) + (while m + (while (and (cdr m) + (and r (member (cadr m) r))) + (setcdr m (cddr m))) + (setq m (cdr m)))) + l) + (defun pcmpl-linux-mountable-directories () "Return a list of mountable directory names." (let (points) @@ -104,5 +111,4 @@ (pcomplete-uniqify-list points) (cons "swap" (pcmpl-linux-mounted-directories)))))) -;; arch-tag: bb0961a6-a623-463d-92c6-497c317293b1 ;;; pcmpl-linux.el ends here