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