fish-shell/share/functions/funcsave.fish
ridiculousfish 87428672d8 Fix funcsave to not delete the function it just created
In 73f344f41b, we allowed autoloaded functions to be deleted.
For some reason, funcsave immediately deletes the function it
creates. This previously did very little, since the function would
immediately be re-autoloaded, but with the fix for 73f344f41b
the function gets tombstoned. So the effect is that funcsave
makes the function disappear! This simply removes the erase call,
which dates back to fish 1.x.
2015-04-06 22:40:13 -07:00

43 lines
868 B
Fish

function funcsave --description "Save the current definition of all specified functions to file"
if count $argv >/dev/null
switch $argv[1]
case -h --h --he --hel --help
__fish_print_help funcsave
return 0
end
else
printf (_ "%s: Expected function name\n") funcsave
__fish_print_help funcsave
return 1
end
set -l res 0
set -l configdir ~/.config
if set -q XDG_CONFIG_HOME
set configdir $XDG_CONFIG_HOME
end
for i in $configdir $configdir/fish $configdir/fish/functions
if not test -d $i
if not command mkdir $i >/dev/null
printf (_ "%s: Could not create configuration directory\n") funcsave
return 1
end
end
end
for i in $argv
if functions -q -- $i
functions -- $i > $configdir/fish/functions/$i.fish
else
printf (_ "%s: Unknown function '%s'\n") funcsave $i
set res 1
end
end
return $res
end