/usr/share/ss/ct_c.awk is in ss-dev 2.0-1.44.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | /^command_table / {
cmdtbl = $2;
printf "/* %s.c - automatically generated from %s.ct */\n", \
rootname, rootname > outfile
print "#include <ss/ss.h>" > outfile
print "" >outfile
}
/^BOR$/ {
cmdnum++
options = 0
cmdtab = ""
printf "static char const * const ssu%05d[] = {\n", cmdnum > outfile
}
/^sub/ {
subr = substr($0, 6, length($0)-5)
}
/^hlp/ {
help = substr($0, 6, length($0)-5)
}
/^cmd/ {
cmd = substr($0, 6, length($0)-5)
printf "%s\"%s\",\n", cmdtab, cmd > outfile
cmdtab = " "
}
/^opt/ {
opt = substr($0, 6, length($0)-5)
if (opt == "dont_list") {
options += 1
}
if (opt == "dont_summarize") {
options += 2
}
}
/^EOR/ {
print " (char const *)0" > outfile
print "};" > outfile
printf "extern void %s __SS_PROTO;\n", subr > outfile
# Work around a bug in gawk 3.0.5
awk_bug = cmdnum
subr_tab[awk_bug] = subr
options_tab[awk_bug] = options
help_tab[awk_bug] = help
}
/^[0-9]/ {
linenum = $1;
}
/^ERROR/ {
error = substr($0, 8, length($0)-7)
printf "Error in line %d: %s\n", linenum, error
print "#__ERROR_IN_FILE__" > outfile
}
END {
printf "static ss_request_entry ssu%05d[] = {\n", cmdnum+1 > outfile
for (i=1; i <= cmdnum; i++) {
printf " { ssu%05d,\n", i > outfile
printf " %s,\n", subr_tab[i] > outfile
printf " \"%s\",\n", help_tab[i] > outfile
printf " %d },\n", options_tab[i] > outfile
}
print " { 0, 0, 0, 0 }" > outfile
print "};" > outfile
print "" > outfile
printf "ss_request_table %s = { 2, ssu%05d };\n", \
cmdtbl, cmdnum+1 > outfile
}
|