From 2c2ab0c1fac1c982a682594d920e8fef735106fd Mon Sep 17 00:00:00 2001 From: Mahmoud Al-Qudsi Date: Thu, 22 Feb 2024 12:45:20 -0600 Subject: [PATCH] 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 * * `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 --- share/functions/funced.fish | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/share/functions/funced.fish b/share/functions/funced.fish index 78e164ffd..407846aba 100644 --- a/share/functions/funced.fish +++ b/share/functions/funced.fish @@ -115,7 +115,9 @@ function funced --description 'Edit function definition' if test "$new_checksum" = "$checksum" echo (_ "Editor exited but the function was not modified") echo (_ "If the editor is still running, check if it waits for completion, maybe a '--wait' option?") - # 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 end end