1#!/bin/sh 2 3# This script attempts to find bad ifdef's, i.e. ifdef's that use braces 4# but not the do { ... } while (0) syntax 5# 6# src/tools/find_badmacros 7# 8# This is useful for running before pgindent 9 10for FILE 11do 12 awk ' BEGIN {was_define = "N"} 13 { if (was_define == "Y" && 14 $0 ~ /^{/) 15 printf "%s %d\n", FILENAME, NR 16 if ($0 ~ /^#define/) 17 was_define = "Y" 18 else 19 was_define = "N" 20 }' "$FILE" 21 grep -on '^#define.*{' "$FILE" | grep -v 'do[ ]*{' 22done 23