summaryrefslogtreecommitdiffstats
path: root/bin/grepc
diff options
context:
space:
mode:
authorAlejandro Colomar <alx.manpages@gmail.com>2022-05-09 00:59:27 +0200
committerAlejandro Colomar <alx.manpages@gmail.com>2022-05-09 10:13:06 +0200
commit8312a65f4b6ae51c287683dbf77b3735285fbab9 (patch)
treec0f689ba08d32e7960c2d2eb7f18be83a313047e /bin/grepc
parent30b93efb4876376d66b1ec5520482b2fba535e8e (diff)
grepc: grepc_helper: Add helper function to remove repeated code
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Diffstat (limited to 'bin/grepc')
-rwxr-xr-xbin/grepc102
1 files changed, 39 insertions, 63 deletions
diff --git a/bin/grepc b/bin/grepc
index 50b94dd..f8c933d 100755
--- a/bin/grepc
+++ b/bin/grepc
@@ -7,25 +7,30 @@ if (($# != 1)); then
fi;
-function grepc_macro_simple()
+function grepc_helper()
{
find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "define\s+$1\b[^(]" \
+ | grep "$1" \
+ | xargs grep -lP "$2" \
| sort \
- | xargs pcregrep -Mn "(?s)define\s+$1\b[^(].*?[^\\\\]$" /dev/null \
+ | xargs pcregrep -Mn "$3" /dev/null \
| sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
}
+function grepc_macro_simple()
+{
+ grepc_helper '\.[ch]$' \
+ "define\s+$1\b[^(]" \
+ "(?s)define\s+$1\b[^(].*?[^\\\\]$";
+}
+
+
function grepc_macro_func()
{
- find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "define\s+$1\(" \
- | sort \
- | xargs pcregrep -Mn "(?s)define\s+$1\(.*?[^\\\\]$" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.[ch]$' \
+ "define\s+$1\(" \
+ "(?s)define\s+$1\(.*?[^\\\\]$";
}
@@ -38,37 +43,25 @@ function grepc_macro()
function grepc_enum_constant()
{
- find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "\b$1\s*[,=]" \
- | sort \
- | xargs pcregrep -Mn \
- "(?s)\benum\b\s*[\w\s[\]]*{[^}]*\b$1\s*[=,].*?^}.*?;" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.[ch]$' \
+ "\b$1\s*[,=]" \
+ "(?s)\benum\b\s*[\w\s[\]]*{[^}]*\b$1\s*[=,].*?^}.*?;";
}
function grepc_func_decl()
{
- find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "\b$1\s*\(" \
- | sort \
- | xargs pcregrep -Mn \
- "(?s)^[\w[][\w\s(,)[:\]*]+\s+\**$1\s*\([\w\s(,)[\]*]+?(...)?\)[\w\s(,)[:\]]*;" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.[ch]$' \
+ "\b$1\s*\(" \
+ "(?s)^[\w[][\w\s(,)[:\]*]+\s+\**$1\s*\([\w\s(,)[\]*]+?(...)?\)[\w\s(,)[:\]]*;";
}
function grepc_func_def()
{
- find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "\b$1\s*\(" \
- | sort \
- | xargs pcregrep -Mn \
- "(?s)^[\w[][\w\s(,)[:\]*]+\s+\**$1\s*\([\w\s(,)[\]*]+?(...)?\)\s*{.*?^}" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.[ch]$' \
+ "\b$1\s*\(" \
+ "(?s)^[\w[][\w\s(,)[:\]*]+\s+\**$1\s*\([\w\s(,)[\]*]+?(...)?\)\s*{.*?^}";
}
@@ -81,24 +74,17 @@ function grepc_func()
function grepc_syscall_decl()
{
- find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "\bsys_$1\s*\(" \
- | sort \
- | xargs pcregrep -Mn \
- "(?s)^asmlinkage\s+[\w\s]+\**sys_$1\s*\(.*?\)" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.[ch]$' \
+ "\bsys_$1\s*\(" \
+ "(?s)^asmlinkage\s+[\w\s]+\**sys_$1\s*\(.*?\)";
}
function grepc_syscall_def()
{
- find . -type f \
- | grep '\.c$' \
- | xargs grep -lP "SYSCALL_DEFINE.\($1\b" \
- | sort \
- | xargs pcregrep -Mn "(?s)^\w*SYSCALL_DEFINE.\($1\b.*?^}" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.c$' \
+ "SYSCALL_DEFINE.\($1\b" \
+ "(?s)^\w*SYSCALL_DEFINE.\($1\b.*?^}";
}
@@ -111,35 +97,25 @@ function grepc_syscall()
function grepc_type_struct_union_enum()
{
- find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "\b(struct|union|enum)\s+$1\b" \
- | sort \
- | xargs pcregrep -Mn \
- "(?s)^([\w[][\w\s(,)[:\]*]+\s+)?\b(struct|union|enum)\s+$1\b\s*[\w\s[\]]*{.*?^}.*?;" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.[ch]$' \
+ "\b(struct|union|enum)\s+$1\b" \
+ "(?s)^([\w[][\w\s(,)[:\]*]+\s+)?\b(struct|union|enum)\s+$1\b\s*[\w\s[\]]*{.*?^}.*?;";
}
function grepc_type_typedef_simple()
{
- find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "\b$1;" \
- | sort \
- | xargs pcregrep -Mn "(?s)^typedef\s+[^;]+$1;" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.[ch]$' \
+ "\b$1;" \
+ "(?s)^typedef\s+[^;]+$1;";
}
function grepc_type_typedef_struct_union_enum()
{
- find . -type f \
- | grep '\.[ch]$' \
- | xargs grep -lP "^}\s*$1;" \
- | sort \
- | xargs pcregrep -Mn "(?s)^typedef\s(?:(?!^}).)*^}\s*$1;" /dev/null \
- | sed -E 's/^[^: ]+:[0-9]+:/\n\n&\n\n/';
+ grepc_helper '\.[ch]$' \
+ "^}\s*$1;" \
+ "(?s)^typedef\s(?:(?!^}).)*^}\s*$1;";
}