tcl_help prettier output.
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 11 Jul 2008 17:36:36 +0000 (17:36 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 11 Jul 2008 17:36:36 +0000 (17:36 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@793 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/startup.tcl

index 029c4e4b2964fff661aec9425eedd1bc2ba87faf..06d2eb1409df030f52ee3bf9704833b883f62b05 100644 (file)
@@ -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]
+                       }
                }
        }
 }