| #!/bin/sh | |
| # This script attempts to find bad ifdef's, i.e. ifdef's that use braces | |
| # but not the do { ... } while (0) syntax | |
| # | |
| # src/tools/find_badmacros | |
| # | |
| # This is useful for running before pgindent | |
| for FILE | |
| do | |
| awk ' BEGIN {was_define = "N"} | |
| { if (was_define == "Y" && | |
| $0 ~ /^{/) | |
| printf "%s %d\n", FILENAME, NR | |
| if ($0 ~ /^#define/) | |
| was_define = "Y" | |
| else | |
| was_define = "N" | |
| }' "$FILE" | |
| grep -on '^#define.*{' "$FILE" | grep -v 'do[ ]*{' | |
| done |