summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2011-09-22 14:05:16 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2011-09-22 14:05:16 (GMT)
commitf1367943a944acec1363cae14f2dd5a6f261f8f9 (patch)
treee9d09c4d108b160a19fe134fb72a9ab235834c1e /tools
parent163bd8d39b867eb56b871da18aac105c20e5c0d7 (diff)
downloadtcl-f1367943a944acec1363cae14f2dd5a6f261f8f9.zip
tcl-f1367943a944acec1363cae14f2dd5a6f261f8f9.tar.gz
tcl-f1367943a944acec1363cae14f2dd5a6f261f8f9.tar.bz2
[Bug 2903743]: Try to do the right thing when presented with old-style nroff.
Diffstat (limited to 'tools')
-rw-r--r--tools/tcltk-man2html-utils.tcl33
-rwxr-xr-xtools/tcltk-man2html.tcl30
2 files changed, 23 insertions, 40 deletions
diff --git a/tools/tcltk-man2html-utils.tcl b/tools/tcltk-man2html-utils.tcl
index 938a1af..ef1f62a 100644
--- a/tools/tcltk-man2html-utils.tcl
+++ b/tools/tcltk-man2html-utils.tcl
@@ -110,6 +110,7 @@ proc htmlize-text {text {charmap {}}} {
# contains some extras for use in nroff->html processing
# build on the list passed in, if any
lappend charmap \
+ "&ndash;" "&ndash;" \
{&} {&amp;} \
{\\} "&#92;" \
{\e} "&#92;" \
@@ -143,8 +144,8 @@ proc process-text {text} {
{\fP} {\fR} \
{\.} . \
{\(bu} "&#8226;" \
+ {\*(qo} "&ocirc;" \
]
- lappend charmap {\o'o^'} {&ocirc;} ; # o-circumflex in re_syntax.n
lappend charmap {\-\|\-} -- ; # two hyphens
lappend charmap {\-} - ; # a hyphen
@@ -1063,25 +1064,17 @@ proc output-directive {line} {
output-IP-list .IP .IP $rest
return
}
- .PP {
+ .PP - .sp {
man-puts <P>
}
.RS {
output-RS-list
return
}
- .RE {
- manerror "unexpected .RE"
- return
- }
.br {
man-puts <BR>
return
}
- .DE {
- manerror "unexpected .DE"
- return
- }
.DS {
if {[next-op-is .ta rest]} {
# skip the leading .ta directive if it is there
@@ -1109,16 +1102,6 @@ proc output-directive {line} {
}
return
}
- .CE {
- manerror "unexpected .CE"
- return
- }
- .sp {
- man-puts <P>
- }
- .ta {
- manerror "ignoring $line"
- }
.nf {
if {[match-text @more .fi]} {
foreach more [split $more \n] {
@@ -1174,13 +1157,11 @@ proc output-directive {line} {
manerror "ignoring $line"
}
}
- .fi {
- manerror "ignoring $line"
+ .RE - .DE - .CE {
+ manerror "unexpected $code"
+ return
}
- .na -
- .ad -
- .UL -
- .ne {
+ .ta - .fi - .na - .ad - .UL - .ie - .el - .ne {
manerror "ignoring $line"
}
default {
diff --git a/tools/tcltk-man2html.tcl b/tools/tcltk-man2html.tcl
index b347abf..e4845a6 100755
--- a/tools/tcltk-man2html.tcl
+++ b/tools/tcltk-man2html.tcl
@@ -360,7 +360,7 @@ proc make-man-pages {html args} {
continue
}
switch -exact -- $code {
- .if - .nr - .ti - .in -
+ .if - .nr - .ti - .in - .ie - .el -
.ad - .na - .so - .ne - .AS - .VE - .VS - . {
# ignore
continue
@@ -379,21 +379,22 @@ proc make-man-pages {html args} {
lappend manual(text) "$code [unquote $rest]"
}
.QW {
- set rest [regexp -all -inline {\"(?:[^""]+)\"|\S+} $rest]
- addbuffer $LQ [unquote [lindex $rest 0]] $RQ \
- [unquote [lindex $rest 1]]
+ lassign [regexp -all -inline {\"(?:[^""]+)\"|\S+} $rest] \
+ inQuote afterwards
+ addbuffer $LQ [unquote $inQuote] $RQ [unquote $afterwards]
}
.PQ {
- set rest [regexp -all -inline {\"(?:[^""]+)\"|\S+} $rest]
- addbuffer ( $LQ [unquote [lindex $rest 0]] $RQ \
- [unquote [lindex $rest 1]] ) \
- [unquote [lindex $rest 2]]
+ lassign [regexp -all -inline {\"(?:[^""]+)\"|\S+} $rest] \
+ inQuote punctuation afterwards
+ addbuffer ( $LQ [unquote $inQuote] $RQ \
+ [unquote $punctuation] ) \
+ [unquote $afterwards]
}
.QR {
- set rest [regexp -all -inline {\"(?:[^""]+)\"|\S+} $rest]
- addbuffer $LQ [unquote [lindex $rest 0]] - \
- [unquote [lindex $rest 1]] $RQ \
- [unquote [lindex $rest 2]]
+ lassign [regexp -all -inline {\"(?:[^""]+)\"|\S+} $rest] \
+ rangeFrom rangeTo afterwards
+ addbuffer $LQ [unquote $rangeFrom] "&ndash;" \
+ [unquote $rangeTo] $RQ [unquote $afterwards]
}
.MT {
addbuffer $LQ$RQ
@@ -404,7 +405,7 @@ proc make-man-pages {html args} {
}
.BS - .BE - .br - .fi - .sp - .nf {
flushbuffer
- if {"$rest" ne {}} {
+ if {$rest ne ""} {
if {!$verbose} {
puts stderr ""
}
@@ -435,8 +436,9 @@ proc make-man-pages {html args} {
}
.OP {
flushbuffer
+ lassign $rest cmdName dbName dbClass
lappend manual(text) [concat .OP [process-text \
- "\\fB[lindex $rest 0]\\fR \\fB[lindex $rest 1]\\fR \\fB[lindex $rest 2]\\fR"]]
+ "\\fB$cmdName\\fR \\fB$dbName\\fR \\fB$dbClass\\fR"]]
}
.PP - .LP {
flushbuffer