diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Completion/Unix/Type/_absolute_command_paths | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 9927f21e9..9dd1ef17d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2016-08-27 Daniel Shahaf <d.s@daniel.shahaf.name> + * 39103: Completion/Unix/Type/_absolute_command_paths: + _typed-in_absolute_command_paths: Better handle non-empty + arguments that don't start with a slash. + * 39070: Completion/Unix/Command/_mount, Completion/Unix/Type/_canonical_paths: umount: Complete /f/b<TAB> → /foo/bar (for absolute path arguments only, for now) diff --git a/Completion/Unix/Type/_absolute_command_paths b/Completion/Unix/Type/_absolute_command_paths index e9ab17023..4d9f79380 100644 --- a/Completion/Unix/Type/_absolute_command_paths +++ b/Completion/Unix/Type/_absolute_command_paths @@ -16,7 +16,13 @@ _hashed_absolute_command_paths() { # This function completes absolute pathnames of executables, e.g., /etc/rc.local _typed-in_absolute_command_paths() { # TODO: the description "full path to an executable" and tag in the caller are ignored by _path_files - _path_files -/ -g '*(-*)' -P / -W / + if [[ -z $PREFIX ]]; then + _path_files -/ -g '*(-*)' -P / -W / + elif [[ $PREFIX[1] == / ]]; then + _path_files -/ -g '*(-*)' -W / + else + return 1 + fi } _absolute_command_paths() { |