]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/groff/doc/fixinfo.sh
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / groff / doc / fixinfo.sh
1 #! /bin/sh
2 #
3 # Fix a problem with HTML output produced by makeinfo 4.8.
4 #
5 # groff.texinfo uses (after macro expansion) something like
6 #
7 #   @deffn ...
8 #   @XXindex ...
9 #   @deffnx ...
10 #
11 # which has worked with earlier versions (using an undocumented feature
12 # of the implementation of @deffn and @deffnx).  Version 4.8 has new
13 # code for generating HTML, and the above construction produces wrong
14 # HTML output: It starts a new <blockquote> without closing it properly.
15 # The very problem is that, according to the documentation, the @deffnx
16 # must immediately follow the @deffn line, making it impossible to add
17 # entries into user-defined indices if supplied with macro wrappers around
18 # @deffn and @deffnx.
19 #
20 # Note that this script is a quick hack and tightly bound to the current
21 # groff.texinfo macro code.  Hopefully, a new texinfo version makes it
22 # unnecessary.
23
24 t=${TMPDIR-.}/gro$$.tmp
25
26 cat $1 | sed '
27 1 {
28   N
29   N
30 }
31 :b
32 $b
33 N
34 /^<blockquote>\n<p>.*\n\n   \&mdash;/ {
35   s/^<blockquote>\n<p>\(.*\n\)\n   \&mdash;/\1\&mdash;/
36   n
37   N
38   N
39   bb
40 }
41 $b
42 P
43 D
44 ' > $t
45 rm $1
46 mv $t $1