wrap help command

Use continuation characters to wrap the help command into 80 columns.
This commit is contained in:
Zachary T Welch 2009-11-11 07:19:13 -08:00
parent 2821115ab8
commit f93c98081f
1 changed files with 17 additions and 9 deletions

View File

@ -49,7 +49,10 @@ proc help {args} {
global ocd_helptext global ocd_helptext
set cmd $args set cmd $args
foreach a [lsort $ocd_helptext] { foreach a [lsort $ocd_helptext] {
if {[string length $cmd]==0||[string first $cmd $a]!=-1||[string first $cmd [lindex $a 1]]!=-1} { if {[string length $cmd] == 0 || \
[string first $cmd $a] != -1 || \
[string first $cmd [lindex $a 1]] != -1} \
{
set w 50 set w 50
set cmdname [lindex $a 0] set cmdname [lindex $a 0]
set h [lindex $a 1] set h [lindex $a 1]
@ -58,9 +61,14 @@ proc help {args} {
if {$n > [string length $h]} {break} if {$n > [string length $h]} {break}
set next_a [expr $n + $w] set next_a [expr $n + $w]
if {[string length $h]>$n+$w} { if {[string length $h] > $n + $w} \
{
set xxxx [string range $h $n [expr $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]} { 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 #set next_a -1
if {$lastpos != -1} { if {$lastpos != -1} {
@ -68,8 +76,8 @@ proc help {args} {
} }
} }
puts [format "%-25s %s" $cmdname \
puts [format "%-25s %s" $cmdname [string range $h $n [expr $next_a-1]] ] [string range $h $n [expr $next_a-1]] ]
set cmdname "" set cmdname ""
set n [expr $next_a] set n [expr $next_a]
} }