Re: [PATCH 8/8] hook-list.h: add a generated list of hooks, like config-list.h
From: René Scharfe <hidden>
Date: 2021-09-24 19:56:52
Am 24.09.21 um 21:30 schrieb Ævar Arnfjörð Bjarmason:
On Fri, Sep 24 2021, Phillip Wood wrote:quoted
Hi Ævar On 23/09/2021 11:30, Ævar Arnfjörð Bjarmason wrote:quoted
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 <<EOF +/* 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 PhillipDoes 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 [ref] 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é