From: oharboe Date: Fri, 11 Jul 2008 17:36:36 +0000 (+0000) Subject: tcl_help prettier output. X-Git-Tag: v0.1.0~504 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e04f0142eed242c91609fe8e913cac1fbfe0a527;p=openocd tcl_help prettier output. git-svn-id: svn://svn.berlios.de/openocd/trunk@793 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- diff --git a/src/startup.tcl b/src/startup.tcl index 029c4e4b..06d2eb14 100644 --- a/src/startup.tcl +++ b/src/startup.tcl @@ -62,13 +62,36 @@ proc flash args { openocd_throw "flash $args" } -#Print help text for a command +#Print help text for a command. Word wrap +#help text that is too wide inside column. proc tcl_help {args} { global ocd_helptext set cmd $args foreach a [lsort $ocd_helptext] { if {[string length $cmd]==0||[string first $cmd $a]!=-1} { - puts [format "%18s - %s" [lindex $a 0] [lindex $a 1]] + set w 40 + set cmdname [lindex $a 0] + set h [lindex $a 1] + set n 0 + while 1 { + if {$n > [string length $h]} {break} + + set next_a [expr $n+$w] + if {[string length $h]>$n+$w} { + set xxxx [string range $h $n [expr $n+$w]] + for {set lastpos [expr [string length $xxxx]-1]} {$lastpos>=0&&[string compare [string range $xxxx $lastpos $lastpos] " "]!=0} {set lastpos [expr $lastpos-1]} { + } + #set next_a -1 + if {$lastpos!=-1} { + set next_a [expr $lastpos+$n+1] + } + } + + + puts [format "%-25s %s" $cmdname [string range $h $n [expr $next_a-1]] ] + set cmdname "" + set n [expr $next_a] + } } } }