Tcl Library Source Code

Check-in [513786f1e5]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Merged doctools fixes (bug 3601370 branch) into release. Updated README.
Timelines: family | ancestors | descendants | both | tcllib-1-15-rc
Files: files | file ages | folders
SHA1: 513786f1e511f8610f971d471264f309267de29c
User & Date: andreask 2013-01-29 18:58:09
Context
2013-01-30
20:11
Merged ncgi fixes (bug 3601995 branch) into release. Updated README. check-in: 66adc26a8b user: andreask tags: tcllib-1-15-rc
2013-01-29
18:58
Merged doctools fixes (bug 3601370 branch) into release. Updated README. check-in: 513786f1e5 user: andreask tags: tcllib-1-15-rc
2013-01-28
23:18
Merged trunk into release work, new zipfile de- and encoder packages. Updated README. check-in: 8472e0d257 user: andreask tags: tcllib-1-15-rc
2013-01-21
20:12
Added check to manpage_begin, reject spaces in title. Message catalogs extended with new warning 'mptitle' for spaces in the manpage title. The french catalog contains the english text, and needs a translation. Closed-Leaf check-in: 6606f5686a user: andreask tags: bug-3601370-td
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to modules/doctools/ChangeLog.















1
2
3
4
5
6
7













2012-02-27  Andreas Kupries  <[email protected]>

	* tests/text/04: Update the expected the result to match the new
	  actual result. See the 2011-12-13 last-second bugfix in
	  textutil::adjust::undent for the cause.

2011-12-13  Andreas Kupries  <[email protected]>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2013-01-29  Andreas Kupries  <[email protected]>

	* doctools.man: Bumped version to 1.4.14 for the
	* doctools.tcl: last change, see below.
	* pkgIndex.tcl:

2013-01-21  Andreas Kupries  <[email protected]>

	* checker.tcl: Added check to manpage_begin, reject spaces in title.
	* mpformats/c.msg: Message catalogs extended with new warning
	* mpformats/de.msg: 'mptitle' for spaces in the manpage title.
	* mpformats/en.msg: The french catalog contains the english
	* mpformats/fr.msg: text, and needs a translation.

2012-02-27  Andreas Kupries  <[email protected]>

	* tests/text/04: Update the expected the result to match the new
	  actual result. See the 2011-12-13 last-second bugfix in
	  textutil::adjust::undent for the cause.

2011-12-13  Andreas Kupries  <[email protected]>

Changes to modules/doctools/checker.tcl.

267
268
269
270
271
272
273

274
275
276
277
278
279
280
}

# -------------------------------------------------------------
# Formatting commands
proc manpage_begin {title section version} {
    Enter manpage_begin
    if {[IsNot manpage_begin]} {Error mpbegin}

    Go header
    fmt_manpage_begin $title $section $version
}
proc moddesc {desc} {
    Enter moddesc
    if {[IsNot header]} {Error hdrcmd}
    fmt_moddesc $desc






>







267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
}

# -------------------------------------------------------------
# Formatting commands
proc manpage_begin {title section version} {
    Enter manpage_begin
    if {[IsNot manpage_begin]} {Error mpbegin}
    if {[string match {* *} $title]} {Error mptitle}
    Go header
    fmt_manpage_begin $title $section $version
}
proc moddesc {desc} {
    Enter moddesc
    if {[IsNot header]} {Error hdrcmd}
    fmt_moddesc $desc

Changes to modules/doctools/doctools.man.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[comment {-*- tcl -*- doctools manpage}]
[manpage_begin doctools n 1.4.13]
[copyright {2003-2011 Andreas Kupries <[email protected]>}]
[moddesc   {Documentation tools}]
[titledesc {doctools - Processing documents}]
[category  {Documentation tools}]
[require Tcl 8.2]
[require doctools [opt 1.4.13]]
[description]

This package provides a class for the creation of objects able to
process and convert text written in the [term doctools] markup
language into any output format X for which a
[term {formatting engine}] is available.

|
|




|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[comment {-*- tcl -*- doctools manpage}]
[manpage_begin doctools n 1.4.14]
[copyright {2003-2013 Andreas Kupries <[email protected]>}]
[moddesc   {Documentation tools}]
[titledesc {doctools - Processing documents}]
[category  {Documentation tools}]
[require Tcl 8.2]
[require doctools [opt 1.4.14]]
[description]

This package provides a class for the creation of objects able to
process and convert text written in the [term doctools] markup
language into any output format X for which a
[term {formatting engine}] is available.

Changes to modules/doctools/doctools.tcl.

1
2
3
4
5
6
7
8
9
10
11
12
....
1333
1334
1335
1336
1337
1338
1339
1340
# doctools.tcl --
#
#	Implementation of doctools objects for Tcl.
#
# Copyright (c) 2003-2011 Andreas Kupries <[email protected]>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
# 
# RCS: @(#) $Id: doctools.tcl,v 1.45 2011/02/23 22:11:59 andreas_kupries Exp $

package require Tcl 8.2
................................................................................
    # => FOO/mpformats

    #catch {search [file join $here                lib doctools mpformats]}
    #catch {search [file join [file dirname $here] lib doctools mpformats]}
    catch {search [file join $here                             mpformats]}
}

package provide doctools 1.4.13



|







 







|
1
2
3
4
5
6
7
8
9
10
11
12
....
1333
1334
1335
1336
1337
1338
1339
1340
# doctools.tcl --
#
#	Implementation of doctools objects for Tcl.
#
# Copyright (c) 2003-2013 Andreas Kupries <[email protected]>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
# 
# RCS: @(#) $Id: doctools.tcl,v 1.45 2011/02/23 22:11:59 andreas_kupries Exp $

package require Tcl 8.2
................................................................................
    # => FOO/mpformats

    #catch {search [file join $here                lib doctools mpformats]}
    #catch {search [file join [file dirname $here] lib doctools mpformats]}
    catch {search [file join $here                             mpformats]}
}

package provide doctools 1.4.14

Changes to modules/doctools/mpformats/_common.tcl.

71
72
73
74
75
76
77








78




79
80
81
82
83
84
85
proc c_get_copyright {}     {
    global state

    set cc $state(copyright)
    if {$cc == {}} {set cc [dt_copyright]}
    if {$cc == {}} {return {}}









    return "Copyright [c_copyrightsymbol] [join $cc "\nCopyright [c_copyrightsymbol] "]"




}

proc c_provenance {} {
    return "Generated from file '[dt_file]' by tcllib/doctools with format '[dt_format]'"
}

################################################################






>
>
>
>
>
>
>
>
|
>
>
>
>







71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
proc c_get_copyright {}     {
    global state

    set cc $state(copyright)
    if {$cc == {}} {set cc [dt_copyright]}
    if {$cc == {}} {return {}}

    set stmts {}
    set re {^Copyright +(?:\(c\)|\\\(co|&copy;)? *(.+)$}
    foreach stmt $cc {
	if { [string equal -nocase "public domain" [string trim $stmt]] } {
            lappend stmts "Public domain"
	} elseif { [regexp -nocase -- $re $stmt -> stmt] } {
            lappend stmts $stmt
	} else {
            lappend stmts "Copyright [c_copyrightsymbol] $stmt"
	}
    }

    return [join $stmts \n]
}

proc c_provenance {} {
    return "Generated from file '[dt_file]' by tcllib/doctools with format '[dt_format]'"
}

################################################################

Changes to modules/doctools/mpformats/_nroff.tcl.

4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
..
63
64
65
66
67
68
69

70
71
72
73
74

75
76
77
78
79
80
81
...
124
125
126
127
128
129
130


131
132

133
134

135
136
137
138

139
140
141
142
143
144
145
...
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#
# Copyright (c) 2003-2005 Andreas Kupries <[email protected]>


################################################################
# nroff specific commands
#
# All dot-commands (f.e. .PP) are returned with a leading \n,
# enforcing that they are on a new line. Any empty line created
# because of this is filtered out in the post-processing step.



proc nr_lp      {}          {return \n.LP}
proc nr_ta      {{text {}}} {return ".ta$text"}
proc nr_bld     {}          {return \1\\fB}
proc nr_bldt    {t}         {return "\n.B $t\n"}
proc nr_ul      {}          {return \1\\fI}
proc nr_rst     {}          {return \1\\fR}
proc nr_p       {}          {return \n.PP\n}
proc nr_comment {text}      {return "\1'\1\\\" [join [split $text \n] "\n\1'\1\\\" "]"} ; # "
proc nr_enum    {num}       {nr_item " \[$num\]"}
proc nr_item    {{text {}}} {return "\n.IP$text"}
proc nr_vspace  {}          {return \n.sp\n}
proc nr_blt     {text}      {return "\n.TP\n$text"}
proc nr_bltn    {n text}    {return "\n.TP $n\n$text"}
proc nr_in      {}          {return \n.RS}
proc nr_out     {}          {return \n.RE}
proc nr_nofill  {}          {return \n.nf}
proc nr_fill    {}          {return \n.fi}
proc nr_title   {text}      {return "\n.TH $text"}
proc nr_include {file}      {return "\n.so $file"}
proc nr_bolds   {}          {return \n.BS}
proc nr_bolde   {}          {return \n.BE}
proc nr_read    {fn}        {return [nroffMarkup [dt_read $fn]]}
proc nr_cs      {}          {return \n.CS\n}
proc nr_ce      {}          {return \n.CE\n}

proc nr_section {name} {
    if {![regexp {[ 	]} $name]} {
	return "\n.SH [string toupper $name]"
    }
    return "\n.SH \"[string toupper $name]\""
}
proc nr_subsection {name}   {
    if {![regexp {[ 	]} $name]} {
	return "\n.SS [string toupper $name]"
    }
    return "\n.SS \"[string toupper $name]\""
}


################################################################

# Handling of nroff special characters in content:
#
................................................................................
# with proper escapes.
#

global   markupMap
set      markupMap [list \
	"\\"   "\1\\" \
	"'"    "\1'" \

	"\\\\" "\\"]
global   finalMap
set      finalMap [list \
	"\1\\" "\\" \
	"\1'"  "'" \

	"\\"   "\\\\"]
global   textMap
set      textMap [list "\\" "\\\\"]


proc nroffEscape {text} {
    global textMap
................................................................................
	    if {[regexp {^\x1\\f[BI]\.} $line]} {
		# We found confusing formatting at the beginning of
		# the current line. We lift this line up and attach it
		# at the end of the last line to remove this
		# irregularity. Note that the regexp has to look for
		# the special 0x01 character as well to be sure that
		# the sequence in question truly is formatting.



		set last  [lindex   $lines end]

		set lines [lreplace $lines end end]
		set line "$last $line"

	    } elseif {[string match '* $line]} {
		# Apostrophes at the beginning of a line have to
		# quoted to prevent misinterpretation as comments.
		# The apostrophes for true comments are quoted with \1

		# already and will therefore not detected by the code
		# here.

		set line \1\\$line
	    }
	} else {
	    # No-fill mode. We remove trailing whitespace, but keep
................................................................................

    set lines [join $lines "\n"]

    # Remove superfluous .IP commands (empty paragraph). The first
    # identity mapping is there to avoid smashing a man macro
    # definition.
    set lines [string map [list \
	       \n.IP\n..\n  \n.IP\n..\n \
	       \n.IP\n.     \n.] \
	   $lines]

    # Return the modified result buffer
    return [string map $finalMap $lines]
}







|
|
|
>


|


|


|


|
|
|
|
|
|
|
|
|
|
|
|

|
|



|

|



|

|







 







>





>







 







>
>


>
|
|
>
|
|
|
<
>







 







|
|






4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
..
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
...
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144

145
146
147
148
149
150
151
152
...
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#
# Copyright (c) 2003-2005 Andreas Kupries <[email protected]>


################################################################
# nroff specific commands
#
# All dot-commands (f.e. .PP) are returned with a leading \n\1,
# enforcing that they are on a new line and will be protected as markup.
# Any empty line created because of this is filtered out in the 
# post-processing step.


proc nr_lp      {}          {return \n\1.LP}
proc nr_ta      {{text {}}} {return ".ta$text"}
proc nr_bld     {}          {return \1\\fB}
proc nr_bldt    {t}         {return "\n\1.B $t\n"}
proc nr_ul      {}          {return \1\\fI}
proc nr_rst     {}          {return \1\\fR}
proc nr_p       {}          {return \n\1.PP\n}
proc nr_comment {text}      {return "\1'\1\\\" [join [split $text \n] "\n\1'\1\\\" "]"} ; # "
proc nr_enum    {num}       {nr_item " \[$num\]"}
proc nr_item    {{text {}}} {return "\n\1.IP$text"}
proc nr_vspace  {}          {return \n\1.sp\n}
proc nr_blt     {text}      {return "\n\1.TP\n$text"}
proc nr_bltn    {n text}    {return "\n\1.TP $n\n$text"}
proc nr_in      {}          {return \n\1.RS}
proc nr_out     {}          {return \n\1.RE}
proc nr_nofill  {}          {return \n\1.nf}
proc nr_fill    {}          {return \n\1.fi}
proc nr_title   {text}      {return "\n\1.TH $text"}
proc nr_include {file}      {return "\n\1.so $file"}
proc nr_bolds   {}          {return \n\1.BS}
proc nr_bolde   {}          {return \n\1.BE}
proc nr_read    {fn}        {return [nroffMarkup [dt_read $fn]]}
proc nr_cs      {}          {return \n\1.CS\n}
proc nr_ce      {}          {return \n\1.CE\n}

proc nr_section {name} {
    if {![regexp {[ 	]} $name]} {
	return "\n\1.SH [string toupper $name]"
    }
    return "\n\1.SH \"[string toupper $name]\""
}
proc nr_subsection {name}   {
    if {![regexp {[ 	]} $name]} {
	return "\n\1.SS [string toupper $name]"
    }
    return "\n\1.SS \"[string toupper $name]\""
}


################################################################

# Handling of nroff special characters in content:
#
................................................................................
# with proper escapes.
#

global   markupMap
set      markupMap [list \
	"\\"   "\1\\" \
	"'"    "\1'" \
	"."    "\1." \
	"\\\\" "\\"]
global   finalMap
set      finalMap [list \
	"\1\\" "\\" \
	"\1'"  "'" \
	"\1."  "." \
	"\\"   "\\\\"]
global   textMap
set      textMap [list "\\" "\\\\"]


proc nroffEscape {text} {
    global textMap
................................................................................
	    if {[regexp {^\x1\\f[BI]\.} $line]} {
		# We found confusing formatting at the beginning of
		# the current line. We lift this line up and attach it
		# at the end of the last line to remove this
		# irregularity. Note that the regexp has to look for
		# the special 0x01 character as well to be sure that
		# the sequence in question truly is formatting.
		# [bug-3601370] Only lift & attach if last line is not
		# a directive

		set last  [lindex   $lines end]
		if { ! [string match "\1.*" $last] } {
		    set lines [lreplace $lines end end]
		    set line "$last $line"
		}
	    } elseif {[string match {['.]*} $line]} {
		# Apostrophes or periods at the beginning of a line have to
		# quoted to prevent misinterpretation as comments or directives.

		# The true comments and directive are quoted with \1
		# already and will therefore not detected by the code
		# here.

		set line \1\\$line
	    }
	} else {
	    # No-fill mode. We remove trailing whitespace, but keep
................................................................................

    set lines [join $lines "\n"]

    # Remove superfluous .IP commands (empty paragraph). The first
    # identity mapping is there to avoid smashing a man macro
    # definition.
    set lines [string map [list \
	       \n\1.IP\n\1..\n  \n\1.IP\n\1..\n \
	       \n\1.IP\n\1.     \n\1.] \
	   $lines]

    # Return the modified result buffer
    return [string map $finalMap $lines]
}

Changes to modules/doctools/mpformats/c.msg.

2
3
4
5
6
7
8

9
10
11
12
13
14
15
package require    msgcat
namespace import ::msgcat::*

mcset c end/open/list    "End of manpage reached, \[list_end\] missing"
mcset c end/open/example "End of manpage reached, \[example_end\] missing"
mcset c end/open/mp	  "End of manpage reached, \[manpage_end\] missing"
mcset c mpbegin          "Command must be first of manpage"

mcset c hdrcmd           "Command not allowed outside of the header section"
mcset c bodycmd          "Command not allowed outside of the body of the manpage"
mcset c body             "Plain text not allowed outside of the body of the manpage"
mcset c reqcmd           "Command not allowed outside of header or requirement section"
mcset c invalidlist      "Invalid list type \"@\""
mcset c nolistcmd        "Command not allowed inside of a list"
mcset c nolisthdr        "Command not allowed between beginning of a list and its first item"






>







2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package require    msgcat
namespace import ::msgcat::*

mcset c end/open/list    "End of manpage reached, \[list_end\] missing"
mcset c end/open/example "End of manpage reached, \[example_end\] missing"
mcset c end/open/mp	  "End of manpage reached, \[manpage_end\] missing"
mcset c mpbegin          "Command must be first of manpage"
mcset c mptitle          "Spaces not allowed in manpage title"
mcset c hdrcmd           "Command not allowed outside of the header section"
mcset c bodycmd          "Command not allowed outside of the body of the manpage"
mcset c body             "Plain text not allowed outside of the body of the manpage"
mcset c reqcmd           "Command not allowed outside of header or requirement section"
mcset c invalidlist      "Invalid list type \"@\""
mcset c nolistcmd        "Command not allowed inside of a list"
mcset c nolisthdr        "Command not allowed between beginning of a list and its first item"

Changes to modules/doctools/mpformats/de.msg.

2
3
4
5
6
7
8

9
10
11
12
13
14
15
package require    msgcat
namespace import ::msgcat::*

mcset de end/open/list    "Dokument zu Ende, nicht alle Listen wurden geschlossen"
mcset de end/open/example "Dokument zu Ende, das letzte Beispiel wurde nicht abgeschlossen"
mcset de end/open/mp	  "Dokument zu Ende, es fehlt der Abschlussbefehl \[manpage_end\]"
mcset de mpbegin          "Erwartete diesen Befehl als ersten in der Manpage"

mcset de hdrcmd           "Dieser Befehl ist ausserhalb des Headers nicht erlaubt"
mcset de bodycmd          "Dieser Befehl darf nicht ausserhalb des Hauptteils der Manpage auftreten"
mcset de body             "Text darf nicht ausserhalb des Hauptteils der Manpage auftreten"
mcset de reqcmd           "Dieser Befehl ist ausserhalb von Header/Requirements nicht erlaubt"
mcset de invalidlist      "Die Listenart \"@\" ist dem System nicht bekannt"
mcset de nolistcmd        "Dieser Befehl ist innerhalb einer Liste nicht erlaubt"
mcset de nolisthdr        "Dieser Befehl darf nicht zwischen dem Beginn einer Liste und ihrem ersten Unterpunkt benutzt werden"






>







2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package require    msgcat
namespace import ::msgcat::*

mcset de end/open/list    "Dokument zu Ende, nicht alle Listen wurden geschlossen"
mcset de end/open/example "Dokument zu Ende, das letzte Beispiel wurde nicht abgeschlossen"
mcset de end/open/mp	  "Dokument zu Ende, es fehlt der Abschlussbefehl \[manpage_end\]"
mcset de mpbegin          "Erwartete diesen Befehl als ersten in der Manpage"
mcset de mptitle          "Der Manpage Titel darf keine Leerzeichen enthalten"
mcset de hdrcmd           "Dieser Befehl ist ausserhalb des Headers nicht erlaubt"
mcset de bodycmd          "Dieser Befehl darf nicht ausserhalb des Hauptteils der Manpage auftreten"
mcset de body             "Text darf nicht ausserhalb des Hauptteils der Manpage auftreten"
mcset de reqcmd           "Dieser Befehl ist ausserhalb von Header/Requirements nicht erlaubt"
mcset de invalidlist      "Die Listenart \"@\" ist dem System nicht bekannt"
mcset de nolistcmd        "Dieser Befehl ist innerhalb einer Liste nicht erlaubt"
mcset de nolisthdr        "Dieser Befehl darf nicht zwischen dem Beginn einer Liste und ihrem ersten Unterpunkt benutzt werden"

Changes to modules/doctools/mpformats/en.msg.

2
3
4
5
6
7
8

9
10
11
12
13
14
15
package require    msgcat
namespace import ::msgcat::*

mcset en end/open/list    "End of manpage reached, \[list_end\] missing"
mcset en end/open/example "End of manpage reached, \[example_end\] missing"
mcset en end/open/mp	  "End of manpage reached, \[manpage_end\] missing"
mcset en mpbegin          "Command must be first of manpage"

mcset en hdrcmd           "Command not allowed outside of the header section"
mcset en bodycmd          "Command not allowed outside of the body of the manpage"
mcset en body             "Plain text not allowed outside of the body of the manpage"
mcset en reqcmd           "Command not allowed outside of header or requirement section"
mcset en invalidlist      "Invalid list type \"@\""
mcset en nolistcmd        "Command not allowed inside of a list"
mcset en nolisthdr        "Command not allowed between beginning of a list and its first item"






>







2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package require    msgcat
namespace import ::msgcat::*

mcset en end/open/list    "End of manpage reached, \[list_end\] missing"
mcset en end/open/example "End of manpage reached, \[example_end\] missing"
mcset en end/open/mp	  "End of manpage reached, \[manpage_end\] missing"
mcset en mpbegin          "Command must be first of manpage"
mcset en mptitle          "Spaces not allowed in manpage title"
mcset en hdrcmd           "Command not allowed outside of the header section"
mcset en bodycmd          "Command not allowed outside of the body of the manpage"
mcset en body             "Plain text not allowed outside of the body of the manpage"
mcset en reqcmd           "Command not allowed outside of header or requirement section"
mcset en invalidlist      "Invalid list type \"@\""
mcset en nolistcmd        "Command not allowed inside of a list"
mcset en nolisthdr        "Command not allowed between beginning of a list and its first item"

Changes to modules/doctools/mpformats/fmt.nroff.

80
81
82
83
84
85
86
87




88
89
90
91
92
93
94
    if {[llength $sa] > 0} {
	append nroff [fmt_section {SEE ALSO}] \n
	append nroff [join [lsort $sa] ", "] \n
    }
    if {[llength $kw] > 0} {
	append nroff [fmt_section KEYWORDS] \n
	append nroff [join [lsort $kw] ", "] \n




    }
    if {$ca ne ""} {
	append nroff [fmt_section CATEGORY] \n
	append nroff $ca \n
    }
    if {$ct != {}} {
	append nroff [fmt_section COPYRIGHT] \n






|
>
>
>
>







80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
    if {[llength $sa] > 0} {
	append nroff [fmt_section {SEE ALSO}] \n
	append nroff [join [lsort $sa] ", "] \n
    }
    if {[llength $kw] > 0} {
	append nroff [fmt_section KEYWORDS] \n
	set kwline [join [lsort $kw] ", "]
	if { [string match ".*" $kwline] } {
	    set kwline "\\$kwline" 
	}
	append nroff $kwline \n
    }
    if {$ca ne ""} {
	append nroff [fmt_section CATEGORY] \n
	append nroff $ca \n
    }
    if {$ct != {}} {
	append nroff [fmt_section COPYRIGHT] \n

Changes to modules/doctools/mpformats/fr.msg.

2
3
4
5
6
7
8

9
10
11
12
13
14
15
package require    msgcat
namespace import ::msgcat::*

mcset fr end/open/list    "Fin de la page de manuel atteinte, \[list_end\] manquant"
mcset fr end/open/example "Fin de la page de manuel atteinte, \[example_end\] manquant"
mcset fr end/open/mp	  "Fin de la page de manuel atteinte, \[manpage_end\] manquant"
mcset fr mpbegin          "Cette commande doit \xEAtre la premi\xE8re de la page de manuel"

mcset fr hdrcmd           "Commande interdite \xE0 l'ext\xE9rieur de l'en-t\xEAte"
mcset fr bodycmd          "Commande interdite \xE0 l'ext\xE9rieur du corps de la page de manuel"
mcset fr body             "Le texte est interdit \xE0 l'ext\xE9rieur du corps de la page de manuel"
mcset fr reqcmd           "Commande interdite \xE0 l'ext\xE9rieur de l'en-t\xEAte ou de la section de condition"
mcset fr invalidlist      "Type de liste non valide \"@\""
mcset fr nolistcmd        "Commande interdite \xE0 l'int\xE9rieur d'une liste"
mcset fr nolisthdr        "Commande interdite entre le d\xE9but d'une liste et son premier \xE9l\xE9ment"






>







2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package require    msgcat
namespace import ::msgcat::*

mcset fr end/open/list    "Fin de la page de manuel atteinte, \[list_end\] manquant"
mcset fr end/open/example "Fin de la page de manuel atteinte, \[example_end\] manquant"
mcset fr end/open/mp	  "Fin de la page de manuel atteinte, \[manpage_end\] manquant"
mcset fr mpbegin          "Cette commande doit \xEAtre la premi\xE8re de la page de manuel"
mcset fr mptitle          "TODO: TRANSLATE: Spaces not allowed in manpage title"
mcset fr hdrcmd           "Commande interdite \xE0 l'ext\xE9rieur de l'en-t\xEAte"
mcset fr bodycmd          "Commande interdite \xE0 l'ext\xE9rieur du corps de la page de manuel"
mcset fr body             "Le texte est interdit \xE0 l'ext\xE9rieur du corps de la page de manuel"
mcset fr reqcmd           "Commande interdite \xE0 l'ext\xE9rieur de l'en-t\xEAte ou de la section de condition"
mcset fr invalidlist      "Type de liste non valide \"@\""
mcset fr nolistcmd        "Commande interdite \xE0 l'int\xE9rieur d'une liste"
mcset fr nolisthdr        "Commande interdite entre le d\xE9but d'une liste et son premier \xE9l\xE9ment"

Changes to modules/doctools/pkgIndex.tcl.

1
2
3
4
5
6
if {![package vsatisfies [package provide Tcl] 8.2]} {return}
package ifneeded doctools            1.4.13 [list source [file join $dir doctools.tcl]]
package ifneeded doctools::toc       1.1.3  [list source [file join $dir doctoc.tcl]]
package ifneeded doctools::idx       1.0.4  [list source [file join $dir docidx.tcl]]
package ifneeded doctools::cvs       1      [list source [file join $dir cvs.tcl]]
package ifneeded doctools::changelog 1      [list source [file join $dir changelog.tcl]]
|




1
2
3
4
5
6
if {![package vsatisfies [package provide Tcl] 8.2]} {return}
package ifneeded doctools            1.4.14 [list source [file join $dir doctools.tcl]]
package ifneeded doctools::toc       1.1.3  [list source [file join $dir doctoc.tcl]]
package ifneeded doctools::idx       1.0.4  [list source [file join $dir docidx.tcl]]
package ifneeded doctools::cvs       1      [list source [file join $dir cvs.tcl]]
package ifneeded doctools::changelog 1      [list source [file join $dir changelog.tcl]]

Changes to modules/ldap/ldap.man.

217
218
219
220
221
222
223
224
225
226
227
228
229
230
231

[para]

[call [cmd ::ldap::searchEnd] [arg handle]]

This command terminates a LDAP search initiated
by [call ::ldap::searchInit]. It also cleans up
the internal state so a new search can be initiated.

If the client has not yet received all results, the client
sends an ABANDON message to inform the server that no
further results for the previous search should to be sent.

[para]






|







217
218
219
220
221
222
223
224
225
226
227
228
229
230
231

[para]

[call [cmd ::ldap::searchEnd] [arg handle]]

This command terminates a LDAP search initiated
by [cmd ::ldap::searchInit]. It also cleans up
the internal state so a new search can be initiated.

If the client has not yet received all results, the client
sends an ABANDON message to inform the server that no
further results for the previous search should to be sent.

[para]

Changes to modules/pop3/pop3.man.

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[opt_def -msex boolean]

Setting this option tells the package that the server we are talking
to is an MS Exchange server (which has some oddities we have to work
around). The default is [const False].

[opt_def -retr-mode retr|list|slow].

The retrieval mode determines how exactly messages are read from the
server.

The allowed values are [const retr], [const list] and [const slow].
The default is [const retr]. See [cmd ::pop3::retrieve] for more
information.






|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[opt_def -msex boolean]

Setting this option tells the package that the server we are talking
to is an MS Exchange server (which has some oddities we have to work
around). The default is [const False].

[opt_def -retr-mode retr|list|slow]

The retrieval mode determines how exactly messages are read from the
server.

The allowed values are [const retr], [const list] and [const slow].
The default is [const retr]. See [cmd ::pop3::retrieve] for more
information.

Changes to modules/struct/graph1.man.

1
2
3
4
5
6
7
8
9
[comment {-*- tcl -*-}]
[manpage_begin {struct::graph v1} n 1.2.1]
[copyright {2002 Andreas Kupries <[email protected]>}]
[moddesc   {Tcl Data Structures}]
[titledesc {Create and manipulate directed graph objects}]
[category  {Data structures}]
[require Tcl 8.2]
[require struct::graph [opt 1.2.1]]
[description]
|







1
2
3
4
5
6
7
8
9
[comment {-*- tcl -*-}]
[manpage_begin {struct::graph_v1} n 1.2.1]
[copyright {2002 Andreas Kupries <[email protected]>}]
[moddesc   {Tcl Data Structures}]
[titledesc {Create and manipulate directed graph objects}]
[category  {Data structures}]
[require Tcl 8.2]
[require struct::graph [opt 1.2.1]]
[description]

Changes to modules/struct/matrix1.man.

1
2
3
4
5
6
7
8
9
[comment {-*- tcl -*-}]
[manpage_begin {struct::matrix v1} n 1.2.1]
[copyright {2002 Andreas Kupries <[email protected]>}]
[moddesc   {Tcl Data Structures}]
[titledesc {Create and manipulate matrix objects}]
[category  {Data structures}]
[require Tcl 8.2]
[require struct::matrix [opt 1.2.1]]
[description]
|







1
2
3
4
5
6
7
8
9
[comment {-*- tcl -*-}]
[manpage_begin {struct::matrix_v1} n 1.2.1]
[copyright {2002 Andreas Kupries <[email protected]>}]
[moddesc   {Tcl Data Structures}]
[titledesc {Create and manipulate matrix objects}]
[category  {Data structures}]
[require Tcl 8.2]
[require struct::matrix [opt 1.2.1]]
[description]

Changes to modules/struct/struct_tree1.man.

1
2
3
4
5
6
7
8
9
[comment {-*- tcl -*-}]
[manpage_begin {struct::tree v1} n 1.2.2]
[copyright {2002 Andreas Kupries <[email protected]>}]
[moddesc   {Tcl Data Structures}]
[titledesc {Create and manipulate tree objects}]
[category  {Data structures}]
[require Tcl 8.2]
[require struct::tree [opt 1.2.2]]
[description]
|







1
2
3
4
5
6
7
8
9
[comment {-*- tcl -*-}]
[manpage_begin {struct::tree_v1} n 1.2.2]
[copyright {2002 Andreas Kupries <[email protected]>}]
[moddesc   {Tcl Data Structures}]
[titledesc {Create and manipulate tree objects}]
[category  {Data structures}]
[require Tcl 8.2]
[require struct::tree [opt 1.2.2]]
[description]

Changes to sak.tcl.

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
exec tclsh "$0" ${1+"[email protected]"}

# --------------------------------------------------------------
# Perform various checks and operations on the distribution.
# SAK = Swiss Army Knife.

set distribution   [file dirname [info script]]
lappend auto_path  [file join $distribution modules]

set critcldefault {}
set critclnotes   {}
set dist_excluded {}

proc package_name    {text} {global package_name    ; set package_name    $text}
proc package_version {text} {global package_version ; set package_version $text}






|







3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
exec tclsh "$0" ${1+"[email protected]"}

# --------------------------------------------------------------
# Perform various checks and operations on the distribution.
# SAK = Swiss Army Knife.

set distribution   [file dirname [info script]]
set auto_path      [linsert $auto_path 0 [file join $distribution modules]]

set critcldefault {}
set critclnotes   {}
set dist_excluded {}

proc package_name    {text} {global package_name    ; set package_name    $text}
proc package_version {text} {global package_version ; set package_version $text}

Changes to support/releases/history/README-1.15.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13
..
25
26
27
28
29
30
31

32
33
34
35
36
37
38
..
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Overview
========

    5   new packages                in 4   modules
    30  changed packages            in 26  modules
    11  internally changed packages in 7   modules
    346 unchanged packages          in 91  modules
    398 packages, total             in 109 modules, total

New in tcllib 1.15
==================

    Module      Package                   New Version   Comments
................................................................................

                                                tcllib 1.14   tcllib 1.15
    Module             Package                  Old Version   New Version   Comments
    ------------------ ------------------------ ------------- ------------- ----------
    aes                aes                      1.0.2         1.1           D EF
    crc                crc16                    1.1.1         1.1.2         B
    csv                csv                      0.7.3         0.8           EF

    ------------------ ------------------------ ------------- ------------- ----------
    fileutil           fileutil                 1.14.4        1.14.5        B
                       fileutil::traverse       0.4.2         0.4.3         B
    ------------------ ------------------------ ------------- ------------- ----------
    grammar_peg        grammar::peg             0.1           0.2           B
    htmlparse          htmlparse                1.2           1.2.1         B
    http               autoproxy                1.5.1         1.5.3         B
................................................................................
=============================================

                                          tcllib 1.14   tcllib 1.15
    Module       Package                  Old Version   New Version   Comments
    ------------ ------------------------ ------------- ------------- ----------
    base64       base64                   2.4.2         2.4.2         D
    cmdline      cmdline                  1.3.3         1.3.3         T
    doctools     doctools                 1.4.13        1.4.13        T
    ------------ ------------------------ ------------- ------------- ----------
    grammar_me   grammar::me::cpu         0.2           0.2           T
                 grammar::me::cpu::core   0.2           0.2           T
                 grammar::me::cpu::gasm   0.1           0.1           T
                 grammar::me::tcl         0.1           0.1           T
                 grammar::me::util        0.1           0.1           T
    ------------ ------------------------ ------------- ------------- ----------



|
|







 







>







 







<







1
2
3
4
5
6
7
8
9
10
11
12
13
..
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
..
69
70
71
72
73
74
75

76
77
78
79
80
81
82
Overview
========

    5   new packages                in 4   modules
    31  changed packages            in 27  modules
    10  internally changed packages in 6   modules
    346 unchanged packages          in 91  modules
    398 packages, total             in 109 modules, total

New in tcllib 1.15
==================

    Module      Package                   New Version   Comments
................................................................................

                                                tcllib 1.14   tcllib 1.15
    Module             Package                  Old Version   New Version   Comments
    ------------------ ------------------------ ------------- ------------- ----------
    aes                aes                      1.0.2         1.1           D EF
    crc                crc16                    1.1.1         1.1.2         B
    csv                csv                      0.7.3         0.8           EF
    doctools           doctools                 1.4.13        1.4.14        T B
    ------------------ ------------------------ ------------- ------------- ----------
    fileutil           fileutil                 1.14.4        1.14.5        B
                       fileutil::traverse       0.4.2         0.4.3         B
    ------------------ ------------------------ ------------- ------------- ----------
    grammar_peg        grammar::peg             0.1           0.2           B
    htmlparse          htmlparse                1.2           1.2.1         B
    http               autoproxy                1.5.1         1.5.3         B
................................................................................
=============================================

                                          tcllib 1.14   tcllib 1.15
    Module       Package                  Old Version   New Version   Comments
    ------------ ------------------------ ------------- ------------- ----------
    base64       base64                   2.4.2         2.4.2         D
    cmdline      cmdline                  1.3.3         1.3.3         T

    ------------ ------------------------ ------------- ------------- ----------
    grammar_me   grammar::me::cpu         0.2           0.2           T
                 grammar::me::cpu::core   0.2           0.2           T
                 grammar::me::cpu::gasm   0.1           0.1           T
                 grammar::me::tcl         0.1           0.1           T
                 grammar::me::util        0.1           0.1           T
    ------------ ------------------------ ------------- ------------- ----------