2017-10-11 05:26:04 +02:00
|
|
|
#!/bin/bash
|
2017-11-30 15:23:50 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
#
|
2019-01-02 01:58:10 +01:00
|
|
|
# Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
|
2017-10-11 05:26:04 +02:00
|
|
|
|
|
|
|
|
silent=0
|
|
|
|
|
level=0
|
|
|
|
|
ifs=( )
|
|
|
|
|
|
|
|
|
|
while IFS= read -r line; do
|
|
|
|
|
if [[ $line =~ ^[[:space:]]*(#if.*) ]]; then
|
|
|
|
|
ifs[level++]=0
|
|
|
|
|
if [[ ${BASH_REMATCH[1]} == "#ifndef COMPAT_CANNOT_"* ]]; then
|
|
|
|
|
ifs[level-1]=-1
|
|
|
|
|
continue
|
|
|
|
|
elif [[ ${BASH_REMATCH[1]} == "#ifdef COMPAT_CANNOT_"* ]]; then
|
|
|
|
|
ifs[level-1]=1
|
|
|
|
|
((++silent))
|
|
|
|
|
continue
|
|
|
|
|
fi
|
|
|
|
|
elif [[ $line =~ ^[[:space:]]*#else && ${ifs[level-1]} -ne 0 ]]; then
|
|
|
|
|
((ifs[level-1]*=-1))
|
|
|
|
|
((silent+=ifs[level-1]))
|
|
|
|
|
continue
|
|
|
|
|
elif [[ $line =~ ^[[:space:]]*#endif ]]; then
|
|
|
|
|
((--level))
|
|
|
|
|
[[ ${ifs[level]} -eq 1 ]] && ((--silent))
|
|
|
|
|
[[ ${ifs[level]} -ne 0 ]] && continue
|
|
|
|
|
fi
|
|
|
|
|
[[ $silent -eq 0 ]] && printf '%s\n' "$line"
|
2018-08-23 11:35:55 -07:00
|
|
|
done < "$1" | clang-format -style="{ColumnLimit: 10000}"
|