aboutsummaryrefslogtreecommitdiff
path: root/manual/summary.awk
diff options
context:
space:
mode:
Diffstat (limited to 'manual/summary.awk')
-rw-r--r--manual/summary.awk17
1 files changed, 14 insertions, 3 deletions
diff --git a/manual/summary.awk b/manual/summary.awk
index 5ebced6..cd68ae6 100644
--- a/manual/summary.awk
+++ b/manual/summary.awk
@@ -88,17 +88,22 @@ $1 == "@node" { node=$2;
}
$1 == "@comment" && $2 ~ /\.h$/ { header="@file{" $2 "}";
+ optional = 0;
+ if ($NF == "(optional)") {
+ optional = 1;
+ --NF;
+ }
for (i = 3; i <= NF; ++i)
header=header ", @file{" $i "}"
}
-$1 == "@comment" && $2 == "(none)" { header = -1; }
+$1 == "@comment" && $2 == "(none)" { header = -1; optional = 0; }
$1 == "@comment" && header != 0 { std=$2;
for (i=3;i<=NF;++i) std=std " " $i }
header != 0 && $1 ~ /@def|@item|@vindex/ \
- { defn=""; name=""; curly=0; n=1;
+ { defn=""; name=""; curly=0; n=1; flavor="";
for (i = 2; i <= NF; ++i) {
if ($i ~ /^{/ && $i !~ /}/) {
curly=1
@@ -124,9 +129,15 @@ header != 0 && $1 ~ /@def|@item|@vindex/ \
name=word
++n
}
+ if (flavor == "") {
+ flavor = $1;
+ if (flavor ~ /^@deftypevrx?/)
+ flavor = flavor " {" word "}";
+ }
}
}
- printf "@comment %s%c", name, 12 # FF
+ printf "@comment %s%s%c", name, optional ? " (optional)" : "", 12 # FF
+ printf "@c %s %d %s%c", FILENAME, FNR, flavor, 12
printf "@item%s%c%c", defn, 12, 12
if (header != -1) printf "%s ", header;
printf "(%s): @ref{%s}.%c\n", std, node, 12;