diff options
author | Jakob Kaivo <jkk@ung.org> | 2019-02-08 18:12:11 -0500 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2019-02-08 18:12:11 -0500 |
commit | 37efe93bf09aadd7cf4908e418d2004984d68ac0 (patch) | |
tree | 30835b876dc0a2c29d60d349b2897acec7d9453b | |
parent | bd49f3dd0f914850fd4243bfc5350d4875bf6e71 (diff) |
use get_declaration for macros
-rwxr-xr-x | mkh.sh | 43 |
1 files changed, 13 insertions, 30 deletions
@@ -75,7 +75,7 @@ if [ -d $HEADER.MACRO ]; then fi for i in $(sort -u $v); do - grep -E '^#(if|def|undef|el|end)' $i + get_declaration $i MACRO done if [ -n "$version" ]; then @@ -98,15 +98,7 @@ if [ -d $HEADER.TYPE ]; then fi for i in $(sort -u $v); do - if grep -q '^#ifdef' $i; then - sed -ne '/#ifdef/,/#endif/p' $i - elif grep -q '^typedef.*;$' $i; then - grep '^typedef' $i - elif grep -q '^struct.*;$' $i; then - grep '^struct.*;$' $i - else - sed -ne '/^typedef/,/\}.*;$/p' $i - fi + get_declaration $i TYPE done if [ -n "$version" ]; then @@ -126,13 +118,7 @@ if [ -d $HEADER.TYPE_LONG ]; then fi for i in $(sort -u $v); do - if grep -q '^#ifdef' $i; then - sed -ne '/#ifdef/,/#endif/p' $i - elif grep -q '^typedef.*;$' $i; then - grep '^typedef' $i - else - sed -ne '/^typedef/,/\}.*;$/p' $i - fi + get_declaration $i TYPE_LONG done if [ -n "$version" ]; then @@ -152,11 +138,7 @@ if [ -d $HEADER.RECORD ]; then fi for i in $(sort -u $v 2>/dev/null); do - if grep -q '^struct' $i; then - sed -ne '/^struct/,/\};/p' $i - else - sed -ne '/^union/,/\};/p' $i - fi + get_declaration $i RECORD done if [ -n "$version" ]; then @@ -176,7 +158,7 @@ if [ -d $HEADER.FNTYPE ]; then fi for i in $(sort -u $v 2>/dev/null); do - grep '^typedef ' $i + get_declaration $1 FNTYPE done if [ -n "$version" ]; then @@ -196,7 +178,7 @@ if [ -d $HEADER.EXTERN ]; then fi for i in $(sort -u $v); do - printf 'extern %s\n' "$(grep '^[a-zA-Z_].*;$' $i)" + get_declaration $i EXTERN done if [ -n "$version" ]; then @@ -216,7 +198,7 @@ if [ -d $HEADER.TGFN ]; then fi for i in $(sort -u $v); do - printf '%s;\n' "$(sed -e "/{/q" $i | tail -n2 | head -n1 | m4 '-DTGFN=$1' -DTYPE=double)" + get_declaration $i TGFN done if [ -n "$version" ]; then @@ -229,11 +211,12 @@ if [ -d $HEADER.TGFN ]; then fi if [ -d $HEADER.FUNCTION ]; then - ### TODO: only if header includes C89/AMD1 stuff if grep -q restrict $(cat $HEADER.FUNCTION/*); then - printf '#if (!defined __STDC_VERSION__) || (__STDC_VERSION__ < 199909L)\n' - printf '#define restrict\n' - printf '#endif\n\n' + if grep -Fq -e 'STDC(1)' -e 'STDC(1,' -e 'STDC(199409' $(grep -l restrict $(cat $HEADER.FUNCTION/*)); then + printf '#if (!defined __STDC_VERSION__) || (__STDC_VERSION__ < 199901L)\n' + printf '#define restrict\n' + printf '#endif\n\n' + fi fi ### TODO: only if header works with C<11 @@ -250,7 +233,7 @@ if [ -d $HEADER.FUNCTION ]; then fi for i in $(sort -u $v); do - printf '%s;\n' "$(sed -e "/{/q" $i | tail -n2 | head -n1 | sed -e 's/\([a-zA-Z_][a-zA-Z_0-9]*\)\([,)]\)/__\1\2/g;s/(__\([a-zA-Z_][a-zA-Z_0-9]*\))/(\1)/g')" + get_declaration $i FUNCTION | sed -e 's/\([a-zA-Z_][a-zA-Z_0-9]*\)\([,)]\)/__\1\2/g;s/(__\([a-zA-Z_][a-zA-Z_0-9]*\))/(\1)/g' done if [ -n "$version" ]; then |