Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/tcl8.5.2/tools/man2help.tcl @ 25

Last change on this file since 25 was 25, checked in by landauf, 16 years ago

added tcl to libs

File size: 3.3 KB
Line 
1# man2help.tcl --
2#
3# This file defines procedures that work in conjunction with the
4# man2tcl program to generate a Windows help file from Tcl manual
5# entries.
6#
7# Copyright (c) 1996 by Sun Microsystems, Inc.
8#
9# RCS: @(#) $Id: man2help.tcl,v 1.16 2007/12/13 15:28:40 dgp Exp $
10#
11
12#
13# PASS 1
14#
15
16set man2tclprog [file join [file dirname [info script]] \
17        man2tcl[file extension [info nameofexecutable]]]
18
19proc generateContents {basename version files} {
20    global curID topics
21    set curID 0
22    foreach f $files {
23        puts "Pass 1 -- $f"
24        flush stdout
25        doFile $f
26    }
27    set fd [open [file join [file dirname [info script]] $basename$version.cnt] w]
28    fconfigure $fd -translation crlf
29    puts $fd ":Base $basename$version.hlp"
30    foreach package [getPackages] {
31        foreach section [getSections $package] {
32            if {![info exists lastSection]} {
33                set lastSection {}
34            }
35            if {[string compare $lastSection $section]} {
36            puts $fd "1 $section"
37            }
38            set lastSection $section
39            set lastTopic {}
40            foreach topic [getTopics $package $section] {
41                if {[string compare $lastTopic $topic]} {
42                    set id $topics($package,$section,$topic) 
43                    puts $fd "2 $topic=$id"
44                    set lastTopic $topic
45                }
46            }
47        }
48    }
49    close $fd
50}
51
52
53#
54# PASS 2
55#
56
57proc generateHelp {basename files} {
58    global curID topics keywords file id_keywords
59    set curID 0
60
61    foreach key [array names keywords] {
62        foreach id $keywords($key) {
63            lappend id_keywords($id) $key
64        }
65    }
66
67    set file [open [file join [file dirname [info script]] $basename.rtf] w]
68    fconfigure $file -translation crlf
69    puts $file "\{\\rtf1\\ansi \\deff0\\deflang1033\{\\fonttbl\{\\f0\\froman\\fcharset0\\fprq2 Times New Roman\;\}\{\\f1\\fmodern\\fcharset0\\fprq1 Courier New\;\}\}"
70    foreach f $files {
71        puts "Pass 2 -- $f"
72        flush stdout
73        initGlobals
74        doFile $f
75        pageBreak
76    }
77    puts $file "\}"
78    close $file
79}
80
81# doFile --
82#
83# Given a file as argument, translate the file to a tcl script and
84# evaluate it.
85#
86# Arguments:
87# file -                Name of file to translate.
88
89proc doFile {file} {
90    global man2tclprog
91    if {[catch {eval [exec $man2tclprog [glob $file]]} msg]} {
92        global errorInfo
93        puts stderr $msg
94        puts "in"
95        puts $errorInfo
96        exit 1
97    }
98}
99
100# doDir --
101#
102# Given a directory as argument, translate all the man pages in
103# that directory.
104#
105# Arguments:
106# dir -                 Name of the directory.
107
108proc doDir dir {
109    puts "Generating man pages for $dir..."
110    foreach f [lsort [glob -directory $dir "*.\[13n\]"]] {
111        doFile $f
112    }
113}
114
115# process command line arguments
116
117if {$argc < 3} {
118    puts stderr "usage: $argv0 \[options\] projectName version manFiles..."
119    exit 1
120}
121
122set arg 0
123
124if {![string compare [lindex $argv $arg] "-bitmap"]} {
125    set bitmap [lindex $argv [incr arg]]
126    incr arg
127}
128set baseName [lindex $argv $arg]
129set version [lindex $argv [incr arg]]
130set files {}
131foreach i [lrange $argv [incr arg] end] {
132    set i [file join $i]
133    if {[file isdir $i]} {
134        foreach f [lsort [glob -directory $i "*.\[13n\]"]] {
135            lappend files $f
136        }
137    } elseif {[file exists $i]} {
138        lappend files $i
139    }
140}
141source [file join [file dirname [info script]] index.tcl]
142generateContents $baseName $version $files
143source [file join [file dirname [info script]] man2help2.tcl]
144generateHelp $baseName $files
Note: See TracBrowser for help on using the repository browser.