This is an automated email from the ASF dual-hosted git repository. jerzy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
The following commit(s) were added to refs/heads/master by this push: new 13f24628f stylecheck: Add uncrastify exception for STATS 13f24628f is described below commit 13f24628f3d123a2de9fe3e6c6c9d2c1d29fe680 Author: Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl> AuthorDate: Thu May 23 08:37:48 2024 +0200 stylecheck: Add uncrastify exception for STATS Uncrustify removes leading spaces from STATS. This simple awk scrip if executed after uncrustify inserts spaces when expected Signed-off-by: Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl> --- .github/check_style.py | 1 + uncrustify.awk | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/.github/check_style.py b/.github/check_style.py index 7b2fa5b8f..471b88f0e 100755 --- a/.github/check_style.py +++ b/.github/check_style.py @@ -61,6 +61,7 @@ def check_file(fname: str, commit: str, upstream: str) -> list[str]: in_chunk = False for s in run_cmd(f"uncrustify -q -c uncrustify.cfg -f {tmpf.name} | " + f"awk -f uncrustify.awk | " f"diff -u0 -p {tmpf.name} - || true"): m = re.match(r"^@@ -(\d+)(?:,(\d+))? \+\d+(?:,\d+)? @@", s) if not m: diff --git a/uncrustify.awk b/uncrustify.awk new file mode 100644 index 000000000..a2cd7894c --- /dev/null +++ b/uncrustify.awk @@ -0,0 +1,37 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# awk script run AFTER uncrustify reformats code to format +# STATS_NAME and STATS_SECT block to have indents removed +# by uncrustify + +# detect begining of STATS_NAME section +/^(static )?STATS_NAME_START[(]/ { stats_name = 1 } +# detect end of STATN_NAME section +/^STATS_NAME_END/ { stats_name = 0 } +# for each line in sectin add 4 spaces eaten by uncrustify +/^STATS_NAME[(]/ && stats_name == 1 { printf " " } + +# detect begining of STATS_SECT section +/^STATS_SECT_START[(]/ { stats_sect = 1 } +# detect end of STATN_SECT section +/^STATS_SECT_END/ { stats_sect = 0 } +# for each line in sectin add 4 spaces eaten by uncrustify +/^STATS_SECT_ENTRY[(]/ && stats_sect == 1 { printf " " } +{ print }