sizeof renames
[musl-tables] / inctags.sh
1 #!/bin/sh
2
3 export LC_ALL=C
4
5 dotags() {
6 (
7         cd $1
8         ctags -f /tmp/inc.tags -R -n -u --links=no --languages='c,c++' --c-kinds=pxdstuv --fields=k --exclude='*.c' .
9 )
10 awk -v path=$1/ '
11 BEGIN {
12         FS="\t"
13 }
14 function proto(t,h,n) {
15         cmd = "awk '\''NR==" n
16         if (t == "p")
17                 cmd = cmd "{s=$0; if(s!~/;/){getline; s=s \" \" $0} print s; exit}"
18         else if (t == "d")
19                 cmd = cmd "{s=$0; while(gsub(/\\\\$/,\"\",s)){getline; s=s $0} print s; exit}"
20         else
21                 return ""
22         cmd = cmd "'\'' " path h
23         cmd | getline s
24         close(cmd)
25         gsub(/\t/, " ", s)
26         gsub(/ +/, " ", s)
27         return s
28 }
29 /^[^!]/ {
30         gsub(/[^0-9]*/,"",$3)
31         if ($4 == "s")
32                 $1 = "struct " $1
33         if ($4 == "u")
34                 $1 = "union " $1
35         print $1 "\t" $2 "\t" $4 "\t" $3 "\t" proto($4,$2,$3)
36 }' /tmp/inc.tags |sort
37 rm -f /tmp/inc.tags
38 }
39
40 dotags ../../lang/c/glibc >data/glibc.inc.tags
41 dotags ../musl >data/musl.inc.tags