]> granicus.if.org Git - docbook-dsssl/commitdiff
Fix bug #1787167 incorrect hot text for some olinks.
authorBob Stayton <bobs@sagehill.net>
Sat, 7 Mar 2009 18:07:39 +0000 (18:07 +0000)
committerBob Stayton <bobs@sagehill.net>
Sat, 7 Mar 2009 18:07:39 +0000 (18:07 +0000)
xsl/common/olink.xsl

index 91849263af0c6fd90b1e6a960e3b957c3f2e7712..d597a9389e528851de5a7bb1ff6e1cb61fe15ba1 100644 (file)
                                      $targetptr.att, '/',
                                      $target.lang)"/>
         <xsl:choose>
-          <xsl:when test="key('targetptr-key', $key)/@href != ''">
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
             <xsl:value-of select="$key"/>
             <xsl:if test="$olink.debug != 0">
               <xsl:message>Olink debug: CaseA matched.</xsl:message>
                                      $targetptr.att, '/',
                                      $target.lang)"/>
         <xsl:choose>
-          <xsl:when test="key('targetptr-key', $key)/@href != ''">
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
             <xsl:value-of select="$key"/>
             <xsl:if test="$olink.debug != 0">
               <xsl:message>Olink debug: CaseB matched.</xsl:message>
                                      $targetptr.att, '/',
                                      $target.lang)"/>
         <xsl:choose>
-          <xsl:when test="key('targetptr-key', $key)/@href != ''">
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
             <xsl:value-of select="$key"/>
             <xsl:if test="$olink.debug != 0">
               <xsl:message>Olink debug: CaseC matched.</xsl:message>
                                      $targetptr.att, '/',
                                      $target.lang)"/>
         <xsl:choose>
-          <xsl:when test="key('targetptr-key', $key)/@href != ''">
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
             <xsl:value-of select="$key"/>
             <xsl:if test="$olink.debug != 0">
               <xsl:message>Olink debug: CaseD matched.</xsl:message>
                                      $rootid, '/',
                                      $target.lang)"/>
         <xsl:choose>
-          <xsl:when test="key('targetptr-key', $key)/@href != ''">
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
             <xsl:value-of select="$key"/>
             <xsl:if test="$olink.debug != 0">
               <xsl:message>Olink debug: CaseE matched.</xsl:message>
                                      $rootid, '/',
                                      $target.lang)"/>
         <xsl:choose>
-          <xsl:when test="key('targetptr-key', $key)/@href != ''">
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
             <xsl:value-of select="$key"/>
             <xsl:if test="$olink.debug != 0">
               <xsl:message>Olink debug: CaseF matched.</xsl:message>
   <xsl:if test="$olink.key != ''">
     <xsl:variable name="target.href" >
       <xsl:for-each select="$target.database" >
-        <xsl:value-of select="key('targetptr-key', $olink.key)/@href" />
+        <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@href" />
       </xsl:for-each>
     </xsl:variable>
   
               <xsl:variable name="currentdoc.key" >
                 <xsl:for-each select="$target.database" >
                   <xsl:value-of select="key('targetdoc-key',
-                                        $current.docid)/@targetdoc" />
+                                        $current.docid)[1]/@targetdoc" />
                 </xsl:for-each>
               </xsl:variable>
               <xsl:choose>
                   <xsl:for-each select="$target.database" >
                     <xsl:call-template name="targetpath" >
                       <xsl:with-param name="dirnode" 
-                          select="key('targetdoc-key', $current.docid)/parent::dir"/>
+                          select="key('targetdoc-key', $current.docid)[1]/parent::dir"/>
                       <xsl:with-param name="targetdoc" select="$targetdoc"/>
                     </xsl:call-template>
                   </xsl:for-each >
           <!-- In either case, add baseuri from its document entry-->
           <xsl:variable name="docbaseuri">
             <xsl:for-each select="$target.database" >
-              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)[1]/@baseuri" />
             </xsl:for-each>
           </xsl:variable>
           <xsl:if test="$docbaseuri != ''" >
           <!-- Just use any baseuri from its document entry -->
           <xsl:variable name="docbaseuri">
             <xsl:for-each select="$target.database" >
-              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)[1]/@baseuri" />
             </xsl:for-each>
           </xsl:variable>
           <xsl:if test="$docbaseuri != ''" >
 
   <xsl:variable name="from.olink.href">
     <xsl:for-each select="$target.database" >
-      <xsl:value-of select="key('targetptr-key', $from.key)/@href" />
+      <xsl:value-of select="key('targetptr-key', $from.key)[1]/@href" />
     </xsl:for-each>
   </xsl:variable>
 
       <xsl:variable name="xref.text" >
         <xsl:for-each select="$target.database" >
           <xsl:copy-of 
-                  select="key('targetptr-key', $olink.key)/xreftext/node()" />
+                  select="key('targetptr-key', $olink.key)[1]/xreftext/node()" />
         </xsl:for-each>
       </xsl:variable>
 
       <xsl:variable name="xref.number" >
         <xsl:for-each select="$target.database" >
-          <xsl:value-of select="key('targetptr-key', $olink.key)/@number" />
+          <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@number" />
         </xsl:for-each>
       </xsl:variable>
 
       <xsl:variable name="target.elem" >
         <xsl:for-each select="$target.database" >
-          <xsl:value-of select="key('targetptr-key', $olink.key)/@element" />
+          <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@element" />
         </xsl:for-each>
       </xsl:variable>
 
         <xsl:variable name="candidate">
           <xsl:for-each select="$target.database" >
             <xsl:value-of 
-                      select="key('targetptr-key', $olink.key)/@lang" />
+                      select="key('targetptr-key', $olink.key)[1]/@lang" />
           </xsl:for-each>
         </xsl:variable>
         <xsl:choose>
             <xsl:with-param name="template" select="$template"/>
             <xsl:with-param name="title">
               <xsl:for-each select="$target.database" >
-                <xsl:value-of select="key('targetptr-key', $olink.key)/ttl" />
+                <xsl:value-of select="key('targetptr-key', $olink.key)[1]/ttl" />
               </xsl:for-each>
             </xsl:with-param>
             <xsl:with-param name="label">
               <xsl:for-each select="$target.database" >
                 <xsl:value-of 
-                        select="key('targetptr-key', $olink.key)/@number" />
+                        select="key('targetptr-key', $olink.key)[1]/@number" />
               </xsl:for-each>
             </xsl:with-param>
             <xsl:with-param name="pagenumber">
               <xsl:for-each select="$target.database" >
                 <xsl:value-of 
-                        select="key('targetptr-key', $olink.key)/@page" />
+                        select="key('targetptr-key', $olink.key)[1]/@page" />
               </xsl:for-each>
             </xsl:with-param>
             <xsl:with-param name="docname">
               <xsl:for-each select="$target.database" >
                 <xsl:value-of 
-                       select="key('targetdoc-key', $targetdoc)/div[1]/ttl" />
+                       select="key('targetdoc-key', $targetdoc)[1]/div[1]/ttl" />
               </xsl:for-each>
             </xsl:with-param>
           </xsl:call-template>
             <xsl:with-param name="template" select="$template"/>
             <xsl:with-param name="title">
               <xsl:for-each select="$target.database" >
-                <xsl:value-of select="key('targetptr-key', $olink.key)/ttl" />
+                <xsl:value-of select="key('targetptr-key', $olink.key)[1]/ttl" />
               </xsl:for-each>
             </xsl:with-param>
             <xsl:with-param name="label">
               <xsl:for-each select="$target.database" >
                 <xsl:value-of 
-                          select="key('targetptr-key', $olink.key)/@number" />
+                          select="key('targetptr-key', $olink.key)[1]/@number" />
               </xsl:for-each>
             </xsl:with-param>
           </xsl:call-template>
       <xsl:variable name="page-number">
         <xsl:for-each select="$target.database" >
           <xsl:value-of 
-                 select="key('targetptr-key', $olink.key)/@page" />
+                 select="key('targetptr-key', $olink.key)[1]/@page" />
         </xsl:for-each>
       </xsl:variable>
   
   <xsl:variable name="page">
     <xsl:for-each select="$target.database" >
       <xsl:value-of 
-             select="key('targetptr-key', $olink.key)/@page" />
+             select="key('targetptr-key', $olink.key)[1]/@page" />
     </xsl:for-each>
   </xsl:variable>
 
   <xsl:variable name="rootptr">
     <xsl:for-each select="$target.database" >
       <xsl:value-of 
-             select="key('targetdoc-key', $targetdoc)/div[1]/@targetptr" />
+             select="key('targetdoc-key', $targetdoc)[1]/div[1]/@targetptr" />
     </xsl:for-each>
   </xsl:variable>
 
   <xsl:variable name="docname">
     <xsl:for-each select="$target.database" >
       <xsl:value-of 
-             select="key('targetdoc-key', $targetdoc)/div[1]/ttl" />
+             select="key('targetdoc-key', $targetdoc)[1]/div[1]/ttl" />
     </xsl:for-each>
   </xsl:variable>