fix empty lines around pages, change arrow and sqrt translit
[c-standard] / tohtml.sh
index cf86abc..8555d24 100755 (executable)
--- a/tohtml.sh
+++ b/tohtml.sh
@@ -39,6 +39,7 @@ BEGIN {
                } else
                        print
        }
+       note = 1
 }
 
 !seenindex && /^ *([1-9A-Z]\.|Annex|Index|Foreword|Introduction|Bibliography)/ {
@@ -46,7 +47,8 @@ BEGIN {
        if (id ~ /Annex/)
                id = $2
        if (($0 ~ /^    [1-9]\./ || id ~ /^([A-Z]|[1-9A-Z]\.[1-9][0-9.]*|Index|Foreword|Introduction|Bibliography)$/) &&
-           (NF==1 || $2 ~ /^[A-Z]/)) {
+           (NF==1 || $2 ~ /^[A-Z]/) &&
+           ($0 !~ /^ *[0-9.]+[^0-9]$/)) {
                if (id ~ /\.$/)
                        id = substr(id,1,length(id)-1)
                print "<a name=\"" id "\" href=\"#" id "\"><b>" $0 "</b></a>"
@@ -62,6 +64,11 @@ BEGIN {
        next
 }
 
+/^ *(Syntax|Semantics|Description|Constraints|Synopsis|Returns)$/ {
+       print "<b>" $0 "</b>"
+       next
+}
+
 {
        s = $0
        p = ""
@@ -72,7 +79,7 @@ BEGIN {
        while (match(s, r)) {
                p = p substr(s,1,RSTART)
                m = substr(s,RSTART+1,RLENGTH-1)
-               if (m ~ /[4-9][0-9]/ || m ~ /[0-3][0-9][0-9]/ || substr(s,RSTART+RLENGTH,1) ~ /[a-zA-Z\-]/)
+               if (m ~ /\.0$/ || m ~ /[4-9][0-9]/ || m ~ /[0-3][0-9][0-9]/ || substr(s,RSTART+RLENGTH,1) ~ /[a-zA-Z\-]/)
                        p = p m
                else
                        p = p "<a href=\"#" m "\">" m "</a>"
@@ -97,7 +104,22 @@ BEGIN {
                        p = p m
                s = substr(s,RSTART+RLENGTH)
        }
-       print p s
+       s = p s
+       p = ""
+       while (match(s, note "\\)")) {
+               if (note==1 && s !~ /\.1\)/)
+                       break
+               p = p substr(s,1,RSTART-1)
+               p = p "<sup><a href=\"#note" note "\"><b>" note ")</b></a></sup>"
+               note++
+               s = substr(s,RSTART+RLENGTH)
+       }
+       s = p s
+       if (s ~ /^ *[1-9][0-9]*\) /) {
+               sub(/\)/,"",s)
+               sub(/[0-9]+/,"<sup><a name=\"note&\" href=\"#note&\"><b>&)</b></a></sup>",s)
+       }
+       print s
 }
 
 END { print "</pre></body></html>" }'