Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Provide optional docstring support in interceptor definitions (addresses [1f4a2dbd11]). |
---|---|
Timelines: | family | ancestors | interceptor-docstrings |
Files: | files | file ages | folders |
SHA1: |
5912961aa5e443ebdbdf874f242a1a55 |
User & Date: | marc 2013-01-17 15:01:15 |
Context
2013-01-17
| ||
15:01 | Provide optional docstring support in interceptor definitions (addresses [1f4a2dbd11]). Leaf check-in: 5912961aa5 user: marc tags: interceptor-docstrings | |
05:20 | Update copyright year and include 'LICENSE' in 'fsl'. Leaf check-in: 06a31756cc user: marc tags: trunk | |
Changes
Changes to fsl.
︙ | ︙ | |||
19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # --( Aliases and Filters )--------------------------------------------- namespace eval config { set aliases {} set filters {}; # registered filters set commands {}; # registered interceptors proc init {filename} { if {[file exists $filename]} { set conf [read [open $filename]] } else { set conf [unindent_script $config::defaults] puts "(Creating $filename)" | > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # --( Aliases and Filters )--------------------------------------------- namespace eval config { set aliases {} set filters {}; # registered filters set commands {}; # registered interceptors set docstring {}; # docstrings for registered interceptors proc init {filename} { if {[file exists $filename]} { set conf [read [open $filename]] } else { set conf [unindent_script $config::defaults] puts "(Creating $filename)" |
︙ | ︙ | |||
153 154 155 156 157 158 159 | # # - If an interceptor returns an empty list, the wrapper is expected # to exit without calling Fossil, thereby fully intercepting the # query. Otherwise, it acts as a pre-processor: the returned list is # treated as a revised parameter list and will be supplied to # `fossil'. | | | > | 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | # # - If an interceptor returns an empty list, the wrapper is expected # to exit without calling Fossil, thereby fully intercepting the # query. Otherwise, it acts as a pre-processor: the returned list is # treated as a revised parameter list and will be supplied to # `fossil'. proc interceptor {command_spec body {docstring ""}} { set fn [list {params} $body [uplevel 1 {namespace current}]] foreach command [triggers_for $command_spec] { dict set config::commands $command $fn dict set config::docstring $command $docstring } } proc intercept {params} { set command [first $params] if {[interceptor? $command]} { return [apply [dict get $config::commands $command] $params] |
︙ | ︙ | |||
283 284 285 286 287 288 289 290 291 292 293 294 295 296 | interceptor he:help { # Wrap builtin help command by expanding its argument list. This # allows us provide help on aliased commands transparently. When # the expanded command is an interceptor, simply print its body. set expansion [expand [lrange $params 1 end] 1] set command [first $expansion] if {![prefix? $command "help"] && [interceptor? $command]} { puts "'$command' is an interceptor defined as follows:" puts [lindex [dict get $config::commands $command] 1] } else { concat help $expansion } } | > > > > | 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 | interceptor he:help { # Wrap builtin help command by expanding its argument list. This # allows us provide help on aliased commands transparently. When # the expanded command is an interceptor, simply print its body. set expansion [expand [lrange $params 1 end] 1] set command [first $expansion] if {![prefix? $command "help"] && [interceptor? $command]} { set docstring [dict get $config::docstring $command] if {$docstring != ""} { return [puts [unindent_script $docstring]] } puts "'$command' is an interceptor defined as follows:" puts [lindex [dict get $config::commands $command] 1] } else { concat help $expansion } } |
︙ | ︙ |