From 9f449569df9c94670f51fd8cd5558b66884cd877 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 7 Dec 2023 22:51:52 +0100 Subject: Improve portability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- devtools/find-type-definition | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'devtools') diff --git a/devtools/find-type-definition b/devtools/find-type-definition index 9523e7c..2a99b78 100755 --- a/devtools/find-type-definition +++ b/devtools/find-type-definition @@ -4,6 +4,19 @@ type="$1" shift 1 -grep -r '\(define\s\+\(__kernel_\)\?'"$type"'\s\|typedef\s.*\s\(__kernel_\)\?'"$type"'\b\)' "$@" \ -| sed 's/^\([^:]*\):/\x1b[35m\1\x1b[m /' \ -| sed 's/\(__kernel_\)\?'"$type"'/\x1b[1;31m&\x1b[m/g' +e="$(printf '\033\n')" + +pattern1='define[[:space:]]\{1,\}\(__kernel_\)\{0,1\}'"$type"'[[:space:]]' +pattern2='typedef[[:space:]].*[[:space:]]\(__kernel_\)\{0,1\}'"$type"'\([^A-Za-z0-9_]\|$\)' + +pattern='\('"${pattern1}"'\|'"${pattern2}"'\)' + +find "$@" | while read f; do + if test -L "$f" || test -d "$f"; then + continue + fi + fe="$(printf '%s\n' "$f" | sed 's/\([\[*.]\|\/\|\]\)/\\&/g')" + sed -n '/^.*'"$pattern.*"'$/p' < "$f" \ + | sed 's/\(__kernel_\)\{0,1\}'"$type/$e"'[1;31m&'"$e"'[m/g' \ + | sed "s/^/$e[35m$fe$e[m /" +done -- cgit v1.2.3-70-g09d2