]> granicus.if.org Git - docbook-dsssl/commitdiff
Replaced all dots in roff requests with U+2302 ("house"
authorMichael Smith <xmldoc@users.sourceforge.net>
Sun, 14 Jan 2007 20:21:31 +0000 (20:21 +0000)
committerMichael Smith <xmldoc@users.sourceforge.net>
Sun, 14 Jan 2007 20:21:31 +0000 (20:21 +0000)
character), and added escaping in output for all instances of dot
that are not in roff requests. This fixes the problem case where a
string beginning with a dot (for example, the string ".bashrc")
might occur at the beginning of a line in output, in which case
would mistakenly get interpreted as a roff request. Thanks to Eric
S. Raymond for pushing to fix this.

xsl/manpages/block.xsl
xsl/manpages/info.xsl
xsl/manpages/links.xsl
xsl/manpages/lists.xsl
xsl/manpages/other.xsl
xsl/manpages/refentry.xsl
xsl/manpages/synop.xsl
xsl/manpages/table.xsl
xsl/manpages/utility.xsl
xsl/params/man.string.subst.map.xml
xsl/tools/xsl/build/html2roff.xsl

index ce7cf4d987938e876092c307bfea81de1fe2a633..a11ba8fb77744c61327d41c6153634745089ea8a 100644 (file)
@@ -25,7 +25,7 @@
   <xsl:variable name="title.wrapper">
     <bold><xsl:value-of select="normalize-space(title[1])"/></bold>
   </xsl:variable>
-  <xsl:text>.PP&#10;</xsl:text>
+  <xsl:text>&#x2302;PP&#10;</xsl:text>
   <!-- * don't put linebreak after head; instead render it as a "run in" -->
   <!-- * head, that is, inline, with a period and space following it -->
   <xsl:apply-templates mode="bold" select="exsl:node-set($title.wrapper)"/>
                     ancestor::authorblurb or
                     ancestor::personblurb">
       <xsl:if test="preceding-sibling::*[not(name() ='')]">
-        <xsl:text>.sp</xsl:text>
+        <xsl:text>&#x2302;sp</xsl:text>
         <xsl:text>&#10;</xsl:text>
-        <xsl:text>.RS 4n</xsl:text>
+        <xsl:text>&#x2302;RS 4n</xsl:text>
         <xsl:text>&#10;</xsl:text>
       </xsl:if>
     </xsl:when>
     <xsl:otherwise>
-      <xsl:text>.PP</xsl:text>
+      <xsl:text>&#x2302;PP</xsl:text>
       <xsl:text>&#10;</xsl:text>
     </xsl:otherwise>
   </xsl:choose>
@@ -71,7 +71,7 @@
                   ancestor::personblurb">
       <xsl:if test="preceding-sibling::*[not(name() ='')]">
         <xsl:text>&#10;</xsl:text>
-        <xsl:text>.RE</xsl:text>
+        <xsl:text>&#x2302;RE</xsl:text>
         <xsl:text>&#10;</xsl:text>
       </xsl:if>
     </xsl:if>
@@ -86,7 +86,7 @@
   <xsl:text>&#10;</xsl:text>
   <xsl:if test="not(ancestor::authorblurb) and
                 not(ancestor::personblurb)">
-    <xsl:text>.sp&#10;</xsl:text>
+    <xsl:text>&#x2302;sp&#10;</xsl:text>
   </xsl:if>
 </xsl:template>
 
                     parent::td|parent::th" /> <!-- do nothing -->
     <xsl:otherwise>
       <xsl:text>&#10;</xsl:text>
-      <xsl:text>.sp&#10;</xsl:text>
+      <xsl:text>&#x2302;sp&#10;</xsl:text>
     </xsl:otherwise>
   </xsl:choose>
   <xsl:if test="$indent = 'Yes'">
     <!-- * start indented section -->
-    <xsl:text>.RS</xsl:text> 
+    <xsl:text>&#x2302;RS</xsl:text> 
     <xsl:if test="not($man.indent.width = '')">
       <xsl:text> </xsl:text>
       <xsl:value-of select="$man.indent.width"/>
       <!-- * default to be non-bold - because it's a convention that's -->
       <!-- * followed is the vast majority of existing man pages that document -->
       <!-- * functions, and we need to follow it by default, like it or no. -->
-      <xsl:text>.ft </xsl:text>
+      <xsl:text>&#x2302;ft </xsl:text>
       <xsl:value-of select="$man.font.funcsynopsisinfo"/>
       <xsl:text>&#10;</xsl:text>
-      <xsl:text>.nf&#10;</xsl:text>
+      <xsl:text>&#x2302;nf&#10;</xsl:text>
       <xsl:apply-templates/>
       <xsl:text>&#10;</xsl:text>
-      <xsl:text>.fi&#10;</xsl:text>
-      <xsl:text>.ft&#10;</xsl:text>
+      <xsl:text>&#x2302;fi&#10;</xsl:text>
+      <xsl:text>&#x2302;ft&#10;</xsl:text>
     </xsl:when>
     <xsl:otherwise>
       <!-- * Other verbatims do not need to get bolded -->
-      <xsl:text>.nf&#10;</xsl:text>
+      <xsl:text>&#x2302;nf&#10;</xsl:text>
       <xsl:apply-templates/>
       <xsl:text>&#10;</xsl:text>
-      <xsl:text>.fi&#10;</xsl:text>
+      <xsl:text>&#x2302;fi&#10;</xsl:text>
     </xsl:otherwise>
   </xsl:choose>
   <xsl:if test="$indent = 'Yes'">
     <!-- * end indented section -->
-    <xsl:text>.RE&#10;</xsl:text> 
+    <xsl:text>&#x2302;RE&#10;</xsl:text> 
   </xsl:if>
   <!-- * if first following sibling node of this verbatim -->
   <!-- * environment is a text node, output a line of space before it -->
   <xsl:if test="following-sibling::node()[1][name(.) = '']">
-    <xsl:text>.sp&#10;</xsl:text>
+    <xsl:text>&#x2302;sp&#10;</xsl:text>
   </xsl:if>
 </xsl:template>
 
     </xsl:choose>
   </xsl:variable>
 
-  <xsl:text>.PP&#10;</xsl:text>
+  <xsl:text>&#x2302;PP&#10;</xsl:text>
   <xsl:call-template name="formal.object">
     <xsl:with-param name="placement" select="$placement"/>
   </xsl:call-template>
index 0643339ff5ab357ebdda482087e163719dbeba95..ba46e9d25194e63671376d6350e5328aee374f34 100644 (file)
                       $info//othercredit)">
           </xsl:value-of>
         </xsl:variable>
-        <xsl:text>.SH "</xsl:text>
+        <xsl:text>&#x2302;SH "</xsl:text>
         <xsl:call-template name="make.authorsecttitle">
           <xsl:with-param name="authorcount" select="$authorcount"/>
         </xsl:call-template>
         <xsl:variable name="person-name-node">
           <bold><xsl:value-of select="$person-name"/></bold>
         </xsl:variable>
-        <xsl:text>.PP&#10;</xsl:text>
+        <xsl:text>&#x2302;PP&#10;</xsl:text>
         <!-- * Display person name in bold -->
         <xsl:apply-templates mode="bold" select="exsl:node-set($person-name-node)"/>
         <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
         <xsl:text>&#10;</xsl:text>
       </xsl:when>
       <xsl:otherwise>
-        <xsl:text>.br&#10;</xsl:text>
+        <xsl:text>&#x2302;br&#10;</xsl:text>
       </xsl:otherwise>
     </xsl:choose>
     <!-- * Display affiliation(s) on separate lines -->
   </xsl:template>
 
   <xsl:template match="collab" mode="authorsect">
-    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:text>&#x2302;PP&#10;</xsl:text>
     <xsl:apply-templates mode="bold" select="collabname"/>
     <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
     <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
   </xsl:template>
 
   <xsl:template match="corpauthor|corpcredit|orgname|publishername" mode="authorsect">
-    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:text>&#x2302;PP&#10;</xsl:text>
     <xsl:apply-templates mode="bold" select="."/>
     <xsl:text>&#10;</xsl:text>
     <xsl:if test="self::publishername">
   </xsl:template>
 
   <xsl:template match="publisher" mode="authorsect">
-    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:text>&#x2302;PP&#10;</xsl:text>
     <xsl:apply-templates mode="bold" select="publishername"/>
     <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
     <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
   </xsl:template>
 
   <xsl:template name="publisher.attribution">
-    <xsl:text>&#10;.sp -1n&#10;</xsl:text>
-    <xsl:text>.IP ""</xsl:text> 
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>&#x2302;sp -1n&#10;</xsl:text>
+    <xsl:text>&#x2302;IP ""</xsl:text> 
     <xsl:if test="not($blurb-indent = '')">
       <xsl:text> </xsl:text>
       <xsl:value-of select="$blurb-indent"/>
     <!-- * If contents are actually empty except for an email address -->
     <!-- * or ulink, then output nothing. -->
     <xsl:if test="$contents != ''">
-      <xsl:text>.br&#10;</xsl:text>
+      <xsl:text>&#x2302;br&#10;</xsl:text>
       <xsl:for-each select="shortaffil|jobtitle|orgname|orgdiv|address">
         <!-- * only display output of nodes other than email or ulink -->
         <xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/>
         <xsl:otherwise>
           <!-- * put a line break after every Affiliation instance except -->
           <!-- * the last one in the set -->
-          <xsl:text>.br&#10;</xsl:text>
+          <xsl:text>&#x2302;br&#10;</xsl:text>
         </xsl:otherwise>
       </xsl:choose>
     </xsl:if>
     <!-- * an email address or ulink, then output nothing. -->
     <xsl:if test="$contents != ''">
       <xsl:text>&#10;</xsl:text>
-      <xsl:text>.br&#10;</xsl:text>
+      <xsl:text>&#x2302;br&#10;</xsl:text>
       <!--* Skip email and ulink descendants of Address (rendered elsewhere) -->
       <xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/>
     </xsl:if>
       <!-- * If we have no *blurb or contrib, but this is an Author or -->
       <!-- * Editor, then render the corresponding localized gentext -->
       <xsl:when test="self::author">
-        <xsl:text>&#10;.sp -1n&#10;</xsl:text>
-        <xsl:text>.IP ""</xsl:text> 
+        <xsl:text>&#10;</xsl:text>
+        <xsl:text>&#x2302;sp -1n&#10;</xsl:text>
+        <xsl:text>&#x2302;IP ""</xsl:text> 
         <xsl:if test="not($blurb-indent = '')">
           <xsl:text> </xsl:text>
           <xsl:value-of select="$blurb-indent"/>
         <xsl:text>.&#10;</xsl:text>
       </xsl:when>
       <xsl:when test="self::editor">
-        <xsl:text>&#10;.sp -1n&#10;</xsl:text>
-        <xsl:text>.IP ""</xsl:text> 
+        <xsl:text>&#10;</xsl:text>
+        <xsl:text>&#x2302;sp -1n&#10;</xsl:text>
+        <xsl:text>&#x2302;IP ""</xsl:text> 
         <xsl:if test="not($blurb-indent = '')">
           <xsl:text> </xsl:text>
           <xsl:value-of select="$blurb-indent"/>
       <xsl:when test="self::othercredit">
         <xsl:choose>
           <xsl:when test="@class and @class != 'other'">
-            <xsl:text>&#10;.sp -1n&#10;</xsl:text>
-            <xsl:text>.IP ""</xsl:text> 
+            <xsl:text>&#10;</xsl:text>
+            <xsl:text>&#x2302;sp -1n&#10;</xsl:text>
+            <xsl:text>&#x2302;IP ""</xsl:text> 
             <xsl:if test="not($blurb-indent = '')">
               <xsl:text> </xsl:text>
               <xsl:value-of select="$blurb-indent"/>
           test="../personname|../surname|../firstname
                 |../othername|../lineage|../honorific
                 |../affiliation|../email|../address">
-        <xsl:text>&#10;.sp -1n&#10;</xsl:text>
-        <xsl:text>.IP ""</xsl:text> 
+        <xsl:text>&#10;</xsl:text>
+        <xsl:text>&#x2302;sp -1n&#10;</xsl:text>
+        <xsl:text>&#x2302;IP ""</xsl:text> 
         <xsl:if test="not($blurb-indent = '')">
           <xsl:text> </xsl:text>
           <xsl:value-of select="$blurb-indent"/>
           <xsl:when test="not(preceding-sibling::*)">
             <!-- * if this *blurb or contrib has no preceding -->
             <!-- * siblings, then we need to start a new paragraph -->
-            <xsl:text>.PP</xsl:text>
+            <xsl:text>&#x2302;PP</xsl:text>
           </xsl:when>
           <xsl:otherwise>
             <!-- * otherwise, this has no preceding siblings, so -->
             <!-- * just put a linebreak -->
-            <xsl:text>.br</xsl:text>
+            <xsl:text>&#x2302;br</xsl:text>
           </xsl:otherwise>
         </xsl:choose>
       </xsl:otherwise>
     <xsl:param name="info"/>
     <xsl:choose>
       <xsl:when test="$info//copyright|$info//legalnotice">
-        <xsl:text>.SH "</xsl:text>
+        <xsl:text>&#x2302;SH "</xsl:text>
         <xsl:call-template name="string.upper">
           <xsl:with-param name="string">
             <xsl:call-template name="gentext">
             <xsl:apply-templates select="." mode="titlepage.mode"/>
           </xsl:variable>
           <xsl:value-of select="normalize-space($contents)"/>
-          <xsl:text>&#10;.br&#10;</xsl:text>
+          <xsl:text>&#10;</xsl:text>
+          <xsl:text>&#x2302;br&#10;</xsl:text>
         </xsl:for-each>
         <xsl:text>&#10;</xsl:text>
         <xsl:for-each select="(($info[//legalnotice])[last()]//legalnotice)">
           <xsl:apply-templates select="." mode="titlepage.mode"/>
-          <xsl:text>&#10;.br&#10;</xsl:text>
+          <xsl:text>&#10;</xsl:text>
+          <xsl:text>&#x2302;br&#10;</xsl:text>
         </xsl:for-each>
       </xsl:when>
       <xsl:otherwise/> <!-- * do nothing, no copyright or legalnotice found -->
index df263711852b0e2db3abc3803e8bddaa496315d7..ccbefc1146a09fa9d511999e8ed2d533547875e9 100644 (file)
   <xsl:param name="notesources"/>
   <xsl:call-template name="mark.subheading"/>
   <!-- * make the endnotes-list section heading -->
-  <xsl:text>.SH "</xsl:text>
+  <xsl:text>&#x2302;SH "</xsl:text>
   <xsl:call-template name="string.upper">
     <xsl:with-param name="string">
       <xsl:choose>
   <xsl:for-each select="$notesources">
     <!-- * make paragraph with hanging indent, and starting with a -->
     <!-- * number in the form " 1." (padded to $man.indent.width - 1) -->
-    <xsl:text>.IP</xsl:text>
+    <xsl:text>&#x2302;IP</xsl:text>
     <xsl:text> "</xsl:text>
     <xsl:variable name="endnote.number">
       <xsl:apply-templates select="." mode="notesource.number"/>
     </xsl:choose>
     <xsl:text>&#10;</xsl:text> 
     <xsl:if test="@url">
-      <xsl:text>.RS</xsl:text>
+      <xsl:text>&#x2302;RS</xsl:text>
       <xsl:if test="not($list-indent = '')">
         <xsl:text> </xsl:text>
         <xsl:value-of select="$list-indent"/>
       </xsl:if>
       <xsl:value-of select="@url"/>
       <xsl:text>&#10;</xsl:text>
-      <xsl:text>.RE</xsl:text>
+      <xsl:text>&#x2302;RE</xsl:text>
       <xsl:text>&#10;</xsl:text>
     </xsl:if>
   </xsl:for-each>
index 167dfaa4612283861be4551b78b9b44309f95662..de988c24903d00235ef57d55d74fc8342fc91bb1 100644 (file)
                 ]">
     <!-- * Make sure multiple paragraphs within a list item don't -->
     <!-- * merge together.                                        -->
-    <xsl:text>.sp&#10;</xsl:text>
+    <xsl:text>&#x2302;sp&#10;</xsl:text>
   </xsl:if>
 </xsl:template>
 
 <xsl:template match="variablelist|glosslist">
   <xsl:if test="title">
-    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:text>&#x2302;PP&#10;</xsl:text>
     <xsl:apply-templates mode="bold" select="title"/>
     <xsl:text>&#10;</xsl:text>
   </xsl:if>
@@ -56,7 +56,7 @@
 </xsl:template>
 
 <xsl:template match="varlistentry|glossentry">
-  <xsl:text>.PP&#10;</xsl:text> 
+  <xsl:text>&#x2302;PP&#10;</xsl:text> 
   <xsl:for-each select="term|glossterm">
     <xsl:variable name="content">
       <xsl:apply-templates/>
         <xsl:value-of select="$variablelist.term.separator"/>
         <xsl:if test="not($variablelist.term.break.after = '0')">
           <xsl:text>&#10;</xsl:text>
-          <xsl:text>.br&#10;</xsl:text>
+          <xsl:text>&#x2302;br&#10;</xsl:text>
         </xsl:if>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:for-each>
   <xsl:text>&#10;</xsl:text>
-  <xsl:text>.RS</xsl:text> 
+  <xsl:text>&#x2302;RS</xsl:text> 
   <xsl:if test="not($list-indent = '')">
     <xsl:text> </xsl:text>
     <xsl:value-of select="$list-indent"/>
   </xsl:if>
   <xsl:text>&#10;</xsl:text>
   <xsl:apply-templates/>
-  <xsl:text>.RE&#10;</xsl:text>
+  <xsl:text>&#x2302;RE&#10;</xsl:text>
 </xsl:template>
 
 <xsl:template match="varlistentry/term"/>
 <xsl:template match="variablelist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
                      glosslist[ancestor::listitem or ancestor::step or ancestor::glossdef]">
   <xsl:text>&#10;</xsl:text>
-  <xsl:text>.RS</xsl:text> 
+  <xsl:text>&#x2302;RS</xsl:text> 
   <xsl:if test="not($list-indent = '')">
     <xsl:text> </xsl:text>
     <xsl:value-of select="$list-indent"/>
   </xsl:if>
   <xsl:text>&#10;</xsl:text>
   <xsl:apply-templates/>
-  <xsl:text>.RE&#10;</xsl:text>
+  <xsl:text>&#x2302;RE&#10;</xsl:text>
   <xsl:if test="following-sibling::node() or
                 parent::para[following-sibling::node()] or
                 parent::simpara[following-sibling::node()] or
                 parent::remark[following-sibling::node()]">
-    <xsl:text>.IP ""</xsl:text> 
+    <xsl:text>&#x2302;IP ""</xsl:text> 
     <xsl:if test="not($list-indent = '')">
       <xsl:text> </xsl:text>
       <xsl:value-of select="$list-indent"/>
   <!-- * processing before final output, the character-map will -->
   <!-- * handle conversion of the &#x2022; to "\(bu" for us -->
   <xsl:text>&#10;</xsl:text>
-  <xsl:text>.RS</xsl:text>
+  <xsl:text>&#x2302;RS</xsl:text>
   <xsl:if test="not($list-indent = '')">
     <xsl:text> </xsl:text>
     <xsl:value-of select="$list-indent"/>
   <xsl:text>'</xsl:text>
   </xsl:if>
   <xsl:apply-templates/>
-  <xsl:text>.RE&#10;</xsl:text>
+  <xsl:text>&#x2302;RE&#10;</xsl:text>
 </xsl:template>
 
 <xsl:template match="orderedlist/listitem|procedure/step">
   <xsl:text>&#10;</xsl:text>
-  <xsl:text>.RS</xsl:text>
+  <xsl:text>&#x2302;RS</xsl:text>
   <xsl:if test="not($list-indent = '')">
     <xsl:text> </xsl:text>
     <xsl:value-of select="$list-indent"/>
   <xsl:text>'</xsl:text>
   </xsl:if>
   <xsl:apply-templates/>
-  <xsl:text>.RE&#10;</xsl:text>
+  <xsl:text>&#x2302;RE&#10;</xsl:text>
   <xsl:text>&#10;</xsl:text>
 </xsl:template>
 
 <xsl:template match="itemizedlist|orderedlist|procedure">
   <xsl:if test="title">
-    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:text>&#x2302;PP&#10;</xsl:text>
     <xsl:apply-templates mode="bold" select="title"/>
     <xsl:text>&#10;</xsl:text>
   </xsl:if>
   <!-- * it, within the same para, then add a blank line and move -->
   <!-- * the left margin back to where it was -->
   <xsl:if test="parent::para and following-sibling::node()">
-    <xsl:text>.sp&#10;</xsl:text>
-    <xsl:text>.RE&#10;</xsl:text>
+    <xsl:text>&#x2302;sp&#10;</xsl:text>
+    <xsl:text>&#x2302;RE&#10;</xsl:text>
   </xsl:if>
 </xsl:template>
 
                     orderedlist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
                      procedure[ancestor::listitem or ancestor::step or ancestor::glossdef]">
   <xsl:if test="title">
-    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:text>&#x2302;PP&#10;</xsl:text>
     <xsl:apply-templates mode="bold" select="title"/>
     <xsl:text>&#10;</xsl:text>
   </xsl:if>
                 parent::para[following-sibling::node()] or
                 parent::simpara[following-sibling::node()] or
                 parent::remark[following-sibling::node()]">
-    <xsl:text>.IP ""</xsl:text> 
+    <xsl:text>&#x2302;IP ""</xsl:text> 
     <xsl:if test="not($list-indent = '')">
       <xsl:text> </xsl:text>
       <xsl:value-of select="$list-indent"/>
 <!-- * list (ignoring the values of the type and columns attributes) -->
 <xsl:template match="simplelist">
   <xsl:for-each select="member">
-    <xsl:text>.IP ""</xsl:text> 
+    <xsl:text>&#x2302;IP ""</xsl:text> 
     <xsl:if test="not($list-indent = '')">
       <xsl:text> </xsl:text>
       <xsl:value-of select="$list-indent"/>
 <!-- * is no option for outputting it in manpages in "list" form. -->
 <xsl:template match="segmentedlist">
   <xsl:if test="title">
-    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:text>&#x2302;PP&#10;</xsl:text>
     <xsl:apply-templates mode="bold" select="title"/>
     <xsl:text>&#10;</xsl:text>
   </xsl:if>
-  <xsl:text>.\" line length increase to cope w/ tbl weirdness&#10;</xsl:text>
-  <xsl:text>.ll +(\n(LLu * 62u / 100u)&#10;</xsl:text>
+  <xsl:text>&#x2302;\" line length increase to cope w/ tbl weirdness&#10;</xsl:text>
+  <xsl:text>&#x2302;ll +(\n(LLu * 62u / 100u)&#10;</xsl:text>
   <!-- * .TS = "Table Start" -->
-  <xsl:text>.TS&#10;</xsl:text>
+  <xsl:text>&#x2302;TS&#10;</xsl:text>
     <!-- * first output the table "format" spec, which tells tbl(1) how -->
     <!-- * how to format each row and column. -->
   <xsl:for-each select=".//segtitle">
   </xsl:choose>
   <xsl:apply-templates/>
   <!-- * .TE = "Table End" -->
-  <xsl:text>.TE&#10;</xsl:text>
-  <xsl:text>.\" line length decrease back to previous value&#10;</xsl:text>
-  <xsl:text>.ll -(\n(LLu * 62u / 100u)&#10;</xsl:text>
+  <xsl:text>&#x2302;TE&#10;</xsl:text>
+  <xsl:text>&#x2302;\" line length decrease back to previous value&#10;</xsl:text>
+  <xsl:text>&#x2302;ll -(\n(LLu * 62u / 100u)&#10;</xsl:text>
   <!-- * put a blank line of space below the table -->
-  <xsl:text>.sp&#10;</xsl:text>
+  <xsl:text>&#x2302;sp&#10;</xsl:text>
 </xsl:template>
 
 <xsl:template match="segmentedlist/segtitle" mode="table-title">
index c3cc201d997c1bc83872196e5077e6264fd1db67..cc3f6a1b5a609280bdb3075993670e137c19d6e4 100644 (file)
@@ -169,19 +169,19 @@ db:manvolnum
     <xsl:param name="title"/>
     <xsl:param name="manual"/>
     <xsl:param name="source"/>
-    <xsl:text>.\"     Title: </xsl:text>
+    <xsl:text>&#x2302;\"     Title: </xsl:text>
     <xsl:value-of select="$title"/>
     <xsl:text>&#10;</xsl:text>
-    <xsl:text>.\"    Author: </xsl:text>
+    <xsl:text>&#x2302;\"    Author: </xsl:text>
       <xsl:call-template name="make.roff.metadata.author">
         <xsl:with-param name="info" select="$info"/>
       </xsl:call-template>
     <xsl:text>&#10;</xsl:text>
-    <xsl:text>.\" Generator: DocBook XSL Stylesheets v</xsl:text>
+    <xsl:text>&#x2302;\" Generator: DocBook XSL Stylesheets v</xsl:text>
     <xsl:value-of select="$VERSION"/>
     <xsl:text> &lt;http://docbook.sf.net/></xsl:text>
     <xsl:text>&#10;</xsl:text>
-    <xsl:text>.\"      Date: </xsl:text>
+    <xsl:text>&#x2302;\"      Date: </xsl:text>
       <xsl:call-template name="string.subst">
         <!-- * replace hyphens in date with dots -->
         <xsl:with-param name="string" select="$date"/>
@@ -189,13 +189,13 @@ db:manvolnum
         <xsl:with-param name="replacement" select="'.'"/>
       </xsl:call-template>
     <xsl:text>&#10;</xsl:text>
-    <xsl:text>.\"    Manual: </xsl:text>
+    <xsl:text>&#x2302;\"    Manual: </xsl:text>
     <xsl:value-of select="$manual"/>
     <xsl:text>&#10;</xsl:text>
-    <xsl:text>.\"    Source: </xsl:text>
+    <xsl:text>&#x2302;\"    Source: </xsl:text>
     <xsl:value-of select="$source"/>
     <xsl:text>&#10;</xsl:text>
-    <xsl:text>.\"</xsl:text>
+    <xsl:text>&#x2302;\"</xsl:text>
     <xsl:text>&#10;</xsl:text>
   </xsl:template>
 
@@ -244,7 +244,7 @@ db:manvolnum
     <!-- * is", unchanged from the DocBook source; and DTD-based -->
     <!-- * validation does not provide a way to constrain them to be -->
     <!-- * "space free" -->
-    <xsl:text>.TH "</xsl:text>
+    <xsl:text>&#x2302;TH "</xsl:text>
     <xsl:call-template name="string.upper">
       <xsl:with-param name="string">
         <xsl:choose>
@@ -306,32 +306,32 @@ db:manvolnum
     <!-- * If the value of man.hypenate is zero (the default), then -->
     <!-- * disable hyphenation (".nh" = "no hyphenation") -->
     <xsl:if test="$man.hyphenate = 0">
-      <xsl:text>.\" disable hyphenation&#10;</xsl:text>
-      <xsl:text>.nh&#10;</xsl:text>
+      <xsl:text>&#x2302;\" disable hyphenation&#10;</xsl:text>
+      <xsl:text>&#x2302;nh&#10;</xsl:text>
     </xsl:if>
     <!-- * If the value of man.justify is zero (the default), then -->
     <!-- * disable justification (".ad l" means "adjust to left only") -->
     <xsl:if test="$man.justify = 0">
-      <xsl:text>.\" disable justification</xsl:text>
+      <xsl:text>&#x2302;\" disable justification</xsl:text>
       <xsl:text> (adjust text to left margin only)&#10;</xsl:text>
-      <xsl:text>.ad l&#10;</xsl:text>
+      <xsl:text>&#x2302;ad l&#10;</xsl:text>
     </xsl:if>
     <xsl:if test="not($man.indent.refsect = 0)">
-      <xsl:text>.\" store initial "default indentation value"&#10;</xsl:text>
-      <xsl:text>.nr zq \n(IN&#10;</xsl:text>
-      <xsl:text>.\" adjust default indentation&#10;</xsl:text>
-      <xsl:text>.nr IN </xsl:text>
+      <xsl:text>&#x2302;\" store initial "default indentation value"&#10;</xsl:text>
+      <xsl:text>&#x2302;nr zq \n(IN&#10;</xsl:text>
+      <xsl:text>&#x2302;\" adjust default indentation&#10;</xsl:text>
+      <xsl:text>&#x2302;nr IN </xsl:text>
       <xsl:value-of select="$man.indent.width"/>
       <xsl:text>&#10;</xsl:text>
-      <xsl:text>.\" adjust indentation of SS headings&#10;</xsl:text>
-      <xsl:text>.nr SN \n(IN&#10;</xsl:text>
+      <xsl:text>&#x2302;\" adjust indentation of SS headings&#10;</xsl:text>
+      <xsl:text>&#x2302;nr SN \n(IN&#10;</xsl:text>
     </xsl:if>
     <!-- * Unless the value of man.break.after.slash is zero (the -->
     <!-- * default), tell groff that it is OK to break a line -->
     <!-- * after a slash when needed. -->
     <xsl:if test="$man.break.after.slash != 0">
-      <xsl:text>.\" enable line breaks after slashes&#10;</xsl:text>
-      <xsl:text>.cflags 4 /&#10;</xsl:text>
+      <xsl:text>&#x2302;\" enable line breaks after slashes&#10;</xsl:text>
+      <xsl:text>&#x2302;cflags 4 /&#10;</xsl:text>
     </xsl:if>
   </xsl:template>
 
index 3634e79a5b2f3ccc6ac3b3a87f3720b8b2ff99b8..a1a25373a1441c85f4c9485df94b671490c6f12b 100644 (file)
       <xsl:when test="preceding-sibling::refnamediv">
         <!-- * No title on secondary refnamedivs! -->
         <!-- * Just put a single line break instead -->
-        <xsl:text>.br&#10;</xsl:text>
+        <xsl:text>&#x2302;br&#10;</xsl:text>
       </xsl:when>
       <xsl:otherwise>
         <xsl:call-template name="mark.subheading"/>
-        <xsl:text>.SH "</xsl:text>
+        <xsl:text>&#x2302;SH "</xsl:text>
         <xsl:apply-templates select="." mode="title.markup"/>
         <xsl:text>"</xsl:text>
         <xsl:text>&#10;</xsl:text>
@@ -65,7 +65,7 @@
 
   <xsl:template match="refsynopsisdiv">
     <xsl:call-template name="mark.subheading"/>
-    <xsl:text>.SH "</xsl:text>
+    <xsl:text>&#x2302;SH "</xsl:text>
     <xsl:apply-templates select="." mode="title.markup"/>
     <xsl:text>"&#10;</xsl:text>
     <xsl:call-template name="mark.subheading"/>
@@ -77,7 +77,7 @@
       <xsl:apply-templates select="." mode="title.markup"/>
     </xsl:variable>
     <xsl:call-template name="mark.subheading"/>
-    <xsl:text>.SH "</xsl:text>
+    <xsl:text>&#x2302;SH "</xsl:text>
     <xsl:value-of select="normalize-space($title)"/>
     <xsl:text>"&#10;</xsl:text>
     <xsl:call-template name="mark.subheading"/>
@@ -94,7 +94,7 @@
                   |title)[1]/node()"/>
       
     </xsl:variable>
-    <xsl:text>.SS "</xsl:text>
+    <xsl:text>&#x2302;SS "</xsl:text>
     <xsl:value-of select="normalize-space($title)"/>
     <xsl:text>"&#10;</xsl:text>
     <xsl:call-template name="mark.subheading"/>
       <!-- * If default-indentation adjustment is on, then indent the -->
       <!-- * child content of this Refsect2 -->
       <xsl:when test="not($man.indent.refsect = 0)">
-        <xsl:text>.RS&#10;</xsl:text>
+        <xsl:text>&#x2302;RS&#10;</xsl:text>
         <xsl:apply-templates/>
-        <xsl:text>.RE&#10;</xsl:text>
+        <xsl:text>&#x2302;RE&#10;</xsl:text>
       </xsl:when>
       <xsl:otherwise>
         <!-- * If default-indentation adjustment is on, then do not -->
       <!-- * child content of this Refsect3 or Refsection. -->
       <xsl:when test="not($man.indent.refsect != 0)">
         <xsl:call-template name="nested-section-title"/>
-        <xsl:text>.RS&#10;</xsl:text>
+        <xsl:text>&#x2302;RS&#10;</xsl:text>
         <xsl:apply-templates/>
-        <xsl:text>.RE&#10;</xsl:text>
+        <xsl:text>&#x2302;RE&#10;</xsl:text>
       </xsl:when>
       <xsl:otherwise>
         <!-- * If default-indentation adjustment is on, then do not -->
         <!-- * actually means the title is indented by the value of -->
         <!-- * the SN register, which appears by default to be -->
         <!-- * about half of the default indentation value -->
-        <xsl:text>.ti (\n(SNu * 5u / 3u)&#10;</xsl:text>
+        <xsl:text>&#x2302;ti (\n(SNu * 5u / 3u)&#10;</xsl:text>
         <xsl:call-template name="nested-section-title"/>
         <xsl:apply-templates/>
       </xsl:otherwise>
       </xsl:if>
     </xsl:variable>
     <xsl:call-template name="nested-section-title"/>
-    <xsl:text>.RS (\n(SNu)&#10;</xsl:text>
+    <xsl:text>&#x2302;RS (\n(SNu)&#10;</xsl:text>
     <xsl:apply-templates/>
-    <xsl:text>.RE&#10;</xsl:text>
+    <xsl:text>&#x2302;RE&#10;</xsl:text>
   </xsl:template>
 
   <!-- ==================================================================== -->
index 8c9e30547a72e946147e871063fe7e6975ff8c47..9fc95c19a144b446eff662a4ad2846048c0faa79 100644 (file)
@@ -50,9 +50,9 @@
   <!-- * up one line vertically to negate the line of vertical space -->
   <!-- * that's added by the .HP macro -->
   <xsl:if test="preceding-sibling::*[1][self::synopfragment]">
-    <xsl:text>.sp -1n&#10;</xsl:text>
+    <xsl:text>&#x2302;sp -1n&#10;</xsl:text>
   </xsl:if>
-  <xsl:text>.HP </xsl:text>
+  <xsl:text>&#x2302;HP </xsl:text>
   <!-- * For each Synopfragment, make a hanging paragraph, with the -->
   <!-- * indent calculated from the length of the generated number -->
   <!-- * used as a reference + pluse 3 characters (for the open and -->
 
 <xsl:template match="sbr">
   <xsl:text>&#10;</xsl:text>
-  <xsl:text>.br&#10;</xsl:text>
+  <xsl:text>&#x2302;br&#10;</xsl:text>
 </xsl:template>
 
 <xsl:template match="cmdsynopsis">
   <!-- * if justification is enabled by default, turn it off temporarily -->
   <xsl:if test="$man.justify != 0">
-    <xsl:text>.ad l&#10;</xsl:text>
+    <xsl:text>&#x2302;ad l&#10;</xsl:text>
   </xsl:if>
   <!-- * if hyphenation is enabled by default, turn it off temporarily -->
   <xsl:if test="$man.hyphenate != 0">
-    <xsl:text>.hy 0&#10;</xsl:text>
+    <xsl:text>&#x2302;hy 0&#10;</xsl:text>
   </xsl:if>
-  <xsl:text>.HP </xsl:text>
+  <xsl:text>&#x2302;HP </xsl:text>
   <xsl:value-of select="string-length (normalize-space (command)) + 1"/>
   <xsl:text>&#10;</xsl:text>
   <xsl:apply-templates/>
   <xsl:text>&#10;</xsl:text>
   <!-- * if justification is enabled by default, turn it back on -->
   <xsl:if test="$man.justify != 0">
-    <xsl:text>.ad&#10;</xsl:text>
+    <xsl:text>&#x2302;ad&#10;</xsl:text>
   </xsl:if>
   <!-- * if hyphenation is enabled by default, turn it back on -->
   <xsl:if test="$man.hyphenate != 0">
-    <xsl:text>.hy&#10;</xsl:text>
+    <xsl:text>&#x2302;hy&#10;</xsl:text>
   </xsl:if>
 </xsl:template>
 
 <xsl:template match="funcsynopsis">
   <!-- * if justification is enabled by default, turn it off temporarily -->
   <xsl:if test="$man.justify != 0">
-    <xsl:text>.ad l&#10;</xsl:text>
+    <xsl:text>&#x2302;ad l&#10;</xsl:text>
   </xsl:if>
   <!-- * if hyphenation is enabled by default, turn it off temporarily -->
   <xsl:if test="$man.hyphenate != 0">
-    <xsl:text>.hy 0&#10;</xsl:text>
+    <xsl:text>&#x2302;hy 0&#10;</xsl:text>
   </xsl:if>
   <xsl:apply-templates/>
   <!-- * if justification is enabled by default, turn it back on -->
   <xsl:if test="$man.justify != 0">
-    <xsl:text>.ad&#10;</xsl:text>
+    <xsl:text>&#x2302;ad&#10;</xsl:text>
   </xsl:if>
   <!-- * if hyphenation is enabled by default, turn it back on -->
   <xsl:if test="$man.hyphenate != 0">
-    <xsl:text>.hy&#10;</xsl:text>
+    <xsl:text>&#x2302;hy&#10;</xsl:text>
   </xsl:if>
 </xsl:template>
 
   <xsl:variable name="funcprototype">
     <xsl:apply-templates select="funcdef"/>
   </xsl:variable>
-  <xsl:text>.HP </xsl:text>
+  <xsl:text>&#x2302;HP </xsl:text>
   <!-- * Hang Paragraph by length of string value of <funcdef> + 1 -->
   <!-- * (because funcdef is always followed by one open paren char) -->
   <xsl:value-of select="string-length (normalize-space ($funcprototype.string.value)) + 1"/>
index 30cc5bd54515bb8a8b14a3c02fb7c02289358818..565962a67d5c95da81d31f097201ea9de65fa8b0 100644 (file)
       <!-- *   Output table title                                           -->
       <!-- * ============================================================== -->
       <xsl:if test="$title != '' or parent::td">
-        <xsl:text>.PP&#10;</xsl:text>
+        <xsl:text>&#x2302;PP&#10;</xsl:text>
         <xsl:text>.</xsl:text>
         <xsl:value-of select="$tbl.font.title"/>
         <xsl:text> </xsl:text>
         </xsl:if>
         <xsl:value-of select="normalize-space($title)"/>
         <xsl:text>&#10;</xsl:text>
-        <xsl:text>.sp -1n&#10;</xsl:text>
+        <xsl:text>&#x2302;sp -1n&#10;</xsl:text>
       </xsl:if>
       
       <!-- * mark the start of the table -->
       <!-- * "TS" = "table start" -->
-      <xsl:text>.TS</xsl:text>
+      <xsl:text>&#x2302;TS</xsl:text>
       <xsl:if test="thead and $tbl.running.header.from.thead">
         <!-- * H = "has header" -->
         <xsl:text> H</xsl:text>
         <xsl:choose>
           <xsl:when test="$tbl.running.header.from.thead">
             <!-- * "TH" = "table header end" -->
-            <xsl:text>.TH&#10;</xsl:text>
+            <xsl:text>&#x2302;TH&#10;</xsl:text>
           </xsl:when>
           <xsl:otherwise>
             <!-- * "T&" = "table continuation" and is meant just as a kind -->
             <!-- * rows. It's necessary to output it here because the "TH" -->
             <!-- * macro is not being output, so there's otherwise no way -->
             <!-- * for tbl(1) to know we have the table "sectioned". -->
-            <xsl:text>.T&amp;&#10;</xsl:text>
+            <xsl:text>&#x2302;T&amp;&#10;</xsl:text>
           </xsl:otherwise>
         </xsl:choose>
       </xsl:if>
       <!-- * mark the end of the table -->
       <xsl:text>&#10;</xsl:text>
       <!-- * .TE = "Table End" -->
-      <xsl:text>.TE&#10;</xsl:text>
+      <xsl:text>&#x2302;TE&#10;</xsl:text>
       <!-- * put a blank line of space below the table -->
-      <xsl:text>.sp&#10;</xsl:text>
+      <xsl:text>&#x2302;sp&#10;</xsl:text>
     </xsl:for-each>
   </xsl:template>
 
                   select=".//tgroup//footnote"/>
     <xsl:value-of select="$man.table.footnotes.divider"/>
     <xsl:text>&#10;</xsl:text>
-    <xsl:text>.br&#10;</xsl:text>
+    <xsl:text>&#x2302;br&#10;</xsl:text>
     <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
     <xsl:apply-templates select="*[position() &gt; 1]"/>
   </xsl:template>
index 418383a4a02614619e5e979b90945f2c49a80a2d..39409d4c27d905a906686f0880d3acdbb85a4c93 100644 (file)
   <xsl:template name="nested-section-title">
     <!-- * The next few lines are some arcane roff code to control line -->
     <!-- * spacing after headings. -->
-    <xsl:text>.sp&#10;</xsl:text>
-    <xsl:text>.it 1 an-trap&#10;</xsl:text>
-    <xsl:text>.nr an-no-space-flag 1&#10;</xsl:text>
-    <xsl:text>.nr an-break-flag 1&#10;</xsl:text>
-    <xsl:text>.br&#10;</xsl:text>
+    <xsl:text>&#x2302;sp&#10;</xsl:text>
+    <xsl:text>&#x2302;it 1 an-trap&#10;</xsl:text>
+    <xsl:text>&#x2302;nr an-no-space-flag 1&#10;</xsl:text>
+    <xsl:text>&#x2302;nr an-break-flag 1&#10;</xsl:text>
+    <xsl:text>&#x2302;br&#10;</xsl:text>
     <!-- * make title wrapper so that we can use mode="bold" template to -->
     <!-- * apply character formatting to it -->
     <xsl:variable name="title.wrapper">
         <xsl:when test="self::address|self::literallayout|self::programlisting|
                         self::screen|self::synopsis">
           <xsl:text>&#10;</xsl:text>
-          <xsl:text>.sp&#10;</xsl:text>
+          <xsl:text>&#x2302;sp&#10;</xsl:text>
           <xsl:call-template name="mark.up.block.start"/>
           <xsl:apply-templates select="."/>
         </xsl:when>
                       preceding-sibling::note|
                       preceding-sibling::tip|
                       preceding-sibling::warning)">
-          <xsl:text>.RS</xsl:text>
+          <xsl:text>&#x2302;RS</xsl:text>
           <xsl:if test="not($list-indent = '')">
             <xsl:text> </xsl:text>
             <xsl:value-of select="$list-indent"/>
                     tip|
                     warning">
         <xsl:text>&#10;</xsl:text>
-        <xsl:text>.RE</xsl:text>
+        <xsl:text>&#x2302;RE</xsl:text>
       <xsl:text>&#10;</xsl:text>
       </xsl:if>
     </xsl:if>
   <!-- * in roff source (just to make things easier to read). -->
   <xsl:template name="mark.subheading">
     <xsl:if test="$man.subheading.divider.enabled != 0">
-      <xsl:text>.\" </xsl:text>
+      <xsl:text>&#x2302;\" </xsl:text>
       <xsl:value-of select="$man.subheading.divider"/>
       <xsl:text>&#10;</xsl:text>
     </xsl:if>
index 93771437aeb1eed7289ce0da0dc406fdb8a2bda5..fa501b6da4a2720e8fae4d7d4a7a9aba3b764409 100644 (file)
 <src:fragment id='man.string.subst.map.frag'>
 <xsl:param name="man.string.subst.map">
   <substitution oldstring="\" newstring="\\"/>
+  <!-- * escape all dots (because roff interprets them as newlines if they -->
+  <!-- * occur at the beginning of a line -->
+  <substitution oldstring="." newstring="\."/>
+  <!-- * the stylesheets use U+2302 internally to represent the start of a -->
+  <!-- * roff request; for output, we need to convert that internal -->
+  <!-- * representation to the character that roff actually uses to mark -->
+  <!-- * the start of requests, which is a dot -->
+  <substitution oldstring="&#x2302;" newstring="."/>
   <!-- * now, we need to restore single-backslashes in all roff -->
-  <!-- * requests (because the substitution above doubled them) -->
+  <!-- * requests (because slash substitution above doubled them) -->
   <substitution oldstring="\\fB" newstring="\fB"/>
   <substitution oldstring="\\fI" newstring="\fI"/>
   <substitution oldstring="\\fR" newstring="\fR"/>
   <substitution oldstring="\\n"  newstring="\n"/>
   <substitution oldstring="\\h"  newstring="\h"/>
   <!-- * requests in .SH sectsions output from Refsect1-level source -->
-  <!-- * end up getting capitalized... -->
+  <!-- * end up getting capitalized; the following changes fix that -->
   <substitution oldstring="\\FB" newstring="\fB"/>
   <substitution oldstring="\\FI" newstring="\fI"/>
   <substitution oldstring="\\FR" newstring="\fR"/>
@@ -79,7 +87,6 @@
   <!-- * for certain reasons, the stylesheets add it before and after -->
   <!-- * every Parameter in Funcprototype output -->
   <substitution oldstring="&#x2008;" newstring=" "/>
-  <substitution oldstring="&#x2302;" newstring="&#09;"/>
   <!-- * -->
   <!-- * Now deal with some other characters that are added by the -->
   <!-- * stylesheets during processing. -->
index 21c67a5b54ff8fd9c8b3eb189af36e94c4c7f204..343907c4eb2973b7803560fffb06a402280cce3f 100644 (file)
   </xsl:template>
 
   <xsl:template match="pre">
-    <xsl:element name="xsl:text">.sp&#10;</xsl:element>
-    <xsl:element name="xsl:text">.nf&#10;</xsl:element>
+    <xsl:element name="xsl:text">&#x2302;sp&#10;</xsl:element>
+    <xsl:element name="xsl:text">&#x2302;nf&#10;</xsl:element>
     <xsl:copy>
       <xsl:apply-templates select="@* | node()"/>
     </xsl:copy>
-    <xsl:element name="xsl:text">&#10;.fi&#10;</xsl:element>
+    <xsl:element name="xsl:text">&#10;</xsl:element>
+    <xsl:element name="xsl:text">&#x2302;fi&#10;</xsl:element>
   </xsl:template>
 
 </xsl:stylesheet>