aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/__fish_config_interactive.fish
diff options
context:
space:
mode:
Diffstat (limited to 'share/functions/__fish_config_interactive.fish')
-rw-r--r--share/functions/__fish_config_interactive.fish16
1 files changed, 14 insertions, 2 deletions
diff --git a/share/functions/__fish_config_interactive.fish b/share/functions/__fish_config_interactive.fish
index b9afedd4..9ff7edc2 100644
--- a/share/functions/__fish_config_interactive.fish
+++ b/share/functions/__fish_config_interactive.fish
@@ -237,8 +237,20 @@ function __fish_config_interactive -d "Initializations that should be performed
# Remove fish_command_not_found_setup so we only execute this once
functions --erase __fish_command_not_found_setup
- # First check in /usr/lib, this is where modern Ubuntus place this command
- if test -f /usr/lib/command-not-found
+ # First check if we are on OpenSUSE since SUSE's handler has no options
+ # and expects first argument to be a command and second database
+ # also check if there is command-not-found command.
+ if begin; test -f /etc/SuSE-release; and type -p command-not-found > /dev/null 2> /dev/null; end
+ function __fish_command_not_found_handler --on-event fish_command_not_found
+ /usr/bin/command-not-found $argv
+ end
+ # Check for Fedora's handler
+ else if test -f /usr/libexec/pk-command-not-found
+ function __fish_command_not_found_handler --on-event fish_command_not_found
+ /usr/libexec/pk-command-not-found -- $argv
+ end
+ # Check in /usr/lib, this is where modern Ubuntus place this command
+ else if test -f /usr/lib/command-not-found
function __fish_command_not_found_handler --on-event fish_command_not_found
/usr/lib/command-not-found -- $argv
end