Posted to tcl by hypnotoad at Wed Jun 09 11:17:16 GMT 2010view pretty

catch {rename puts console:oldputs$w}
  proc puts args [format {
    if {![winfo exists %s]} {
      rename puts {}
      rename console:oldputs%s puts
      return [uplevel #0 puts $args]
    }
    switch -glob -- "[llength $args] $args" {
      {1 *} {
         set msg [lindex $args 0]\n
         set tag ok
      }
      {2 stdout *} {
         set msg [lindex $args 1]\n
         set tag ok
      }
      {2 stderr *} {
         set msg [lindex $args 1]\n
         set tag err
      }
      {2 green *} {
         set msg [lindex $args 1]\n
         set tag grn
      }
      {2 purple *} {
         set msg [lindex $args 1]\n
         set tag purple
      }
      {2 lightblue *} {
         set msg [lindex $args 1]\n
         set tag lblue
      }
      {2 orange *} {
         set msg [lindex $args 1]\n
         set tag orange
      }
      {2 -nonewline *} {
         set msg [lindex $args 1]
         set tag ok
      }
      {3 -nonewline stdout *} {
         set msg [lindex $args 2]
         set tag ok
      }
      {3 -nonewline stderr *} {
         set msg [lindex $args 2]
         set tag err
      }
      default {
        uplevel #0 console:oldputs%s $args
        return
      }
    }
    console:Puts %s $msg $tag
  } $w $w $w $w.t]