Quote ' as \(aq in manpages
The docbook/xmlto toolchain insists on quoting ' as \'. This does achieve the quoting goal, but modern 'man' implementations turn the apostrophe into a unicode "proper" apostrophe (given the right circumstances), breaking code examples in many of our manpages. Quote them as \(aq instead, which is an "apostrophe quote" as per the groff_char manpage. Unfortunately, as Anders Kaseorg kindly pointed out, this is not portable beyond groff, so we add an extra Makefile variable GNU_ROFF which you need to enable to get the new quoting. Thanks also to Miklos Vajna for documentation. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ba7e81430a
commit
204d363f5a
@ -103,6 +103,14 @@ ifdef DOCBOOK_SUPPRESS_SP
|
|||||||
XMLTO_EXTRA += -m manpage-suppress-sp.xsl
|
XMLTO_EXTRA += -m manpage-suppress-sp.xsl
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# If your target system uses GNU groff, it may try to render
|
||||||
|
# apostrophes as a "pretty" apostrophe using unicode. This breaks
|
||||||
|
# cut&paste, so you should set GNU_ROFF to force them to be ASCII
|
||||||
|
# apostrophes. Unfortunately does not work with non-GNU roff.
|
||||||
|
ifdef GNU_ROFF
|
||||||
|
XMLTO_EXTRA += -m manpage-quote-apos.xsl
|
||||||
|
endif
|
||||||
|
|
||||||
SHELL_PATH ?= $(SHELL)
|
SHELL_PATH ?= $(SHELL)
|
||||||
# Shell quote;
|
# Shell quote;
|
||||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
||||||
|
16
Documentation/manpage-quote-apos.xsl
Normal file
16
Documentation/manpage-quote-apos.xsl
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
|
version="1.0">
|
||||||
|
|
||||||
|
<!-- work around newer groff/man setups using a prettier apostrophe
|
||||||
|
that unfortunately does not quote anything when cut&pasting
|
||||||
|
examples to the shell -->
|
||||||
|
<xsl:template name="escape.apostrophe">
|
||||||
|
<xsl:param name="content"/>
|
||||||
|
<xsl:call-template name="string.subst">
|
||||||
|
<xsl:with-param name="string" select="$content"/>
|
||||||
|
<xsl:with-param name="target">'</xsl:with-param>
|
||||||
|
<xsl:with-param name="replacement">\(aq</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
4
Makefile
4
Makefile
@ -142,6 +142,10 @@ all::
|
|||||||
#
|
#
|
||||||
# Define DOCBOOK_XSL_172 if you want to format man pages with DocBook XSL v1.72.
|
# Define DOCBOOK_XSL_172 if you want to format man pages with DocBook XSL v1.72.
|
||||||
#
|
#
|
||||||
|
# Define GNU_ROFF if your target system uses GNU groff. This forces
|
||||||
|
# apostrophes to be ASCII so that cut&pasting examples to the shell
|
||||||
|
# will work.
|
||||||
|
#
|
||||||
# Define NO_PERL_MAKEMAKER if you cannot use Makefiles generated by perl's
|
# Define NO_PERL_MAKEMAKER if you cannot use Makefiles generated by perl's
|
||||||
# MakeMaker (e.g. using ActiveState under Cygwin).
|
# MakeMaker (e.g. using ActiveState under Cygwin).
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user