X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ann2html.sh;h=509e3a293e8799f42558b85601dd4cac8e523613;hb=6c55e01324160ad9e3d4453aead2dabbc85c90f2;hp=6fea593a3dbf08e7c9b6f8bff71d0ac2a0d91881;hpb=215a6de37394d96ac7d679bfdf36e79437dde89e;p=c-standard diff --git a/ann2html.sh b/ann2html.sh index 6fea593..509e3a2 100755 --- a/ann2html.sh +++ b/ann2html.sh @@ -1,5 +1,7 @@ #!/bin/sh +# todo: opt + export LC_ALL=C awk ' BEGIN { @@ -85,6 +87,10 @@ seencontents && !seenfore && /^[^@]/ { next } +/^@sect 3\./ { + markdef = 1 +} + /^@sect/ { sid++ slevel = split($2,a,/\./)+1 @@ -93,7 +99,7 @@ seencontents && !seenfore && /^[^@]/ { sect = $2 getline # todo hX, back to top - ss[sid] = sprintf("%s\n", sect, sect, slevel, $0, slevel) + ss[sid] = sprintf("%s\n", slevel, sect, sect, $0, slevel) if ($0 == "Index") ss[sid] = ss[sid] "
\n"
 	next
@@ -148,17 +154,16 @@ seencontents && !seenfore && /^[^@]/ {
 	nn = 0
 	p = $2
 	getline
-	i = $2
-	ss[sid] = ss[sid] "\n"
+	ss[sid] = ss[sid] "\n"
 	next
 }
 
 /^@para/ {
-	ss[sid] = ss[sid] "

\n" + ss[sid] = ss[sid] "

\n" next } -/^ *(Syntax|Semantics|Description|Constraints|Synopsis|Returns)$/ { +/^ ?(Syntax|Semantics|Description|Constraints|Synopsis|Returns|Recommended practice|Implementation limits|Environmental limits)$/ { ss[sid] = ss[sid] "

" $0 "
\n" next } @@ -208,7 +213,14 @@ seencontents && !seenfore && /^[^@]/ { } s = p s p = "" - while (match(s, noteid "\\)")) { + for (;;) { + while (match(s, noteid-1 "\\)")) { + p = p substr(s,1,RSTART-1) + p = p "" noteid-1 ")" + s = substr(s,RSTART+RLENGTH) + } + if (!match(s, noteid "\\)")) + break if (noteid==1 && s !~ /\.1\)/) break p = p substr(s,1,RSTART-1) @@ -219,6 +231,10 @@ seencontents && !seenfore && /^[^@]/ { } s = p s sub(/^ *Forward references/, "

&", s) + if (markdef) { + s = "" s "
" + markdef = 0 + } if (pre) pre = pre "\n" s else if (nn)