Richard Suchenwirth 2005-10-24 - To make some texts more perspicuous in plain-text output, here's code to wrap them in ASCII graphic boxes (looks good only in fixed-pitch fonts):
proc boxtext str { set lines [split $str \n] set maxl 0 foreach line $lines { set l [string length $line] if {$l > $maxl} {set maxl $l} } set res +-[string repeat - $maxl]-+\n foreach line $lines { append res [format "| %-${maxl}s |\n" $line] } append res +-[string repeat - $maxl]-+ }
Testing:
% boxtext "Hello world" +-------------+ | Hello world | +-------------+ % boxtext "Hello world\nagain and again and again" +---------------------------+ | Hello world | | again and again and again | +---------------------------+ % boxtext "Hello world\nagain" +-------------+ | Hello world | | again | +-------------+