From: René Scharfe Date: Fri, 24 Sep 2021 19:56:29 GMT Subject: Re: [PATCH 8/8] hook-list.h: add a generated list of hooks, like config-list.h Message-ID: <8c7aaea3-afbc-1980-ac31-6c324eef5a94@web.de> In-Reply-To: <87fstt3gzd.fsf@evledraar.gmail.com> Am 24.09.21 um 21:30 schrieb Ævar Arnfjörð Bjarmason: > > On Fri, Sep 24 2021, Phillip Wood wrote: > >> Hi Ævar >> On 23/09/2021 11:30, Ævar Arnfjörð Bjarmason wrote: >>> diff --git a/generate-hooklist.sh b/generate-hooklist.sh >>> new file mode 100755 >>> index 00000000000..6d4e56d1a31 >>> --- /dev/null >>> +++ b/generate-hooklist.sh >>> @@ -0,0 +1,18 @@ >>> +#!/bin/sh >>> +# >>> +# Usage: ./generate-hooklist.sh >hook-list.h >>> + >>> +cat <>> +/* Automatically generated by generate-hooklist.sh */ >>> + >>> +static const char *hook_name_list[] = { >>> +EOF >>> + >>> +sed -n -e '/^~~~~*$/ {x; s/^.*$/ "&",/; p;}; x' \ >> >> POSIX does not support using a semicolon after a closing brace [1], >> grepping our code base with >> git grep 'sed .*};' '*.sh' >> does not give any matches so I don't think we're using that pattern >> any where else. Replacing the semicolon with ' -e' would fix it. >> >> Best Wishes >> >> Phillip > > Does this fail on any system you're aware of? If so what OS/version (and > preferably version of "sed"). I wasn't aware of that restriction and my gut feeling is that enforcing it in a sed implementation would be slightly harder than allowing "};". > René's downthread seems to > suggest that this is fine. That said, I didn't mean to suggest that we keep using this construct, just that I couldn't find an implementation which would reject it. > Both beforehand and just now I've tested this on AIX, Solaris, > {Open,Net,Free}BSD, HP/UX, OSX and Linux (a few distros/versions). > > All of them are able to generate the same hook-list.h using this version > of the patch. Impressive list, but still it's probably better to move the last "x" to its own -e, to appease the POSIX spirits. Small change.. René