Always source file after funced (#10318)

... even if the file hasn't changed. This addresses an oddity in the following
case:

* Shell is started,
* function `foo` is sourced from foo.fish
* foo.fish is *externally* edited and saved
* <Loaded definition of `foo` is now stale, but fish is unaware>
* `funced foo` loads `type -p foo` showing changed definition, user exits
  $EDITOR saving no changes (or with $status 0, more generally).
* Stale definition of `foo` remains

(cherry picked from commit 2c2ab0c1fa)
This commit is contained in:
Mahmoud Al-Qudsi 2024-02-22 12:45:20 -06:00 committed by Fabian Boehm
parent fada4f2e01
commit b7b20e9fac

View File

@ -114,7 +114,9 @@ function funced --description 'Edit function definition'
set -l new_checksum (__funced_md5 "$tmpname") set -l new_checksum (__funced_md5 "$tmpname")
if test "$new_checksum" = "$checksum" if test "$new_checksum" = "$checksum"
echo (_ "Editor exited but the function was not modified") echo (_ "Editor exited but the function was not modified")
# Don't source or save an unmodified file. # Source but don't save an unmodified file.
# (Source in case the file changed externally since we first loaded it.)
source "$writepath"
break break
end end
end end