Re: [PATCH v2] completion: zsh: support completion after "git -C <path>"

Junio C Hamano <[email protected]>
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
"D. Ben Knoble" <[email protected]> writes:

>> [Footnote]
>>
>> * Look for case_clause in
>>   https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>>   and read from there.
>
> Oh, thanks! The Bash manual doesn't admit that case in my reading, but
> it clearly does in implementation. Oddly, I seem to recall several
> years ago that both Bash and ShellCheck would complain about empty
> case arms (I got in the habit of writing ": continue" as a bit of a
> comment). Anyway, TIL.

I am afraid that the description in POSIX itself contributes heavily
to this common misconception.

Section 2.9.4.3 (Case Conditional Construct)

https://pubs.opengroup.org/onlinepubs/9799919799/utilities/V3_chap02.html#tag_19_09_04_05

gives a simplified syntax

    The format for the case construct is as follows:

    case word in
        [[(] pattern[ | pattern] ... ) compound-list terminator] ...
        [[(] pattern[ | pattern] ... ) compound-list]
    esac

and I think that is where the most people go to learn what is and
what is not kosher in the standard.  But as you saw, this simplified
"format" contradicts what the actual grammar, described in Section
2.10 (Shell Grammar) has (notably, you can have linebreak, which is
defined to be zero or more NEWLINEs, instead of compound-list
there).

https://pubs.opengroup.org/onlinepubs/9799919799/utilities/V3_chap02.html#tag_19_10
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.