Miklos Vajna wrote: > On Tue, Oct 13, 2009 at 10:06:23PM +0800, bill lam <cbill.lam@xxxxxxxxx> wrote: > > 2. now the .ft pair fixed but it still displayed incorrect quote. > > > > git filter-branch --tree-filter ´rm filename´ HEAD > > > > it should be 'rm filename' not ´rm filename´ > > I can reproduce that here as well, that's how it is in the official > manpages as well (see the man branch), so that's not specific to your > system. Same here. The patch below is a band-aid fix that works for me, but I'd rather have it tested on various docbook/asciidoc combinations if anyone still runs them. My findings so far were that asciidoc correctly turns the apostrophe into an ' entity in the .xml output, and xmlto then turns it into \' instead of just ' in the troff output. Then, if the terminal appears to support Unicode (this can be disabled with LC_ALL=C or such) the formatter turns it into a "real" apostrophe that, of course, is not understood by any ASCII-based tool. So far so good, and sounded like an easy debugging job, right? Not so. The buzzword-compliance people apparently felt it would be nice to wrap a bad joke of a language in the bad joke of a language that XML already is, and thus was XSL invented. Deep in the horrors of these XSL files, in my case in /usr/share/xml/docbook/stylesheet/nwalsh/1.75.2/manpages/other.xsl there's a template that, according to the comment near it, maltreats our apostrophes: * The backslash, dot, dash, and apostrophe (\, ., -, ') characters * have special meaning for roff, so before we do any other * processing, we must escape those characters where they appear in * the source content. The patch below just replaces said template with a no-op for git's manpage creation. I have not been able to substantiate the claim that apostrophes are special, and in fact with the patch my manpages look fine. Then again I don't know anything about roff syntax either, and manuals seem a bit hard to come by. Grrr. diff --git i/Documentation/manpage-base.xsl w/Documentation/manpage-base.xsl index a264fa6..7c14469 100644 --- i/Documentation/manpage-base.xsl +++ w/Documentation/manpage-base.xsl @@ -7,6 +7,11 @@ <xsl:param name="man.output.quietly" select="1"/> <xsl:param name="refentry.meta.get.quietly" select="1"/> +<xsl:template name="escape.apostrophe"> + <xsl:param name="content"/> + <xsl:value-of select="$content"/> +</xsl:template> + <!-- convert asciidoc callouts to man page format; git.docbook.backslash and git.docbook.dot params must be supplied by another XSL file or other means --> -- Thomas Rast trast@{inf,student}.ethz.ch
Attachment:
signature.asc
Description: This is a digitally signed message part.