]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
src/bin/grepc_c: -tt, -tut: Reuse code
authorAlejandro Colomar <alx@kernel.org>
Wed, 5 Nov 2025 22:48:37 +0000 (23:48 +0100)
committerAlejandro Colomar <alx@kernel.org>
Thu, 6 Nov 2025 00:43:11 +0000 (01:43 +0100)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
src/bin/grepc_c

index 9796ba3a6ec2db953cae7c291af5e37417d28b0a..469f5a3cd122f504782a846b8aa5ad7b8a690579 100755 (executable)
@@ -121,6 +121,7 @@ grepc_c_mf_decl_()      { grepc_c_m_decl_ "$1";
 grepc_c_mo_decl_()      { grepc_c_m_decl_ "$1";
                           printf '%s' '(?!\()'; }
 grepc_c_m_repl_()       { printf '%s' '(?:(?![^\\]$).)*'"$1"'.*?(?<!\\)$'; }
+grepc_c_t_sue_decl_()   { printf '%s' '(?s)^([\w[]([\w\s\(,\)[\]*]|::)*[\w\s\)*\]]\s+)?\b(?:'"$1"')\b([\w \t[\]]|::)*(?<!\w)'"$2"'(?!\w)'; }
 
 
 grepc_c_e()             { grepc_c_e_decl_;
@@ -145,7 +146,7 @@ grepc_c_mf()            { grepc_c_mf_decl_ "$1";
 grepc_c_mo()            { grepc_c_mo_decl_ "$1";
                           grepc_c_m_repl_ '';
                           echo; }
-grepc_c_t_braced()      { printf '%s' '(?s)^([\w[]([\w\s\(,\)[\]*]|::)*[\w\s\)*\]]\s+)?\b(struct|union|enum)\b([\w \t[\]]|::)+\b'"$1"'\b';
+grepc_c_t_braced()      { grepc_c_t_sue_decl_ 'struct|union|enum' "$1";
                           grepc_c_body_;
                           echo '[^;]*;'; }
 grepc_c_t_td_simple()   { echo '(?s)^[ \t]*typedef\s+[^{};]+\b'"$1"';'; }
@@ -168,7 +169,7 @@ grepc_c_umf()           { grepc_c_mf_decl_ '\w+'
 grepc_c_umo()           { grepc_c_mo_decl_ '\w+'
                           grepc_c_m_repl_ "$1";
                           echo; }
-grepc_c_ut_su()         { printf '%s' '(?s)^([\w[]([\w\s\(,\)[\]*]|::)*[\w\s\)*\]]\s+)?\b(struct|union)\b([\w \t[\]]|::)*';
+grepc_c_ut_su()         { grepc_c_t_sue_decl_ 'struct|union' '';
                           grepc_c_u_body_ "$1";
                           echo '[^;]*;'; }
 grepc_c_ut_td_simple()  { echo '(?s)^[ \t]*typedef\s+[^{};]*'"$1"'[^{};]+;'; }