while getopts "t:" opt; do
case "$opt" in
t)
- case "$OPTARG" in
- e) t_e='yes'; ;;&
- f | fp) t_fp='yes'; ;;&
- f | fd) t_fd='yes'; ;;&
- f | fl | flp) t_flp='yes'; ;;&
- f | fl | fld) t_fld='yes'; ;;&
- f | fg | fgp) t_fgp='yes'; ;;&
- f | fg | fgd) t_fgd_libm='yes';
- t_fgd_libio='yes'; ;;&
- m | mf) t_mf='yes'; ;;&
- m | mo) t_mo='yes'; ;;&
- t) t_t_braced='yes';
- t_t_td_simple='yes';
- t_t_td_braced='yes';
- t_t_td_func='yes'; ;;&
- u | ue) t_ue='yes'; ;;&
- u | uf) t_uf_def='yes';
- t_uf_linux_def='yes'; ;;&
- u | um) t_um='yes'; ;;&
- u | ut) t_ut_su='yes';
- t_ut_td_simple='yes';
- t_ut_td_su='yes'; ;;&
- [efmtu] | f[pdlg] | fl[pd] | fg[pd] | m[fo] | u[efmt])
- t='yes';
- ;;
- *)
- grepc_err "-$opt: $OPTARG: Unknown argument.";
- ;;
- esac;
- ;;
+ case "$OPTARG" in
+ e) t_e='yes'; ;;&
+ f | fp) t_fp='yes'; ;;&
+ f | fd) t_fd='yes'; ;;&
+ f | fl | flp) t_flp='yes'; ;;&
+ f | fl | fld) t_fld='yes'; ;;&
+ f | fg | fgp) t_fgp='yes'; ;;&
+ f | fg | fgd) t_fgd_libm='yes';
+ t_fgd_libio='yes'; ;;&
+ m | mf) t_mf='yes'; ;;&
+ m | mo) t_mo='yes'; ;;&
+ t) t_t_braced='yes';
+ t_t_td_simple='yes';
+ t_t_td_braced='yes';
+ t_t_td_func='yes'; ;;&
+ u | ue) t_ue='yes'; ;;&
+ u | uf) t_uf_def='yes';
+ t_uf_linux_def='yes'; ;;&
+ u | um) t_um='yes'; ;;&
+ u | ut) t_ut_su='yes';
+ t_ut_td_simple='yes';
+ t_ut_td_su='yes'; ;;&
+ [efmtu] | f[pdlg] | fl[pd] | fg[pd] | m[fo] | u[efmt])
+ t='yes';
+ ;;
+ *)
+ grepc_err "-$opt: $OPTARG: Unknown argument.";
+ ;;
+ esac;
+ ;;
\? | *)
exit 1;
;;
fi;
if test "$t" = 'no'; then
- t_e='yes';
- t_fp='yes';
- t_fd='yes';
- t_flp='yes';
- t_fld='yes';
- t_fgp='yes';
- t_fgd_libm='yes';
- t_fgd_libio='yes';
- t_mf='yes';
- t_mo='yes';
- t_t_braced='yes';
- t_t_td_simple='yes';
- t_t_td_braced='yes';
- t_t_td_func='yes';
+ t_e='yes';
+ t_fp='yes';
+ t_fd='yes';
+ t_flp='yes';
+ t_fld='yes';
+ t_fgp='yes';
+ t_fgd_libm='yes';
+ t_fgd_libio='yes';
+ t_mf='yes';
+ t_mo='yes';
+ t_t_braced='yes';
+ t_t_td_simple='yes';
+ t_t_td_braced='yes';
+ t_t_td_func='yes';
fi;
-grepc_c_e() { printf '%s\n' '(?s)^([\w[]+[\w\s]*)?\benum\b[ \t]*([\w \t[\]]|::)*\n*([ \t]*){[^}]*^[ \t]*'"$1"'\b\s*[=,].*?^\3}.*?;'; }
-grepc_c_f_decl_() { printf '%s' '(?s)^[\w[](?:[\w\s\(,\)[\]*]|::)+[\w\s\)*\]]\s+\**\(?'"$1"'\)?\s*(\((?:[\w\s,;[\]*]|::|(?1))*(?:\.\.\.)?\))'; }
-grepc_c_fp() { grepc_c_f_decl_ "$1"; printf '%s\n' '(?:[\w\s\(,\)[\]]|::)*;'; }
-grepc_c_fd() { grepc_c_f_decl_ "$1"; printf '%s\n' '[ \t]*\n(?<space>[ \t]*){.*?^\k<space>}'; }
-grepc_c_fgd_libm() { grepc_c_fd "M_DECL_FUNC \(__$1\)"; }
-grepc_c_fgd_libio() { grepc_c_fd "_IO_$1"; }
-grepc_c_fgp_libio() { grepc_c_fp "_IO_$1"; }
-grepc_c_fgp() { grepc_c_fgp_libio "$1"; }
-grepc_c_flp() { printf '%s\n' '(?s)^asmlinkage\s+[\w\s]+\**sys_'"$1"'\s*\(.*?\)'; }
-grepc_c_fld() { printf '%s\n' '(?s)^(COMPAT_)?SYSCALL_DEFINE.\('"$1"'\b.*?^}'; }
-grepc_c_mf() { printf '%s\n' '(?s)^[ \t]*#\s*define\s[\s\\]*'"$1"'\(.*?[^\\]$'; }
-grepc_c_mo() { printf '%s\n' '(?s)^[ \t]*#\s*define\s[\s\\]*'"$1"'\b(?!\().*?(?<!\\)$'; }
-grepc_c_t_braced() { printf '%s\n' '(?s)^([\w[]([\w\s\(,\)[\]*]|::)*[\w\s\)*\]]\s+)?\b(struct|union|enum)\b([\w \t[\]]|::)+\b'"$1"'\b[ \t]*\n*([ \t]*){.*?^\5}.*?;'; }
-grepc_c_t_td_simple() { printf '%s\n' '(?s)^[ \t]*typedef\s+[^{};]+\b'"$1"';'; }
-grepc_c_t_td_braced() { printf '%s\n' '(?s)^[ \t]*typedef\s+(struct|union|enum)\b(?:(?!\W'"$1"'\W)([\w \t[\]]|::))*\n*([ \t]*){(?:(?!^\3?}).)*?^\3}\s*'"$1"'(\[[\w\(,\)]\])*;'; }
-grepc_c_t_td_func() { printf '%s\n' '(?s)^[ \t]*typedef\s+[^{};]+\(\**'"$1"'\)\s*\([^{};]+;'; }
-grepc_c_ue() { printf '%s\n' '(?s)^([\w[]+[\w\s]*)?\benum\b([\w \t[\]]|::)*\n*([ \t]*){[^}]*^\s*\w+[\w\s[\]=]*'"$1"'.*?^\3}.*?;'; }
-grepc_c_uf_def() { grepc_c_f_decl_ '\w+'; printf '%s\n' '[ \t]*\n*(?<space>[ \t]*){(?:(?!^\k<space>?}).)*'"$1"'.*?^\k<space>}'; }
-grepc_c_uf_linux_def() { printf '%s\n' '(?s)^(COMPAT_)?SYSCALL_DEFINE.\(\w+\b(?:(?!^}).)*'"$1"'.?^}'; }
-grepc_c_um() { printf '%s\n' '(?s)^[ \t]*#\s*define\s[\s\\]*\w+\b(\([^\)]*\))?(?:(?![^\\]$).)*'"$1"'.*?[^\\]$'; }
-grepc_c_ut_su() { printf '%s\n' '(?s)^(?!^[ \t]*typedef\b)([\w[]([\w\s\(,\)[\]*]|::)*[\w\s\)*\]]\s+)?\b(struct|union)\b([\w \t[\]]|::)*\w+[ \t]*\n*([ \t]*){(?:(?!^\5?}).)*?'"$1"'.*?^\5}.*?;'; }
-grepc_c_ut_td_simple() { printf '%s\n' '(?s)^[ \t]*typedef\s+[^{};]*'"$1"'[^{};]+;'; }
-grepc_c_ut_td_su() { printf '%s\n' '(?s)^[ \t]*typedef\s+(struct|union)\b([\w \t[\]]|::)*\n*([ \t]*){(?:(?!^\3?}|^\s*typedef).)*'"$1"'(?:(?!^\3?}|^\s*typedef).)*^\3}\s*\w+;'; }
+grepc_c_e() { printf '%s\n' '(?s)^([\w[]+[\w\s]*)?\benum\b[ \t]*([\w \t[\]]|::)*\n*([ \t]*){[^}]*^[ \t]*'"$1"'\b\s*[=,].*?^\3}.*?;'; }
+grepc_c_f_decl_() { printf '%s' '(?s)^[\w[](?:[\w\s\(,\)[\]*]|::)+[\w\s\)*\]]\s+\**\(?'"$1"'\)?\s*(\((?:[\w\s,;[\]*]|::|(?1))*(?:\.\.\.)?\))'; }
+grepc_c_fp() { grepc_c_f_decl_ "$1"; printf '%s\n' '(?:[\w\s\(,\)[\]]|::)*;'; }
+grepc_c_fd() { grepc_c_f_decl_ "$1"; printf '%s\n' '[ \t]*\n(?<space>[ \t]*){.*?^\k<space>}'; }
+grepc_c_fgd_libm() { grepc_c_fd "M_DECL_FUNC \(__$1\)"; }
+grepc_c_fgd_libio() { grepc_c_fd "_IO_$1"; }
+grepc_c_fgp_libio() { grepc_c_fp "_IO_$1"; }
+grepc_c_fgp() { grepc_c_fgp_libio "$1"; }
+grepc_c_flp() { printf '%s\n' '(?s)^asmlinkage\s+[\w\s]+\**sys_'"$1"'\s*\(.*?\)'; }
+grepc_c_fld() { printf '%s\n' '(?s)^(COMPAT_)?SYSCALL_DEFINE.\('"$1"'\b.*?^}'; }
+grepc_c_mf() { printf '%s\n' '(?s)^[ \t]*#\s*define\s[\s\\]*'"$1"'\(.*?[^\\]$'; }
+grepc_c_mo() { printf '%s\n' '(?s)^[ \t]*#\s*define\s[\s\\]*'"$1"'\b(?!\().*?(?<!\\)$'; }
+grepc_c_t_braced() { printf '%s\n' '(?s)^([\w[]([\w\s\(,\)[\]*]|::)*[\w\s\)*\]]\s+)?\b(struct|union|enum)\b([\w \t[\]]|::)+\b'"$1"'\b[ \t]*\n*([ \t]*){.*?^\5}.*?;'; }
+grepc_c_t_td_simple() { printf '%s\n' '(?s)^[ \t]*typedef\s+[^{};]+\b'"$1"';'; }
+grepc_c_t_td_braced() { printf '%s\n' '(?s)^[ \t]*typedef\s+(struct|union|enum)\b(?:(?!\W'"$1"'\W)([\w \t[\]]|::))*\n*([ \t]*){(?:(?!^\3?}).)*?^\3}\s*'"$1"'(\[[\w\(,\)]\])*;'; }
+grepc_c_t_td_func() { printf '%s\n' '(?s)^[ \t]*typedef\s+[^{};]+\(\**'"$1"'\)\s*\([^{};]+;'; }
+grepc_c_ue() { printf '%s\n' '(?s)^([\w[]+[\w\s]*)?\benum\b([\w \t[\]]|::)*\n*([ \t]*){[^}]*^\s*\w+[\w\s[\]=]*'"$1"'.*?^\3}.*?;'; }
+grepc_c_uf_def() { grepc_c_f_decl_ '\w+'; printf '%s\n' '[ \t]*\n*(?<space>[ \t]*){(?:(?!^\k<space>?}).)*'"$1"'.*?^\k<space>}'; }
+grepc_c_uf_linux_def() { printf '%s\n' '(?s)^(COMPAT_)?SYSCALL_DEFINE.\(\w+\b(?:(?!^}).)*'"$1"'.?^}'; }
+grepc_c_um() { printf '%s\n' '(?s)^[ \t]*#\s*define\s[\s\\]*\w+\b(\([^\)]*\))?(?:(?![^\\]$).)*'"$1"'.*?[^\\]$'; }
+grepc_c_ut_su() { printf '%s\n' '(?s)^(?!^[ \t]*typedef\b)([\w[]([\w\s\(,\)[\]*]|::)*[\w\s\)*\]]\s+)?\b(struct|union)\b([\w \t[\]]|::)*\w+[ \t]*\n*([ \t]*){(?:(?!^\5?}).)*?'"$1"'.*?^\5}.*?;'; }
+grepc_c_ut_td_simple() { printf '%s\n' '(?s)^[ \t]*typedef\s+[^{};]*'"$1"'[^{};]+;'; }
+grepc_c_ut_td_su() { printf '%s\n' '(?s)^[ \t]*typedef\s+(struct|union)\b([\w \t[\]]|::)*\n*([ \t]*){(?:(?!^\3?}|^\s*typedef).)*'"$1"'(?:(?!^\3?}|^\s*typedef).)*^\3}\s*\w+;'; }
- if test "$t_e" = yes; then grepc_c_e "$identifier"; fi;
- if test "$t_fp" = yes; then grepc_c_fp "$identifier"; fi;
- if test "$t_fd" = yes; then grepc_c_fd "$identifier"; fi;
- if test "$t_flp" = yes; then grepc_c_flp "$identifier"; fi;
- if test "$t_fld" = yes; then grepc_c_fld "$identifier"; fi;
- if test "$t_fgp" = yes; then grepc_c_fgp "$identifier"; fi;
- if test "$t_fgd_libm" = yes; then grepc_c_fgd_libm "$identifier"; fi;
- if test "$t_fgd_libio" = yes; then grepc_c_fgd_libio "$identifier"; fi;
- if test "$t_mf" = yes; then grepc_c_mf "$identifier"; fi;
- if test "$t_mo" = yes; then grepc_c_mo "$identifier"; fi;
- if test "$t_t_braced" = yes; then grepc_c_t_braced "$identifier"; fi;
- if test "$t_t_td_simple" = yes; then grepc_c_t_td_simple "$identifier"; fi;
- if test "$t_t_td_braced" = yes; then grepc_c_t_td_braced "$identifier"; fi;
- if test "$t_t_td_func" = yes; then grepc_c_t_td_func "$identifier"; fi;
- if test "$t_ue" = yes; then grepc_c_ue "$identifier"; fi;
- if test "$t_uf_def" = yes; then grepc_c_uf_def "$identifier"; fi;
- if test "$t_uf_linux_def" = yes; then grepc_c_uf_linux_def "$identifier"; fi;
- if test "$t_um" = yes; then grepc_c_um "$identifier"; fi;
- if test "$t_ut_su" = yes; then grepc_c_ut_su "$identifier"; fi;
- if test "$t_ut_td_simple" = yes; then grepc_c_ut_td_simple "$identifier"; fi;
- if test "$t_ut_td_su" = yes; then grepc_c_ut_td_su "$identifier"; fi;
+if test "$t_e" = yes; then grepc_c_e "$identifier"; fi;
+if test "$t_fp" = yes; then grepc_c_fp "$identifier"; fi;
+if test "$t_fd" = yes; then grepc_c_fd "$identifier"; fi;
+if test "$t_flp" = yes; then grepc_c_flp "$identifier"; fi;
+if test "$t_fld" = yes; then grepc_c_fld "$identifier"; fi;
+if test "$t_fgp" = yes; then grepc_c_fgp "$identifier"; fi;
+if test "$t_fgd_libm" = yes; then grepc_c_fgd_libm "$identifier"; fi;
+if test "$t_fgd_libio" = yes; then grepc_c_fgd_libio "$identifier"; fi;
+if test "$t_mf" = yes; then grepc_c_mf "$identifier"; fi;
+if test "$t_mo" = yes; then grepc_c_mo "$identifier"; fi;
+if test "$t_t_braced" = yes; then grepc_c_t_braced "$identifier"; fi;
+if test "$t_t_td_simple" = yes; then grepc_c_t_td_simple "$identifier"; fi;
+if test "$t_t_td_braced" = yes; then grepc_c_t_td_braced "$identifier"; fi;
+if test "$t_t_td_func" = yes; then grepc_c_t_td_func "$identifier"; fi;
+if test "$t_ue" = yes; then grepc_c_ue "$identifier"; fi;
+if test "$t_uf_def" = yes; then grepc_c_uf_def "$identifier"; fi;
+if test "$t_uf_linux_def" = yes; then grepc_c_uf_linux_def "$identifier"; fi;
+if test "$t_um" = yes; then grepc_c_um "$identifier"; fi;
+if test "$t_ut_su" = yes; then grepc_c_ut_su "$identifier"; fi;
+if test "$t_ut_td_simple" = yes; then grepc_c_ut_td_simple "$identifier"; fi;
+if test "$t_ut_td_su" = yes; then grepc_c_ut_td_su "$identifier"; fi;