diff options
-rw-r--r-- | etc/fish | 103 | ||||
-rw-r--r-- | etc/fish.in | 33 | ||||
-rw-r--r-- | share/fish | 58 | ||||
-rw-r--r-- | share/functions/__fish_append.fish | 8 | ||||
-rw-r--r-- | share/functions/__fish_seen_subcommand_from.fish | 16 |
5 files changed, 56 insertions, 162 deletions
diff --git a/etc/fish b/etc/fish deleted file mode 100644 index 10c10e5f..00000000 --- a/etc/fish +++ /dev/null @@ -1,103 +0,0 @@ -# -# Init file for fish -# -# etc/fish. Generated from fish.in by configure. - -# -# Set default search paths -# - -set -g fish_function_path ~/.fish.d/functions /etc/fish.d/functions /usr/share/functions -set -g fish_complete_path ~/.fish.d/completions /etc/fish.d/completions /usr/share/completions - -# -# Set default field separators -# - -set -g IFS \ \t\n - -# -# Add a few common directories to path, if they exists. Note that pure -# console programs like makedep sometimes live in /usr/X11R6/bin, so we -# want this even for text-only terminals. -# - -set -l path_list /bin /usr/bin /usr/X11R6/bin /usr/bin /sw/bin - -# Root should also have the sbin directories in the path -if test "$USER" = root - set path_list $path_list /sbin /usr/sbin /usr/local/sbin -end - -for i in $path_list - if not expr "$PATH" : .\*$i.\* >/dev/null - if test -d $i - set PATH $PATH $i - end - end -end - - -# -# Set some value for LANG if nothing was set before, and this is a -# login shell. Also check for i18n information in /etc/sysconfig/i18n -# - -if status --is-login - if not set -q LANG >/dev/null - set -gx LANG en_US.UTF-8 - end - - if test -f /etc/sysconfig/i18n - eval (cat /etc/sysconfig/i18n |sed -ne 's/^\([a-zA-Z]*\)=\(.*\)$/set -gx \1 \2;/p') - end -end - - -# -# Put linux console in unicode mode. Should this be done in any other -# situation as well? -# - -if expr "$LANG" : ".*[Uu][Tt][Ff]" >/dev/null - if test linux = "$TERM" - unicode_start ^/dev/null - end -end - - -# -# There are variables that contain colons that are not arrays. This -# reverts them back to regular strings. -# - -for i in DISPLAY - if set -q $i - set -- $i (printf ":%s" $$i|cut -c 2-) - end -end - -# -# Alias for gettext (or a fallback if gettext isn't installed) This -# needs to be defined here and not in fish_function.fish, since it is -# used by other init files. -# - -function _ -d "Alias for the gettext command" - printf "%s" $argv -end -if test 1 = "1" - if which gettext ^/dev/null >/dev/null - function _ -d "Alias for the gettext command" - gettext fish $argv - end - end -end - -# -# Load additional initialization files -# - -for i in fish.d/*.fish - . $i -end diff --git a/etc/fish.in b/etc/fish.in index b010c31a..8f58950b 100644 --- a/etc/fish.in +++ b/etc/fish.in @@ -39,22 +39,6 @@ end # -# Set some value for LANG if nothing was set before, and this is a -# login shell. Also check for i18n information in /etc/sysconfig/i18n -# - -if status --is-login - if not set -q LANG >/dev/null - set -gx LANG en_US.UTF-8 - end - - if test -f /etc/sysconfig/i18n - eval (cat /etc/sysconfig/i18n |sed -ne 's/^\([a-zA-Z]*\)=\(.*\)$/set -gx \1 \2;/p') - end -end - - -# # Put linux console in unicode mode. Should this be done in any other # situation as well? # @@ -78,23 +62,6 @@ for i in DISPLAY end # -# Alias for gettext (or a fallback if gettext isn't installed) This -# needs to be defined here and not in fish_function.fish, since it is -# used by other init files. -# - -function _ -d "Alias for the gettext command" - printf "%s" $argv -end -if test 1 = "@HAVE_GETTEXT@" - if which gettext ^/dev/null >/dev/null - function _ -d "Alias for the gettext command" - gettext fish $argv - end - end -end - -# # Load additional initialization files # @@ -13,6 +13,38 @@ set -g fish_function_path # Don't need completions in non-interactive mode # +# +# Alias for gettext (or a fallback if gettext isn't installed) This +# needs to be defined here and not in fish_function.fish, since it is +# used by other init files. +# + +function _ -d "Alias for the gettext command" + printf "%s" $argv +end +if test 1 = "1" + if which gettext ^/dev/null >/dev/null + function _ -d "Alias for the gettext command" + gettext fish $argv + end + end +end + +# +# Set some value for LANG if nothing was set before, and this is a +# login shell. Also check for i18n information in /etc/sysconfig/i18n +# + +if status --is-login + if not set -q LANG >/dev/null + set -gx LANG en_US.UTF-8 + end + + if test -f /etc/sysconfig/i18n + eval (cat /etc/sysconfig/i18n |sed -ne 's/^\([a-zA-Z]*\)=\(.*\)$/set -gx \1 \2;/p') + end +end + if not status --is-interactive exit end @@ -55,36 +87,10 @@ end set -l __fish_help_desc (_ "Display help and exit") for i in (builtin -n|grep -vE '(while|for|if|function|switch)' ) - complete -c $i -s h -l help -d $__fish_help_desc end -function __fish_append -d "Internal completion function for appending string to the commandline" - set separator $argv[1] - set -e argv[1] - set str (commandline -tc| sed -ne "s/\(.*$separator\)[^$separator]*/\1/p"|sed -e "s/--.*=//") - printf "%s\n" "$str"$argv "$str"(printf "%s\n" $argv|sed -e "s/\(\t\|\$\)/,\1/") -end - - -# -# Test to see if we've seen a subcommand from a list. -# This logic may seem backwards, but the commandline will often be much shorter -# than the list -# - -function __fish_seen_subcommand_from - set -l -- cmd (commandline -poc) - set -e cmd[1] - for i in $cmd - if contains -- $i $argv - return 0 - end - end - return 1 -end - # # Completions for SysV startup scripts # diff --git a/share/functions/__fish_append.fish b/share/functions/__fish_append.fish new file mode 100644 index 00000000..e0174143 --- /dev/null +++ b/share/functions/__fish_append.fish @@ -0,0 +1,8 @@ +function __fish_append -d "Internal completion function for appending string to the commandline" + set separator $argv[1] + set -e argv[1] + set str (commandline -tc| sed -ne "s/\(.*$separator\)[^$separator]*/\1/p"|sed -e "s/--.*=//") + printf "%s\n" "$str"$argv "$str"(printf "%s\n" $argv|sed -e "s/\(\t\|\$\)/,\1/") +end + + diff --git a/share/functions/__fish_seen_subcommand_from.fish b/share/functions/__fish_seen_subcommand_from.fish new file mode 100644 index 00000000..508b635b --- /dev/null +++ b/share/functions/__fish_seen_subcommand_from.fish @@ -0,0 +1,16 @@ +# +# Test to see if we've seen a subcommand from a list. +# This logic may seem backwards, but the commandline will often be much shorter +# than the list +# + +function __fish_seen_subcommand_from + set -l -- cmd (commandline -poc) + set -e cmd[1] + for i in $cmd + if contains -- $i $argv + return 0 + end + end + return 1 +end |