summary refs log tree commit diff
path: root/home/.local/bin/def
blob: 6a1681d375f3bd8282c8dd3686e4d191b8a34812 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh
set -eu

macro=$1
headers='
assert.h
complex.h
ctype.h
errno.h
fenv.h
float.h
inttypes.h
iso646.h
limits.h
locale.h
math.h
setjmp.h
signal.h
stdalign.h
stdarg.h
stdatomic.h
stdbool.h
stddef.h
stdint.h
stdio.h
stdlib.h
stdnoreturn.h
string.h
tgmath.h
threads.h
time.h
uchar.h
wchar.h
wctype.h
'

for header in $headers; do
	defined=$(
		echo "$macro" \
		| cc -E -x c -include "$header" - \
		2> /dev/null \
		| tail -n 1
	)
	[ $? -ne 0 -o "$defined" = "$macro" ] && continue
	echo "#include <${header}>"
	echo "$defined"
done