summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-11 17:36:36 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-11 17:36:36 +0000
commite04f0142eed242c91609fe8e913cac1fbfe0a527 (patch)
tree2b63332d3420083fdeb3db9e02c50511ebc8535b
parent69c6f1f7eab96ea47328ece9d71292a71af6ce9c (diff)
downloadopenocd+libswd-e04f0142eed242c91609fe8e913cac1fbfe0a527.tar.gz
openocd+libswd-e04f0142eed242c91609fe8e913cac1fbfe0a527.tar.bz2
openocd+libswd-e04f0142eed242c91609fe8e913cac1fbfe0a527.tar.xz
openocd+libswd-e04f0142eed242c91609fe8e913cac1fbfe0a527.zip
tcl_help prettier output.
git-svn-id: svn://svn.berlios.de/openocd/trunk@793 b42882b7-edfa-0310-969c-e2dbd0fdcd60
-rw-r--r--src/startup.tcl27
1 files changed, 25 insertions, 2 deletions
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]
+ }
}
}
}