Index: Doc/vtab.tcl ================================================================== --- Doc/vtab.tcl +++ Doc/vtab.tcl @@ -46,11 +46,11 @@ } return $result } -proc processLine { line prefix } { +proc processLine { line prefix ltAndGt } { if {[string length [string trim $line]] == 0 || \ [regexp -- {)} [string range $line 0 3]] || \ [regexp -- {

\n)} [string range $line 0 8]]} then { return "" } @@ -76,12 +76,15 @@ set indent " /// " regsub -all -- {≠} $result {\≠} result regsub -all -- {[(?:;)?} $result {[} result regsub -all -- {](?:;)?} $result {]} result - # regsub -all -- {<( |\"|\d|=)} $result {\<\1} result - # regsub -all -- {( |\"|\d|=)>} $result {\1\>} result + + if {$ltAndGt} then { + regsub -all -- {<( |\"|\d|=)} $result {\<\1} result + regsub -all -- {( |\"|\d|=)>} $result {\1\>} result + } regsub -all -- {
} $result \
       \n$indent result
 
   regsub -all -- {
} $result result @@ -91,11 +94,12 @@ regsub -all -- {} $result result return $result } -proc extractMethod { name lines pattern prefix indexVarName methodsVarName } { +proc extractMethod { + name lines pattern prefix indexVarName methodsVarName ltAndGt } { upvar 1 $indexVarName index upvar 1 $methodsVarName methods array set levels {p 0} set length [llength $lines] @@ -121,11 +125,11 @@ incr levels(p) -1 } elseif {[string range $trimLine 0 2] eq "

" || \ [string range $trimLine 0 6] eq "

"} then { # open tag ... maybe one line? if {[string range $trimLine end-3 end] eq "

"} then { - set newLine [processLine $line $prefix] + set newLine [processLine $line $prefix $ltAndGt] if {[string length $newLine] > 0} then { # one line tag, wrap. if {[info exists methods($name)]} then { # non-first line, leading line separator. @@ -145,20 +149,20 @@ } else { # first line, no leading line separator. append data $prefix } - set newLine [processLine $line $prefix] + set newLine [processLine $line $prefix $ltAndGt] if {[string length $newLine] > 0} then { append data \n $prefix $newLine } incr levels(p) } } else { - set newLine [processLine $line $prefix] + set newLine [processLine $line $prefix $ltAndGt] if {[string length $newLine] > 0} then { if {[info exists methods($name)]} then { # non-first line, leading line separator. append data \n $prefix $newLine @@ -203,10 +207,17 @@ set inputData [string map [list \ {*** DRAFT ***} ""] $inputData] set inputData [string map [list {

} ""] $inputData] + +if {[string first <\; $inputData] != -1 || \ + [string first >\; $inputData] != -1} then { + set ltAndGt false +} else { + set ltAndGt true +} set lines [split [string map [list \r\n \n] $inputData] \n] set patterns(start) [string trim { ^(?:

\n)?

(?:)?2\. (?:)?Virtual Table Methods

$ @@ -225,12 +236,12 @@ if {$start} then { if {[regexp -- $patterns(method) $line dummy capture]} then { foreach method [englishToList $capture] { set methodIndex [expr {$index + 1}] - extractMethod \ - $method $lines $patterns(method) $prefix methodIndex methods + extractMethod $method $lines $patterns(method) $prefix \ + methodIndex methods $ltAndGt } set index $methodIndex } else { incr index