Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Updated sak code to the latest from tcllib. |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | tklib-0-6-rc |
| Files: | files | file ages | folders |
| SHA1: |
08d61afec429122aac8ed1ac5e4ad05c |
| User & Date: | andreask 2013-03-11 20:41:41 |
Context
|
2013-03-11
| ||
| 20:47 | Version fixes check-in: 303f6a8aa4 user: andreask tags: tklib-0-6-rc | |
| 20:41 | Updated sak code to the latest from tcllib. check-in: 08d61afec4 user: andreask tags: tklib-0-6-rc | |
| 20:33 | Fixed old urls in various locations, added meta files to repository to make checkout like distribution. check-in: 8d8e05c279 user: andreask tags: tklib-0-6-rc | |
Changes
Changes to support/devel/sak/doc/doc.tcl.
| ︙ | ︙ | |||
20 21 22 23 24 25 26 |
auto::saveManpages $manpages
# Then scan the found pages and extract the information needed for
# keyword index and table of contents.
array set meta [auto::scanManpages $manpages]
# Sort through the extracted data.
| | | | | | | | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
auto::saveManpages $manpages
# Then scan the found pages and extract the information needed for
# keyword index and table of contents.
array set meta [auto::scanManpages $manpages]
# Sort through the extracted data.
array set kwic {} ; # map: keyword -> list (file...)
array set title {} ; # map: file -> description
array set cat {} ; # map: category -> list (file...)
array set name {} ; # map: file -> label
set apps {} ; # list (file...)
array set mods {} ; # map: module -> list(file...)
foreach page [array names meta] {
unset -nocomplain m
array set m $meta($page)
# Collect keywords and file mapping for index.
foreach kw $m(keywords) {
|
| ︙ | ︙ | |||
68 69 70 71 72 73 74 |
#parray kwic
#parray title
#parray name
#parray cat
#puts "apps = $apps"
#parray mods
| | | > > > | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
#parray kwic
#parray title
#parray name
#parray cat
#puts "apps = $apps"
#parray mods
auto::saveKeywordIndex kwic name
auto::saveTableOfContents title name cat apps mods
auto::saveSimpleTableOfContents1 title name apps toc_apps.txt
auto::saveSimpleTableOfContents2 title name mods toc_mods.txt
auto::saveSimpleTableOfContents3 title name cat toc_cats.txt
return
}
proc ::sak::doc::imake {modules} {
global base
# The argument (= set of modules) is irrelevant to this command.
auto::saveManpages [auto::findManpages $base]
|
| ︙ | ︙ |
Changes to support/devel/sak/doc/doc_auto.tcl.
| ︙ | ︙ | |||
21 22 23 24 25 26 27 |
}
proc ::sak::doc::auto::kwic {} {
variable here
return [file join $here kwic.txt]
}
| | | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
}
proc ::sak::doc::auto::kwic {} {
variable here
return [file join $here kwic.txt]
}
proc ::sak::doc::auto::toc {{name toc.txt}} {
variable here
return [file join $here $name]
}
## ### ### ### ######### ######### #########
proc ::sak::doc::auto::findManpages {base} {
set top [file normalize $base]
set manpages {}
|
| ︙ | ︙ | |||
158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
Tag+ division_end
Tag+ division_end
Tag+ toc_end
fileutil::writeFile [toc] [join $lines \n]
return
}
proc ::sak::doc::auto::Sortable {files nv mfv mnv} {
upvar 1 $nv name $mfv maxf $mnv maxn
# Generate a list of files sortable by name, and also find the
# max length of all relevant names.
set maxf 0
set maxn 0
| > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 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 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 |
Tag+ division_end
Tag+ division_end
Tag+ toc_end
fileutil::writeFile [toc] [join $lines \n]
return
}
proc ::sak::doc::auto::saveSimpleTableOfContents1 {tv nv dv fname} {
upvar 1 $tv title $nv name $dv data
# title: file -> description
# name: file -> label
# data: list(file...)
TagsBegin
Tag+ toc_begin [list {Table Of Contents} {}]
# The man pages are sorted in several ways for the toc.
# Subsections are the modules or apps, whatever is in data.
# Not handled: 'no applications'
Tag+ division_start [list {Applications}]
foreach item [lsort -dict -index 0 [Sortable $data name maxf maxl]] {
foreach {label file} $item break
Tag+ item \
[FmtR maxf $file] \
[FmtR maxl $label] \
[list $title($file)]
}
Tag+ division_end
Tag+ toc_end
fileutil::writeFile [toc $fname] [join $lines \n]
return
}
proc ::sak::doc::auto::saveSimpleTableOfContents2 {tv nv dv fname} {
upvar 1 $tv title $nv name $dv data
# title: file -> description
# name: file -> label
# data: module -> list (file...)
TagsBegin
Tag+ toc_begin [list {Table Of Contents} {}]
# The man pages are sorted in several ways for the toc.
# Subsections are the modules or apps, whatever is in data.
# Not handled: 'no modules'
Tag+ division_start [list {Modules}]
foreach m [lsort -dict [array names data]] {
Tag+ division_start [list $m]
foreach item [lsort -dict -index 0 [Sortable $data($m) name maxf maxl]] {
foreach {label file} $item break
Tag+ item \
[FmtR maxf $file] \
[FmtR maxl $label] \
[list $title($file)]
}
Tag+ division_end
}
Tag+ division_end
Tag+ toc_end
fileutil::writeFile [toc $fname] [join $lines \n]
return
}
proc ::sak::doc::auto::saveSimpleTableOfContents3 {tv nv cv fname} {
upvar 1 $tv title $nv name $cv cat
# title: file -> description
# name: file -> label
# cat: category -> list (file...)
TagsBegin
Tag+ toc_begin [list {Table Of Contents} {}]
Tag+ division_start [list {By Categories}]
foreach c [lsort -dict [array names cat]] {
Tag+ division_start [list $c]
foreach item [lsort -dict -index 0 [Sortable $cat($c) name maxf maxl]] {
foreach {label file} $item break
Tag+ item \
[FmtR maxf $file] \
[FmtR maxl $label] \
[list $title($file)]
}
Tag+ division_end
}
Tag+ division_end
Tag+ toc_end
fileutil::writeFile [toc $fname] [join $lines \n]
return
}
proc ::sak::doc::auto::Sortable {files nv mfv mnv} {
upvar 1 $nv name $mfv maxf $mnv maxn
# Generate a list of files sortable by name, and also find the
# max length of all relevant names.
set maxf 0
set maxn 0
|
| ︙ | ︙ |
Changes to support/devel/sak/localdoc/localdoc.tcl.
| ︙ | ︙ | |||
14 15 16 17 18 19 20 |
proc ::sak::localdoc::usage {} {
package require sak::help
puts stdout \n[sak::help::on localdoc]
exit 1
}
proc ::sak::localdoc::run {} {
| | | | | | | < | < < < < < < | < | < > > < < < < | > | | | | | | | > > > | > > > | > | | > > > | | | | | | > | | > > > | | | | | | 14 15 16 17 18 19 20 21 22 23 24 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 62 63 64 65 66 67 68 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 |
proc ::sak::localdoc::usage {} {
package require sak::help
puts stdout \n[sak::help::on localdoc]
exit 1
}
proc ::sak::localdoc::run {} {
package require cmdline
package require fileutil
package require textutil::repeat
package require doctools
package require doctools::toc
package require doctools::idx
package require dtplite
set nav ../../../../home
puts "Reindex the documentation..."
sak::doc::imake __dummy__
sak::doc::index __dummy__
puts "Removing old documentation..."
file delete -force embedded
file mkdir embedded/man
file mkdir embedded/www
puts "Generating manpages..."
dtplite::do \
[list \
-exclude {*/doctools/tests/*} \
-exclude {*/support/*} \
-ext n \
-o embedded/man \
nroff .]
# Note: Might be better to run them separately.
# Note @: Or we shuffle the results a bit more in the post processing stage.
set map {
.man .html
modules/ tcllib/files/modules/
apps/ tcllib/files/apps/
}
set toc [string map $map [fileutil::cat support/devel/sak/doc/toc.txt]]
set apps [string map $map [fileutil::cat support/devel/sak/doc/toc_apps.txt]]
set mods [string map $map [fileutil::cat support/devel/sak/doc/toc_mods.txt]]
set cats [string map $map [fileutil::cat support/devel/sak/doc/toc_cats.txt]]
puts "Generating HTML... Pass 1, draft..."
dtplite::do \
[list \
-toc $toc \
-nav {Tcllib Home} $nav \
-post+toc Categories $cats \
-post+toc Modules $mods \
-post+toc Applications $apps \
-exclude {*/doctools/tests/*} \
-exclude {*/support/*} \
-merge \
-o embedded/www \
html .]
puts "Generating HTML... Pass 2, resolving cross-references..."
dtplite::do \
[list \
-toc $toc \
-nav {Tcllib Home} $nav \
-post+toc Categories $cats \
-post+toc Modules $mods \
-post+toc Applications $apps \
-exclude {*/doctools/tests/*} \
-exclude {*/support/*} \
-merge \
-o embedded/www \
html .]
return
}
# ### ### ### ######### ######### #########
package provide sak::localdoc 1.0
|
| ︙ | ︙ |
Changes to support/devel/sak/util/anim.tcl.
1 | # -*- tcl -*- | | | > > > > > > > > < | | < < < < < < < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 |
# -*- tcl -*-
# (C) 2006-2013 Andreas Kupries <andreas_kupries@users.sourceforge.net>
##
# ###
namespace eval ::sak::animate {
# EL (Erase Line)
# Sequence: ESC [ n K
# ** Effect: if n is 0 or missing, clear from cursor to end of line
# Effect: if n is 1, clear from beginning of line to cursor
# Effect: if n is 2, clear entire line
variable eeol \033\[K
}
# ###
proc ::sak::animate::init {} {
variable prefix
variable n 0
variable max [llength $prefix]
}
proc ::sak::animate::next {string} {
variable prefix
variable n
variable max
variable eeol
puts -nonewline stdout \r\[[lindex $prefix $n]\]\ $string$eeol
flush stdout
incr n ; if {$n >= $max} {set n 0}
return
}
proc ::sak::animate::last {string} {
variable clear
puts stdout \r\[$clear\]\ $string
flush stdout
return
}
# ###
namespace eval ::sak::animate {
namespace export init next last
variable prefix {
{* } {* } {* } {* } {* }
|
| ︙ | ︙ |
Changes to support/devel/sak/validate/syntax.tcl.
| ︙ | ︙ | |||
190 191 192 193 194 195 196 |
if {[string equal $c set]} continue
if {[string equal $c if]} continue
if {[string equal $c rename]} continue
if {[string equal $c namespace]} continue
interp eval $ip [list ::rename $c {}]
}
| > | > | 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
if {[string equal $c set]} continue
if {[string equal $c if]} continue
if {[string equal $c rename]} continue
if {[string equal $c namespace]} continue
interp eval $ip [list ::rename $c {}]
}
if {![package vsatisfies [package present Tcl] 8.6]} {
interp eval $ip [list ::namespace delete ::tcl]
}
interp eval $ip [list ::rename namespace {}]
interp eval $ip [list ::rename rename {}]
foreach m {
pcx::register unknown
} {
interp alias $ip $m {} ::sak::validate::syntax::PCX/[string map {:: _} $m] $ip
|
| ︙ | ︙ |
Changes to support/devel/sak/validate/testsuites.tcl.
| ︙ | ︙ | |||
135 136 137 138 139 140 141 |
if {[string equal $c set]} continue
if {[string equal $c if]} continue
if {[string equal $c rename]} continue
if {[string equal $c namespace]} continue
interp eval $ip [list ::rename $c {}]
}
| > | > | 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
if {[string equal $c set]} continue
if {[string equal $c if]} continue
if {[string equal $c rename]} continue
if {[string equal $c namespace]} continue
interp eval $ip [list ::rename $c {}]
}
if {![package vsatisfies [package present Tcl] 8.6]} {
interp eval $ip [list ::namespace delete ::tcl]
}
interp eval $ip [list ::rename namespace {}]
interp eval $ip [list ::rename rename {}]
foreach m {
testing unknown useLocal useLocalKeep useAccel
} {
interp alias $ip $m {} ::sak::validate::testsuites::Process/$m $ip
|
| ︙ | ︙ |
