Split gcc completion to contrib/gcc
This commit is contained in:
parent
1924616663
commit
c601309ae5
1
CHANGES
1
CHANGES
@ -29,6 +29,7 @@ bash-completion (1.x)
|
||||
* Split bash builtins completions to contrib/bash-builtins
|
||||
* Split dpkg-related completions to contrib/dpkg (and re-enable usage
|
||||
of grep-status if available)
|
||||
* Split gcc completion to contrib/gcc
|
||||
|
||||
[ Ville Skyttä ]
|
||||
* Split yum and yum-arch completion into contrib/yum.
|
||||
|
@ -33,6 +33,7 @@ bashcomp_DATA = contrib/ant \
|
||||
contrib/dsniff \
|
||||
contrib/findutils \
|
||||
contrib/freeciv \
|
||||
contrib/gcc \
|
||||
contrib/gcl \
|
||||
contrib/gdb \
|
||||
contrib/genisoimage \
|
||||
|
@ -1443,58 +1443,6 @@ for i in env netstat seq uname units wget; do
|
||||
done
|
||||
unset i
|
||||
|
||||
# gcc(1) completion
|
||||
#
|
||||
# The only unusual feature is that we don't parse "gcc --help -v" output
|
||||
# directly, because that would include the options of all the other backend
|
||||
# tools (linker, assembler, preprocessor, etc) without any indication that
|
||||
# you cannot feed such options to the gcc driver directly. (For example, the
|
||||
# linker takes a -z option, but you must type -Wl,-z for gcc.) Instead, we
|
||||
# ask the driver ("g++") for the name of the compiler ("cc1"), and parse the
|
||||
# --help output of the compiler.
|
||||
#
|
||||
have gcc &&
|
||||
_gcc()
|
||||
{
|
||||
local cur cc backend
|
||||
|
||||
COMPREPLY=()
|
||||
cur=`_get_cword`
|
||||
|
||||
_expand || return 0
|
||||
|
||||
case "$1" in
|
||||
gcj)
|
||||
backend=jc1
|
||||
;;
|
||||
gpc)
|
||||
backend=gpc1
|
||||
;;
|
||||
*77)
|
||||
backend=f771
|
||||
;;
|
||||
*)
|
||||
backend=cc1 # (near-)universal backend
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$cur" == -* ]]; then
|
||||
cc=$( $1 -print-prog-name=$backend )
|
||||
# sink stderr:
|
||||
# for C/C++/ObjectiveC it's useless
|
||||
# for FORTRAN/Java it's an error
|
||||
COMPREPLY=( $( compgen -W "$( $cc --help 2>/dev/null | \
|
||||
tr '\t' ' ' | \
|
||||
sed -e '/^ *-/!d' -e 's/ *-\([^ ]*\).*/-\1/' | \
|
||||
sort -u )" -- $cur ) )
|
||||
else
|
||||
_filedir
|
||||
fi
|
||||
} &&
|
||||
complete $filenames -F _gcc gcc g++ c++ g77 gcj gpc
|
||||
[ $USERLAND = GNU -o $UNAME = Cygwin ] && \
|
||||
[ -n "${have:-}" ] && complete $filenames -F _gcc cc
|
||||
|
||||
# Linux cardctl(8) completion
|
||||
#
|
||||
have cardctl &&
|
||||
|
51
contrib/gcc
Normal file
51
contrib/gcc
Normal file
@ -0,0 +1,51 @@
|
||||
# gcc(1) completion
|
||||
#
|
||||
# The only unusual feature is that we don't parse "gcc --help -v" output
|
||||
# directly, because that would include the options of all the other backend
|
||||
# tools (linker, assembler, preprocessor, etc) without any indication that
|
||||
# you cannot feed such options to the gcc driver directly. (For example, the
|
||||
# linker takes a -z option, but you must type -Wl,-z for gcc.) Instead, we
|
||||
# ask the driver ("g++") for the name of the compiler ("cc1"), and parse the
|
||||
# --help output of the compiler.
|
||||
#
|
||||
have gcc &&
|
||||
_gcc()
|
||||
{
|
||||
local cur cc backend
|
||||
|
||||
COMPREPLY=()
|
||||
cur=`_get_cword`
|
||||
|
||||
_expand || return 0
|
||||
|
||||
case "$1" in
|
||||
gcj)
|
||||
backend=jc1
|
||||
;;
|
||||
gpc)
|
||||
backend=gpc1
|
||||
;;
|
||||
*77)
|
||||
backend=f771
|
||||
;;
|
||||
*)
|
||||
backend=cc1 # (near-)universal backend
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$cur" == -* ]]; then
|
||||
cc=$( $1 -print-prog-name=$backend )
|
||||
# sink stderr:
|
||||
# for C/C++/ObjectiveC it's useless
|
||||
# for FORTRAN/Java it's an error
|
||||
COMPREPLY=( $( compgen -W "$( $cc --help 2>/dev/null | \
|
||||
tr '\t' ' ' | \
|
||||
sed -e '/^ *-/!d' -e 's/ *-\([^ ]*\).*/-\1/' | \
|
||||
sort -u )" -- $cur ) )
|
||||
else
|
||||
_filedir
|
||||
fi
|
||||
} &&
|
||||
complete $filenames -F _gcc gcc g++ c++ g77 gcj gpc
|
||||
[ $USERLAND = GNU -o $UNAME = Cygwin ] && \
|
||||
[ -n "${have:-}" ] && complete $filenames -F _gcc cc
|
Loading…
x
Reference in New Issue
Block a user