88 lines
2.5 KiB
Tcl
88 lines
2.5 KiB
Tcl
--- unix/tools/bldmanhelp.tcl 2004-12-02 15:33:05.000000000 -0500
|
|
+++ unix/tools/bldmanhelp.tcl 2009-11-28 16:41:13.000000000 -0500
|
|
@@ -11,10 +11,9 @@
|
|
#
|
|
# The command line is:
|
|
#
|
|
-# bldmanhelp docdir maninfo helpdir
|
|
+# bldmanhelp maninfo helpdir
|
|
#
|
|
# Where:
|
|
-# o docdir is the directory containing the manual pages.
|
|
# o maninfo is the path to a file that when sources returns a list of
|
|
# entries describing manual pages to convert. Each entry is a list
|
|
# of manual file and the path of the help file to generate.
|
|
@@ -68,18 +67,41 @@
|
|
|
|
proc CopyManPage {manPage outFH} {
|
|
global skipSection
|
|
+ global tcl_version
|
|
|
|
- set stat [catch {
|
|
- open $manPage
|
|
- } fh]
|
|
+ set section [lindex [split $manPage .] end]
|
|
+ if {$section == "macros"} {
|
|
+ return
|
|
+ }
|
|
+ set manPage [file rootname $manPage]
|
|
+ if {[catch {exec man -w $section $manPage} page] &&
|
|
+ [catch {exec man -w $section $manPage$tcl_version} page]} {
|
|
+ global gotErrors
|
|
+ set gotErrors 1
|
|
+ puts stderr "can't find man-page for \"$manPage\": $page"
|
|
+ return
|
|
+ }
|
|
+ set manPage [split $page ":)"]
|
|
+ if {[llength $manPage] > 1} { # Get the source, not from cat
|
|
+ set manPage [string trim [lindex $manPage 1]]
|
|
+ }
|
|
+
|
|
+ if {[string match *.gz $manPage]} {
|
|
+ set stat [catch {open "|gzip -d -c $manPage"} fh]
|
|
+ } elseif {[string match *.bz2 $manPage]} {
|
|
+ set stat [catch {open "|bzip2 -d -c $manPage"} fh]
|
|
+ } else {
|
|
+ set stat [catch {open $manPage} fh]
|
|
+ }
|
|
if {$stat != 0} {
|
|
global gotErrors
|
|
set gotErrors 1
|
|
- puts stderr "can't open \"$manPage\" $fh"
|
|
+ puts stderr "can't open \"$manPage\" $fh. (cwd is [pwd])"
|
|
return
|
|
}
|
|
while {[gets $fh line] >= 0} {
|
|
switch -glob -- $line {
|
|
+ {.so man.macros} {}
|
|
.so* {
|
|
CopyManPage [lindex $line 1] $outFH
|
|
}
|
|
@@ -119,11 +141,10 @@
|
|
# for input to buildhelp.
|
|
#
|
|
|
|
-proc GenInputFile {docDir manInfoTbl tmpFile} {
|
|
+proc GenInputFile {manInfoTbl tmpFile} {
|
|
|
|
set tmpFH [open $tmpFile w]
|
|
set cwd [pwd]
|
|
- cd $docDir
|
|
|
|
foreach ent $manInfoTbl {
|
|
puts stdout " preprocessing $ent"
|
|
@@ -144,13 +165,12 @@
|
|
|
|
set tmpFile "bldmanhelp.tmp"
|
|
|
|
-set docDir [lindex $argv 0]
|
|
set manInfoTbl [source [lindex $argv 1]]
|
|
set helpDir [lindex $argv 2]
|
|
set brief [lindex $argv 3]
|
|
|
|
puts stdout "Begin preprocessing UCB manual files"
|
|
-GenInputFile $docDir $manInfoTbl $tmpFile
|
|
+GenInputFile $manInfoTbl $tmpFile
|
|
|
|
buildhelp $helpDir $brief [list $tmpFile]
|
|
|