|
|
tproto.sh - ploot - simple plotting tools |
|
|
 |
git clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot (git://bitreich.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
Tags |
|
|
 |
README |
|
|
|
--- |
|
|
|
tproto.sh (1328B) |
|
|
|
--- |
|
|
|
1 #!/bin/sh |
|
|
|
2 awk=' |
|
|
|
3 BEGIN { |
|
|
|
4 tab = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" |
|
|
|
5 print "/**/" |
|
|
|
6 } |
|
|
|
7 |
|
|
|
8 END { |
|
|
|
9 print "" |
|
|
|
10 print "#endif" |
|
|
|
11 } |
|
|
|
12 |
|
|
|
13 # functions |
|
|
|
14 |
|
|
|
15 args { |
|
|
|
16 sub(/^[ \t]*/, " ") |
|
|
|
17 args = args $0 |
|
|
|
18 } |
|
|
|
19 |
|
|
|
20 /^[a-zA-Z0-9_]+\([][)(a-z_A-Z0-9*,. \t]*$/ { |
|
|
|
21 if (match(type, "static") || match($0, ";$")) |
|
|
|
22 next |
|
|
|
23 |
|
|
|
24 symbol = $0 |
|
|
|
25 sub(/\(.*/, "", symbol) |
|
|
|
26 sub(/[a-zA-Z0-9_]*\(/, "", $0) |
|
|
|
27 if (symbol == "main") |
|
|
|
28 next |
|
|
|
29 |
|
|
|
30 args = $0 |
|
|
|
31 sub(/^[a-z]*\(/, "", args) |
|
|
|
32 } |
|
|
|
33 |
|
|
|
34 args && /\)$/ { |
|
|
|
35 gsub(/[\n \t]+/, " ", args) |
|
|
|
36 |
|
|
|
37 sub(/\)$/, "", args) |
|
|
|
38 |
|
|
|
39 gsub(/[a-zA-Z0-9_]+\[[^]]*\]/, "[]", args) |
|
|
|
40 gsub(/[*][a-zA-Z0-9_]+/, "*", args) |
|
|
|
41 gsub(/[ ][a-zA-Z0-9_]+,/, ",", args) |
|
|
|
42 gsub(/[ ][a-zA-Z0-9_]+$/, "", args) |
|
|
|
43 gsub(/[ ][a-zA-Z0-9_]+\*/, "*", args) |
|
|
|
44 gsub(/\.\.\.\$/, "...", args) |
|
|
|
45 gsub(/void\)$/, "void", args) |
|
|
|
46 |
|
|
|
47 printf("%s%s%s%s(%s);\n", |
|
|
|
48 type, substr(tab, 1, 20 / 8 - (length(type) - 3) / 8), |
|
|
|
49 symbol, substr(tab, 1, 30 / 8 - (length(symbol) - 1) / 8), |
|
|
|
50 args) |
|
|
|
51 |
|
|
|
52 args = "" |
|
|
|
53 } |
|
|
|
54 |
|
|
|
55 !args { |
|
|
|
56 type = $0 |
|
|
|
57 } |
|
|
|
58 |
|
|
|
59 # variables |
|
|
|
60 |
|
|
|
61 /^[a-zA-Z][][ \t*a-z_A-Z0-9]*=.*[;{]$/ && $1 != "static" && $1 != "enum" { |
|
|
|
62 sub(/ *=.*/, ";") |
|
|
|
63 sub(/[ \t]*;$/, ";"); |
|
|
|
64 print |
|
|
|
65 } |
|
|
|
66 ' |
|
|
|
67 |
|
|
|
68 for file in src/*.c; do file=${file%.c} |
|
|
|
69 grep -Fq '/**/' "$file.h" 2>/dev/null || continue |
|
|
|
70 header=$(awk '$0 == "/**/" { exit(0) } 1' "$file.h" |
|
|
|
71 awk "$awk" "$file.c") |
|
|
|
72 printf '%s\n' "$header" >"$file.h" |
|
|
|
73 done |
|