From f6369780a862037dca429d3dd7aa2f176e42d6dd Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 11 Oct 2017 05:26:04 +0200 Subject: contrib: filter compat lines Signed-off-by: Jason A. Donenfeld --- kernel-tree-scripts/filter-compat-defines.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 kernel-tree-scripts/filter-compat-defines.sh (limited to 'kernel-tree-scripts') diff --git a/kernel-tree-scripts/filter-compat-defines.sh b/kernel-tree-scripts/filter-compat-defines.sh new file mode 100755 index 0000000..9d2cc08 --- /dev/null +++ b/kernel-tree-scripts/filter-compat-defines.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +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" +done < "$1" -- cgit v1.2.3-59-g8ed1b