author | Danek Duvall <danek.duvall@oracle.com> |
Mon, 13 Jan 2014 12:44:59 -0800 | |
changeset 1637 | 54bd5ac8db85 |
child 7831 | d0adeff33adb |
permissions | -rw-r--r-- |
1637
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
1 |
rst2man does a poor job of creating man pages that can be read on Solaris. |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
2 |
Some of the changes in this patch make the Solaris *roff tools do the right |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
3 |
thing: |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
4 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
5 |
- Getting rid of the rst2man header before the SYNOPSIS |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
6 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
7 |
- Changing "\(aq" to "'", and making sure that single quotes don't start |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
8 |
a line (at least in a couple of places where it's not safe) |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
9 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
10 |
- Changing ".ft C" and ".ft P" to simply ".ft" |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
11 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
12 |
- Removing "\%" and "\:" |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
13 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
14 |
Groff also seems to have as much trouble with the .INDENT/.UNINDENT macros |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
15 |
as Solaris *roff, de-indenting paragraphs that shouldn't be, so we use |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
16 |
.RS/.RE instead. It's not as fancy, but seems to do the job. |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
17 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
18 |
Applying this patch has no effect in the normal userland build (it can't |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
19 |
run automatically until docutils is delivered), but it enables a "gmake |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
20 |
patches/manpage.patch" to regenerate the manpages with the updated text |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
21 |
(found in rst.patch) with the patched hgmanpage.py, and updates the |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
22 |
manpage.patch file. |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
23 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
24 |
--- mercurial-2.7/doc/hgmanpage.py Thu Aug 1 20:37:39 2013 |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
25 |
+++ mercurial-2.7/doc/hgmanpage.py Mon Aug 19 14:40:04 2013 |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
26 |
@@ -197,6 +197,7 @@ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
27 |
self._in_docinfo = None |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
28 |
self._active_table = None |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
29 |
self._in_literal = False |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
30 |
+ self._in_literal_inline = False |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
31 |
self.header_written = 0 |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
32 |
self._line_block = 0 |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
33 |
self.authors = [] |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
34 |
@@ -212,15 +213,15 @@ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
35 |
# ``B`` bold, ``I`` italic, ``R`` roman should be available. |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
36 |
# Hopefully ``C`` courier too. |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
37 |
self.defs = { |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
38 |
- 'indent' : ('.INDENT %.1f\n', '.UNINDENT\n'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
39 |
+ 'indent' : ('.RS %d\n', '.RE\n'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
40 |
'definition_list_item' : ('.TP', ''), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
41 |
'field_name' : ('.TP\n.B ', '\n'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
42 |
'literal' : ('\\fB', '\\fP'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
43 |
- 'literal_block' : ('.sp\n.nf\n.ft C\n', '\n.ft P\n.fi\n'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
44 |
+ 'literal_block' : ('.sp\n.nf\n.ft\n', '\n.ft\n.fi\n'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
45 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
46 |
'option_list_item' : ('.TP\n', ''), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
47 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
48 |
- 'reference' : (r'\%', r'\:'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
49 |
+ 'reference' : (r'', r''), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
50 |
'emphasis': ('\\fI', '\\fP'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
51 |
'strong' : ('\\fB', '\\fP'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
52 |
'term' : ('\n.B ', '\n'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
53 |
@@ -267,6 +268,7 @@ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
54 |
self.body[i - 2][:4] == '.TP\n'): |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
55 |
self.body[i] = '.\n' |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
56 |
elif (self.body[i - 1] == '\n' and |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
57 |
+ self.body[i - 2] and |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
58 |
self.body[i - 2][0] != '.' and |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
59 |
(self.body[i - 3][:7] == '.TP\n.B ' |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
60 |
or self.body[i - 3][:4] == '\n.B ') |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
61 |
@@ -284,7 +286,6 @@ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
62 |
text = text.replace('\\','\\e') |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
63 |
replace_pairs = [ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
64 |
(u'-', ur'\-'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
65 |
- (u'\'', ur'\(aq'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
66 |
(u'ยด', ur'\''), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
67 |
(u'`', ur'\(ga'), |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
68 |
] |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
69 |
@@ -297,6 +298,15 @@ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
70 |
if text[0] == '.': |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
71 |
text = '\\&' + text |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
72 |
text = text.replace('\n.', '\n\\&.') |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
73 |
+ # We need to do the same thing for the inline literals, too |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
74 |
+ if self._in_literal_inline and text[0] == '.': |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
75 |
+ if self.body[-2].endswith('\n') and \ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
76 |
+ self.body[-1] == self.defs['literal'][0]: |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
77 |
+ self.body.append('\\&') |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
78 |
+ # Single quotes starting a line are harmful, too. |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
79 |
+ if text[0] == "'": |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
80 |
+ text = '\\&' + text |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
81 |
+ text = text.replace("\n'", "\n\\&'") |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
82 |
self.body.append(text) |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
83 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
84 |
def depart_Text(self, node): |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
85 |
@@ -381,7 +391,6 @@ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
86 |
if self.header_written: |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
87 |
return |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
88 |
self.body.append(self.header()) |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
89 |
- self.body.append(MACRO_DEF) |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
90 |
self.header_written = 1 |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
91 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
92 |
def visit_address(self, node): |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
93 |
@@ -795,8 +804,10 @@ |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
94 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
95 |
def visit_literal(self, node): |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
96 |
self.body.append(self.defs['literal'][0]) |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
97 |
+ self._in_literal_inline = True |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
98 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
99 |
def depart_literal(self, node): |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
100 |
+ self._in_literal_inline = False |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
101 |
self.body.append(self.defs['literal'][1]) |
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
102 |
|
54bd5ac8db85
18050227 mercurial 2.8.2
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
103 |
def visit_literal_block(self, node): |