Subject: Re: [PATCH] editorconfig: fix style not applying to subdirs anymore

From: Phillip Wood <[email-masked]>
Date: Wed, 11 Mar 2026 14:16:53 +0000

On 11/03/2026 07:09, Patrick Steinhardt wrote:
> In 046e1117d5 (templates: add .gitattributes entry for sample hooks,
> 2026-02-13) we have added another pattern to our EditorConfig that sets
> the style for our hook templates. As our templates are located in
> "templates/hooks/", we explicitly specify that subdirectory as part of
> the globbing pattern.
> 
> This change causes files in other subdirectories, like for example
> "builtin/add.c", to not be configured properly anymore. This seems to
> stem from a subtlety in the EditorConfig specification [1]:
> 
>    If the glob contains a path separator (a / not inside square
>    brackets), then the glob is relative to the directory level of the
>    particular .editorconfig file itself. Otherwise the pattern may also
>    match at any level below the .editorconfig level.
> 
> What's interesting is that the _whole_ expression is considered to be
> the glob.

Ouch, I'd missed that, thanks for fixing it

> So when the expression used is for example "{*.c,foo/*.h}",
> then it will be considered a single glob, and because it contains a path
> separator we will now anchor "*.c" matches to the same directory as the
> ".editorconfig" file.
> 
> Fix this issue by splitting out the configuration for hook templates
> into a separate section. It leads to a tiny bit of duplication, but the
> alternative would be something like the following (note the "{,**/}"):
> 
>    [{{,**/}*.{c,h,sh,bash,perl,pl,pm,txt,adoc},config.mak.*,{,**/}Makefile,templates/hooks/*.sample}]
>    indent_style = tab
>    tab_width = 8
> 
> This starts to become somewhat hard to read, so the duplication feels
> like the better tradeoff.

Agreed

Thanks

Phillip

> [1]: https://spec.editorconfig.org/#glob-expressions
> 
> Signed-off-by: Patrick Steinhardt <[email-masked]>
> ---
> Hi,
> 
> this fixes a small regression in our EditorConfig introduced in
> 046e1117d5 (templates: add .gitattributes entry for sample hooks,
> 2026-02-13). Thanks!
> 
> Patrick
> ---
>   .editorconfig | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/.editorconfig b/.editorconfig
> index 6e4eaa8e95..82e121a417 100644
> --- a/.editorconfig
> +++ b/.editorconfig
> @@ -4,7 +4,11 @@ insert_final_newline = true
>   
>   # The settings for C (*.c and *.h) files are mirrored in .clang-format.  Keep
>   # them in sync.
> -[{*.{c,h,sh,bash,perl,pl,pm,txt,adoc},config.mak.*,Makefile,templates/hooks/*.sample}]
> +[{*.{c,h,sh,bash,perl,pl,pm,txt,adoc},config.mak.*,Makefile}]
> +indent_style = tab
> +tab_width = 8
> +
> +[templates/hooks/*.sample]
>   indent_style = tab
>   tab_width = 8
>   
> 
> ---
> base-commit: 7f19e4e1b6a3ad259e2ed66033e01e03b8b74c5e
> change-id: 20260311-b4-pks-editorconfig-fix-subdirs-981e6db389ec
> 
>