X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=maketags.sh;fp=maketags.sh;h=d12745de1a9cd9704f5a94444a3e96c6a3d06f21;hb=77fc72c061a0bf88335052377ee89df45dfd846b;hp=c0fd6e719c60462212122d5ae6084b69810c7394;hpb=a28f3abb26a5c077840beb9f2735fceb80e57f39;p=musl-tables diff --git a/maketags.sh b/maketags.sh index c0fd6e7..d12745d 100755 --- a/maketags.sh +++ b/maketags.sh @@ -8,16 +8,31 @@ MUSL=${MUSL:-../musl} ctags -f /tmp/musl.tags -R -n -u --language-force=c --c-kinds=pxdstuv --fields=k --exclude='*.sh' . ) -awk ' +awk -v inc=$MUSL/include/ ' BEGIN { FS="\t" } +function proto(t,h,n) { + cmd = "awk '\''NR==" n + if (t == "p") + cmd = cmd "{s=$0; if(s!~/;/){getline; s=s \" \" $0} print s; exit}" + else if (t == "d") + cmd = cmd "{s=$0; while(gsub(/\\\\$/,\"\",s)){getline; s=s $0} print s; exit}" + else + return "" + cmd = cmd "'\'' " inc h + cmd | getline s + close(cmd) + gsub(/\t/, " ", s) + gsub(/ +/, " ", s) + return s +} /^[^!]/ { gsub(/[^0-9]*/,"",$3) if ($4 == "s") $1 = "struct " $1 if ($4 == "u") $1 = "union " $1 - print $1 "\t" $2 "\t" $4 "\t" $3 + print $1 "\t" $2 "\t" $4 "\t" $3 "\t" proto($4,$2,$3) }' /tmp/musl.tags |sort >data/musl.tags rm -f /tmp/musl.tags