git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/3] rebase: avoid non-function use of "return" on FreeBSD

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 16, 2014, 18:11 UTC
Message-ID
<xmqqtx9tgn5l.fsf@gitster.dls.corp.google.com>
In-Reply-To
<xmqqsipdi5lw.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 8 quoted lines
> "Kyle J. McKay" <mackyle@gmail.com> writes:
>
>> If I'm the only one getting a wrong meaning from the comments, then no
>> reason to change them.
>
> I agree that the description does not read well with the work-around
> already there.  I am not sure what would be a better way to phrase
> it, though.
Here is a tentative rewrite at the beginning and the end of rebase-am:
    # The whole contents of the file is run by dot-sourcing this
    # file from inside a shell function.  It used to be that
    # "return"s we see below were not inside any function, and
    # expected to return from 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".
    # As a work-around, we introduce an extra layer of a function
    # here, and immediately call it after defining it.
    git_rebase__am () {
    ...
    }
    # ... and then we call the whole thing.
    git_rebase__am
By the way, you have this in your log message:
    ... the git-rebase--*.sh scripts have used a "return" to return
    from the "dot" command that runs them.  While this is allowed by
    POSIX,...

Is it "this is allowed", or is it "this should be the way and shells that do not do so are buggy"?

Previous: Junio C HamanoNext: Junio C Hamano
Message 14 of 21 in “Fix support for FreeBSD's /bin/sh”
  1. 0/3 Fix support for FreeBSD's /bin/shKyle J. McKay, Apr 11, 2014
  2. 1/3 rebase: avoid non-function use of "return" on FreeBSDKyle J. McKay, Apr 11, 2014
  3. Matthieu MoyApr 11, 2014
  4. Kyle J. McKayApr 11, 2014
  5. Matthieu MoyApr 11, 2014
  6. Kyle J. McKayApr 11, 2014
  7. Matthieu MoyApr 12, 2014
  8. Kyle J. McKayApr 13, 2014
  9. Matthieu MoyApr 14, 2014
  10. Junio C HamanoApr 14, 2014
  11. Junio C HamanoApr 14, 2014
  12. Kyle J. McKayApr 16, 2014
  13. Junio C HamanoApr 16, 2014
  14. Junio C HamanoApr 16, 2014
  15. Junio C HamanoApr 16, 2014
  16. Kyle J. McKayApr 17, 2014
  17. Junio C HamanoApr 17, 2014
  18. Kyle J. McKayApr 18, 2014
  19. 2/3 Revert "rebase: fix run_specific_rebase's use of "return" on FreeBSD"Kyle J. McKay, Apr 11, 2014
  20. 3/3 test: fix t5560 on FreeBSDKyle J. McKay, Apr 11, 2014
  21. Junio C HamanoApr 11, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.