[PATCH] rebase: update comment about FreeBSD /bin/sh
- From
Ed Maste <emaste@freebsd.org>
- Date
- Jun 17, 2016, 15:33 UTC
- Message-ID
- <1466177609-33185-1-git-send-email-emaste@freebsd.org>
Commit 9f50d32 introduced a fix for FreeBSD /bin/sh misbehaviour when dot-sourcing a file containing "return" statements outside of any function, from a function in another shell script. That issue affects FreeBSD 9.x, and is not present in the /bin/sh in FreeBSD 10.3 and later. Update the comment to clarify this.
The example from 9f50d32's commit message produces the expected output on FreeBSD 10.3 and -CURRENT (the upcoming 11.0):
% sh script1.sh only this line should show %
Signed-off-by: Ed Maste <emaste@freebsd.org> --- git-rebase--am.sh | 4 ++-- git-rebase--interactive.sh | 4 ++-- git-rebase--merge.sh | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/git-rebase--am.sh b/git-rebase--am.sh index 9ae898b..3752393 100644 --- a/git-rebase--am.sh +++ b/git-rebase--am.sh @@ -9,8 +9,8 @@ # below were not inside any function, and expected to return # to the function that dot-sourced us. # -# However, FreeBSD /bin/sh misbehaves on such a construct and -# continues to run the statements that follow such a "return". +# 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__am () { diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 6e96abc..05f22e4 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -1038,8 +1038,8 @@ check_todo_list () { # below were not inside any function, and expected to return # to the function that dot-sourced us. # -# However, FreeBSD /bin/sh misbehaves on such a construct and -# continues to run the statements that follow such a "return". +# 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 () { diff --git a/git-rebase--merge.sh b/git-rebase--merge.sh index 8d43db9..06a4723 100644 --- a/git-rebase--merge.sh +++ b/git-rebase--merge.sh @@ -107,8 +107,8 @@ finish_rb_merge () { # below were not inside any function, and expected to return # to the function that dot-sourced us. # -# However, FreeBSD /bin/sh misbehaves on such a construct and -# continues to run the statements that follow such a "return". +# 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__merge () {
-- 2.8.1