[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 14c641aea51016fc9f3d2a6e9dabb585491e73f7
Ville Skyttä
ville.skytta at iki.fi
Sun Feb 15 16:51:09 UTC 2009
The following commit has been merged in the master branch:
commit c492f00705511800cee5634d241198355ff9db10
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Sun Feb 15 18:47:34 2009 +0200
Extract process name completion from _killall to _pnames, make it work for others than Linux and FreeBSD.
diff --git a/bash_completion b/bash_completion
index b03d79f..e522898 100644
--- a/bash_completion
+++ b/bash_completion
@@ -428,6 +428,31 @@ _pgids()
COMPREPLY=( $( compgen -W '$( command ps axo pgid | sed 1d )' -- $cur ))
}
+# This function completes on process names.
+# AIX and SunOS prefer X/Open, all else should be BSD.
+[ $UNAME = SunOS -o $UNAME = AIX ] &&
+_pnames()
+{
+ COMPREPLY=( $( compgen -W '$( command ps -efo comm | \
+ sed -e 1d -e "s:.*/::" -e "s/^-//" \
+ -e "s/^<defunct>$//")' \
+ -- $cur ) )
+} ||
+_pnames()
+{
+ # FIXME: completes "[kblockd/0]" to "0". Previously it was completed
+ # to "kblockd" which isn't correct either. "kblockd/0" would be
+ # arguably most correct, but killall from psmisc 22 treats arguments
+ # containing "/" specially unless -r is given so that wouldn't quite
+ # work either. Perhaps it'd be best to not complete these to anything
+ # for now.
+ COMPREPLY=( $( compgen -W '$( command ps axo command | \
+ sed -e "1d; s/ .*//; s:.*/::; s/:$//;" \
+ -e "s/^[[(-]//; s/[])]$//" \
+ -e "s/^<defunct>$//")' \
+ -- $cur ) )
+}
+
# This function completes on user IDs
#
_uids()
@@ -1028,17 +1053,7 @@ _killall()
if [ $COMP_CWORD -eq 1 ] && [[ "$cur" == -* ]]; then
_signals
else
- # FIXME: completes "[kblockd/0]" to "0". Previously it was
- # completed to "kblockd" which isn't correct either.
- # "kblockd/0" would be arguably most correct, but killall from
- # psmisc 22 treats arguments containing "/" specially unless
- # -r is given so that wouldn't quite work either. Perhaps it'd
- # be best to not complete these to anything for now.
- COMPREPLY=( $( compgen -W '$( command ps axo command | \
- sed -e "1d; s/ .*//; s:.*/::; s/:$//;" \
- -e "s/^[[(-]//; s/[])]$//" \
- -e "s/^<defunct>$//")' \
- -- $cur ) )
+ _pnames
fi
return 0
diff --git a/debian/changelog b/debian/changelog
index 54c0644..5d8c6cb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -122,7 +122,9 @@ bash-completion (200902xx) UNRELEASED; urgency=low
* Fix awk error in "modprobe -r /" completion (Closes: #512556).
* Expand ~foo to dir name more eagerly to avoid quoting issues.
* Fix -sourcepath handling in javadoc packages completion.
- * Fix killall completion for commands with relative paths (RHBZ: #484578).
+ * Extract process name completion from _killall to _pnames, make it work
+ for others than Linux and FreeBSD.
+ * Fix process name completion with relative paths (RHBZ: #484578).
[ Freddy Vulto ]
* Restored `_display()' completion for `display' by removing
--
bash-completion
More information about the Bash-completion-commits
mailing list