]> granicus.if.org Git - docbook-dsssl/commitdiff
Refactor calls to getWidth() and getDepth() to work around XSLTC bugs
authorNorman Walsh <ndw@nwalsh.com>
Wed, 10 Jul 2002 10:20:12 +0000 (10:20 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Wed, 10 Jul 2002 10:20:12 +0000 (10:20 +0000)
xsl/html/graphics.xsl

index fb77a6c29672549f6319f33366870b8f9de4542c..24a3d63aeb547804168f2dd1a11158d006482239 100644 (file)
   </xsl:variable>
 
   <xsl:variable name="intrinsicwidth">
+    <!-- This funny compound test works around a bug in XSLTC -->
     <xsl:choose>
-      <xsl:when test="$use.extensions != 0 and function-available('simg:getWidth')">
-        <xsl:value-of select="simg:getWidth(simg:new($filename), $nominal.image.width)"/>
-      </xsl:when>
-      <xsl:when test="$use.extensions != 0 and function-available('ximg:getWidth')">
-        <xsl:value-of select="ximg:getWidth(ximg:new($filename), $nominal.image.width)"/>
+      <xsl:when test="$use.extensions != 0">
+        <xsl:choose>
+          <xsl:when test="function-available('simg:getWidth')">
+            <xsl:value-of select="simg:getWidth(simg:new($filename),
+                                                $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ximg:getWidth')">
+            <xsl:value-of select="ximg:getWidth(ximg:new($filename),
+                                                $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$nominal.image.width"/>
+          </xsl:otherwise>
+        </xsl:choose>
       </xsl:when>
       <xsl:otherwise>
         <xsl:value-of select="$nominal.image.width"/>
   </xsl:variable>
 
   <xsl:variable name="intrinsicdepth">
+    <!-- This funny compound test works around a bug in XSLTC -->
     <xsl:choose>
-      <xsl:when test="$use.extensions != 0 and function-available('simg:getDepth')">
-        <xsl:value-of select="simg:getDepth(simg:new($filename), $nominal.image.depth)"/>
-      </xsl:when>
-      <xsl:when test="$use.extensions != 0 and function-available('ximg:getDepth')">
-        <xsl:value-of select="ximg:getDepth(ximg:new($filename), $nominal.image.width)"/>
+      <xsl:when test="$use.extensions != 0">
+        <xsl:choose>
+          <xsl:when test="function-available('simg:getDepth')">
+            <xsl:value-of select="simg:getDepth(simg:new($filename),
+                                                $nominal.image.depth)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ximg:getDepth')">
+            <xsl:value-of select="ximg:getDepth(ximg:new($filename),
+                                                $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$nominal.image.depth"/>
+          </xsl:otherwise>
+        </xsl:choose>
       </xsl:when>
       <xsl:otherwise>
-        <xsl:value-of select="$nominal.image.depth"/>
+        <xsl:value-of select="$nominal.image.width"/>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:variable>