mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-25 20:33:08 +00:00
type: Separate the notion of multi and paths
Track whether -a and -f have been supplied separately. That way both `type -a -f command` and `type -f -a command` behaves correctly, as does `type -a -f foo` where there are multiple executables named `foo` in the $PATH.
This commit is contained in:
parent
bfd3a47380
commit
6b062b07b4
1 changed files with 6 additions and 5 deletions
|
@ -4,6 +4,7 @@ function type --description "Print the type of a command"
|
|||
# Initialize
|
||||
set -l res 1
|
||||
set -l mode normal
|
||||
set -l multi no
|
||||
set -l selection all
|
||||
|
||||
# Parse options
|
||||
|
@ -22,7 +23,7 @@ function type --description "Print the type of a command"
|
|||
set selection files
|
||||
|
||||
case -a --all
|
||||
set selection multi
|
||||
set multi yes
|
||||
|
||||
case -f --no-functions
|
||||
set selection files
|
||||
|
@ -65,7 +66,7 @@ function type --description "Print the type of a command"
|
|||
echo
|
||||
|
||||
end
|
||||
if test $selection != multi
|
||||
if test $multi != yes
|
||||
continue
|
||||
end
|
||||
end
|
||||
|
@ -84,7 +85,7 @@ function type --description "Print the type of a command"
|
|||
case path
|
||||
echo
|
||||
end
|
||||
if test $selection != multi
|
||||
if test $multi != yes
|
||||
continue
|
||||
end
|
||||
end
|
||||
|
@ -92,7 +93,7 @@ function type --description "Print the type of a command"
|
|||
end
|
||||
|
||||
set -l paths
|
||||
if test $selection != multi
|
||||
if test $multi != yes
|
||||
set paths (command -p $i)
|
||||
else
|
||||
set paths (which -a $i ^/dev/null)
|
||||
|
@ -110,7 +111,7 @@ function type --description "Print the type of a command"
|
|||
case path
|
||||
echo $path
|
||||
end
|
||||
if test $selection != multi
|
||||
if test $multi != yes
|
||||
continue
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue