Instead of indirectly invoking git_rebase__interactive this invokes it directly after sourcing. Signed-off-by: Wink Saville <wink@xxxxxxxxxxx> --- git-rebase--interactive.sh | 11 ----------- git-rebase.sh | 11 +++++++++-- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 561e2660e..213d75f43 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -740,15 +740,6 @@ get_missing_commit_check_level () { printf '%s' "$check_level" | tr 'A-Z' 'a-z' } -# The whole contents of this file is run by dot-sourcing it from -# inside a shell function. It used to be that "return"s we see -# below were not inside any function, and expected to return -# to the function that dot-sourced us. -# -# However, older (9.x) versions of FreeBSD /bin/sh misbehave on such a -# construct and continue to run the statements that follow such a "return". -# As a work-around, we introduce an extra layer of a function -# here, and immediately call it after defining it. git_rebase__interactive () { case "$action" in @@ -1029,5 +1020,3 @@ fi do_rest } -# ... and then we call the whole thing. -git_rebase__interactive diff --git a/git-rebase.sh b/git-rebase.sh index a1f6e5de6..c4ec7c21b 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -196,8 +196,15 @@ run_specific_rebase () { export GIT_EDITOR autosquash= fi - . git-rebase--$type - ret=$? + if test "$type" = interactive + then + . git-rebase--interactive + git_rebase__interactive + ret=$? + else + . git-rebase--$type + ret=$? + fi if test $ret -eq 0 then finish_rebase -- 2.16.2