update tables (wchar.h, signal.h changes)
[musl-tools.git] / maketags.sh
blobd12745de1a9cd9704f5a94444a3e96c6a3d06f21
1 #!/bin/sh
3 export LC_ALL=C
4 MUSL=${MUSL:-../musl}
7 cd $MUSL/include
8 ctags -f /tmp/musl.tags -R -n -u --language-force=c --c-kinds=pxdstuv --fields=k --exclude='*.sh' .
11 awk -v inc=$MUSL/include/ '
12 BEGIN {
13 FS="\t"
15 function proto(t,h,n) {
16 cmd = "awk '\''NR==" n
17 if (t == "p")
18 cmd = cmd "{s=$0; if(s!~/;/){getline; s=s \" \" $0} print s; exit}"
19 else if (t == "d")
20 cmd = cmd "{s=$0; while(gsub(/\\\\$/,\"\",s)){getline; s=s $0} print s; exit}"
21 else
22 return ""
23 cmd = cmd "'\'' " inc h
24 cmd | getline s
25 close(cmd)
26 gsub(/\t/, " ", s)
27 gsub(/ +/, " ", s)
28 return s
30 /^[^!]/ {
31 gsub(/[^0-9]*/,"",$3)
32 if ($4 == "s")
33 $1 = "struct " $1
34 if ($4 == "u")
35 $1 = "union " $1
36 print $1 "\t" $2 "\t" $4 "\t" $3 "\t" proto($4,$2,$3)
37 }' /tmp/musl.tags |sort >data/musl.tags
38 rm -f /tmp/musl.tags