|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v2 1/4] build,include: rework shell script for headers++.chk
On 15.06.2022 12:31, Anthony PERARD wrote:
> On Wed, Jun 15, 2022 at 08:37:42AM +0200, Jan Beulich wrote:
>> On 14.06.2022 18:22, Anthony PERARD wrote:
>>> diff --git a/xen/include/Makefile b/xen/include/Makefile
>>> index 6d9bcc19b0..49c75a78f9 100644
>>> --- a/xen/include/Makefile
>>> +++ b/xen/include/Makefile
>>> @@ -158,13 +158,22 @@ define cmd_headerscxx_chk
>>> touch $@.new; \
>>> exit 0; \
>>> fi; \
>>> - $(foreach i, $(filter %.h,$^), \
>>> - echo "#include "\"$(i)\" \
>>> + get_prereq() { \
>>> + case $$1 in \
>>> + $(foreach i, $(filter %.h,$^), \
>>> + $(if $($(patsubst $(srctree)/%,%,$(i))-prereq), \
>>> + $(i)$(close) \
>>> + echo "$(foreach j, $($(patsubst $(srctree)/%,%,$(i))-prereq), \
>>> + -include c$(j))";;)) \
>>> + esac; \
>>
>> If I'm reading this right (indentation looks to be a little misleading
>> and hence one needs to count parentheses) the case statement could (in
>> theory) remain without any "body". As per the command language spec I'm
>> looking at this (if it works in the first place) is an extension, and
>> formally there's always at least one label required. Since we aim to be
>> portable in such regards, I'd like to request that there be a final
>> otherwise empty *) line.
>
> When looking at the shell grammar at [1], an empty body seems to be
> allowed. But I can add "*)" at the end for peace of mind.
>
> [1]
> https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02
Hmm, indeed. As opposed to
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_04
> As for misleading indentation, I've got my $EDITOR to show me matching
> parentheses, so I don't need to count them. But if I rewrite that
> function as following, would it be easier to follow?
>
> + get_prereq() { \
> + case $$1 in \
> + $(foreach i, $(filter %.h,$^), \
> + $(if $($(patsubst $(srctree)/%,%,$(i))-prereq), \
> + $(i)$(close) \
> + echo "$(foreach j, $($(patsubst $(srctree)/%,%,$(i))-prereq), \
> + -include c$(j))";;)) \
> + *) ;; \
> + esac; \
> + }; \
Hmm, not really, no (and it may be more obvious looking at the reply
context above): My primary concern is the use of hard tabs beyond the
leading one (which is uniform across all lines and hence doesn't alter
apparent alignment even with the + or > prefixed).
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |