From e04f0142eed242c91609fe8e913cac1fbfe0a527 Mon Sep 17 00:00:00 2001
From: oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Fri, 11 Jul 2008 17:36:36 +0000
Subject: [PATCH] tcl_help prettier output.

git-svn-id: svn://svn.berlios.de/openocd/trunk@793 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/startup.tcl | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/startup.tcl b/src/startup.tcl
index 029c4e4b2..06d2eb140 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]
+			}
 		}
 	}
 }
-- 
GitLab