Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: |
Downloads: |
Tarball
| ZIP archive
|
---|
Timelines: |
family
| ancestors
| descendants
| both
| trunk
|
Files: |
files
| file ages
| folders
|
SHA1: |
d8c22e8ff72729a137782c9e20546176f23ed661 |
User & Date: |
mistachkin
2016-09-12 21:01:27.702 |
Context
2016-09-12
| | |
21:07 |
|
check-in: 59cb4c92a5 user: mistachkin tags: trunk
|
21:01 |
|
check-in: d8c22e8ff7 user: mistachkin tags: trunk
|
19:44 |
|
check-in: 23a3ba47a0 user: mistachkin tags: trunk
|
| | |
Changes
Changes to Doc/sync.eagle.
︙ | | |
203
204
205
206
207
208
209
210
211
212
|
203
204
205
206
207
208
209
210
211
212
|
-
+
|
"Downloading \"" $uri "\" to \"" $fileName "\"... "]
}
file delete $fileName
uri download $uri $fileName
if {$verbose} then {
puts stdout OK
puts stdout <Ok>
}
}
|
Changes to Doc/vtab.tcl.
︙ | | |
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
-
-
+
+
+
+
-
+
+
|
proc escapeSubSpec { data } {
regsub -all -- {&} $data {\\\&} data
regsub -all -- {\\(\d+)} $data {\\\\\1} data
return $data
}
proc removeSectionId { value } {
regsub -- { id="section(?:_\d+)+"} $value "" value
proc preProcessLine { value } {
regsub -- { id="[a-z_]+"} $value "" value
regsub -- {</p><h(\d)>} $value </p>\n<h\\1> value
regsub -- {</p><blockquote><pre>} $value <blockquote><pre> value
return $value
}
proc englishToList { value } {
set result [list]
foreach element [split $value "\t\n ,"] {
if {[string tolower $element] ni [list "" and or]} then {
lappend result $element
}
}
return $result
}
proc processLine { line prefix } {
if {[string length [string trim $line]] == 0 || \
[regexp -- {<h\d(?: |>)} [string range $line 0 3]]} then {
[regexp -- {<h\d(?: |>)} [string range $line 0 3]] || \
[regexp -- {</p>\n<h\d(?: |>)} [string range $line 0 8]]} then {
return ""
}
set result $line
foreach remove [list \
{<a name=".*?">} {<a href=".*?">} {</a>} {<p>} {</p>}] {
|
︙ | | |
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
-
-
+
+
-
+
-
+
+
|
{<ul>} {</ul>}] {
regsub -all -- ($escape) $result {<![CDATA[\1]]>} result
}
regsub -all -- {≠} $result {\≠} result
regsub -all -- {[(?:;)?} $result {[} result
regsub -all -- {](?:;)?} $result {]} result
regsub -all -- {<( |\"|\d|=)} $result {\<\1} result
regsub -all -- {( |\"|\d|=)>} $result {\1\>} result
# regsub -all -- {<( |\"|\d|=)} $result {\<\1} result
# regsub -all -- {( |\"|\d|=)>} $result {\1\>} result
regsub -all -- {<blockquote><pre>} $result <para><code> result
regsub -all -- {</pre></blockquote>} $result </code></para> result
regsub -all -- {<blockquote>} $result <para><code> result
regsub -all -- {</blockquote>} $result </code></para> result
return $result
}
proc extractMethod { name lines pattern prefix indexVarName methodsVarName } {
upvar 1 $indexVarName index
upvar 1 $methodsVarName methods
array set levels {p 0}
set length [llength $lines]
while {$index < $length} {
set line [removeSectionId [lindex $lines $index]]
set line [preProcessLine [lindex $lines $index]]
if {[regexp -- $pattern $line]} then {
break; # stop on this line for outer loop.
} else {
set trimLine [string trim $line]; set data ""
if {$levels(p) > 0 && [string length $trimLine] == 0} then {
# blank line, close paragraph.
if {[info exists methods($name)]} then {
# non-first line, leading line separator.
append data \n $prefix </para>
} else {
# first line, no leading line separator.
append data $prefix </para>
}
incr levels(p) -1
} elseif {[string range $trimLine 0 2] eq "<p>"} then {
} elseif {[string range $trimLine 0 2] eq "<p>" || \
[string range $trimLine 0 6] eq "</p><p>"} then {
# open tag ... maybe one line?
if {[string range $trimLine end-3 end] eq "</p>"} then {
set newLine [processLine $line $prefix]
if {[string length $newLine] > 0} then {
# one line tag, wrap.
if {[info exists methods($name)]} then {
|
︙ | | |
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
|
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
+
-
+
+
+
+
-
+
-
+
|
set inputData [string map [list \
{<font size="6" color="red">*** DRAFT ***</font>} ""] $inputData]
set inputData [string map [list {<p align="center"></p>} ""] $inputData]
set lines [split [string map [list \r\n \n] $inputData] \n]
set patterns(start) {^</p>\n<h1><span>2\. </span>Virtual Table Methods</h1>$}
set patterns(method) {^<h2>2\.\d+\. The (.*) Method(?:s)?</h2>$}
set patterns(method) [string trim {
^(?:</p>\n)?<h2><span>2\.\d+\. </span>The (.*) Method(?:s)?</h2>$
}]
set prefix " /// "
unset -nocomplain methods; set start false
for {set index 0} {$index < [llength $lines]} {} {
set line [removeSectionId [lindex $lines $index]]
set line [preProcessLine [lindex $lines $index]]
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
}
set index $methodIndex
} else {
incr index
}
} elseif {[regexp -- {^<h1>2\. Virtual Table Methods</h1>$} $line]} then {
} elseif {[regexp -- $patterns(start) $line]} then {
set start true; incr index
} else {
incr index
}
}
set outputData [string map [list \r\n \n] [readFile $outputFileName]]
|
︙ | | |
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
|
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
-
+
|
set summaryStart [lindex $indexes 0]
set summaryEnd [lindex $indexes 1]
set outputData [string range \
$outputData 0 $summaryStart]$methods($name)[string \
range $outputData [expr {$summaryEnd + 1}] end]
incr count; set start [expr {$summaryEnd + 1}]
incr count; incr start [expr {[string length $methods($name)] + 1}]
} else {
error "cannot find virtual table method \"$name\" in \"$outputFileName\""
}
}
if {$count > 0} then {
writeFile $outputFileName [string map [list \n \r\n] $outputData]
}
exit 0
|