On 24/09/2021 20:30, Ævar Arnfjörð Bjarmason wrote:
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 <<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
Phillip
Does this fail on any system you're aware of? If so what OS/version (and
preferably version of "sed").
I'm not aware of any such system but I rarely use anything other than
linux. As this departure from POSIX is not already in the code base I
thought it was worth flagging it. I did wonder if it would be supported
by the various BSDs but you testing shows it is actually quite widely
supported.
Best Wishes
Phillip
René's downthread <d5f297d4-9c64-1ff9-8422-054979bf8cfa@xxxxxx> seems to
suggest that this is fine.
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.