Index: lib/minirivet/minirivet.tcl ================================================================== --- lib/minirivet/minirivet.tcl +++ lib/minirivet/minirivet.tcl @@ -1,28 +1,52 @@ #! /usr/bin/env tclsh namespace eval ::minirivet {} + +if {![info exists ::minirivet::_outputChannel] && ![info exists ::minirivet::_outputVariable]} { + set ::minirivet::_outputChannel stdout +} + +proc ::minirivet::setOutputChannel {channel} { + unset -nocomplain ::minirivet::_outputVariable + set ::minirivet::_outputChannel $channel +} + +proc ::minirivet::setOutputVar {variable} { + unset -nocomplain ::minirivet::_outputChannel + set ::minirivet::_outputVariable $variable +} + +proc ::minirivet::_emitOutput {string} { + if {[info exists ::minirivet::_outputChannel]} { + puts -nonewline $::minirivet::_outputChannel $string + } + if {[info exists ::minirivet::_outputVariable]} { + append $::minirivet::_outputVariable $string + } + return +} proc ::minirivet::parseStringToCode {string} { set code "" while {$string ne ""} { set endIndex [string first "" $string] if {$endIndex == -1} { set endIndex [expr {[string length $string] + 1}] } set work [string range $string 0 2] if {$work eq "