[PATCH 01/17] XSLT: Better error messages in measure_conversion.xsl

andrew-libreoffice.org at pileofstuff.org andrew-libreoffice.org at pileofstuff.org
Thu Aug 14 14:53:41 PDT 2014


From: Andrew Sayers <andrew-libreoffice.org at pileofstuff.org>

---
Hi LibreOffice,

Earlier this year I needed to do some work with HTML document export.  This
patchset represents the sundry improvements I made along the way.  The code has
been stable for a while now, so I've rebased it and sent it in.  I don't expect
to make any more changes at this point, Murphy notwithstanding.

Note: some of these patches deal with trailing spaces and mixed Windows/Unix
newlines.  To make the patches cleanly apply, I needed to do:

	git am -p0 --keep-cr patches/*

 filter/source/xslt/common/measure_conversion.xsl | 48 ++++++++++++++++++++----
 1 file changed, 40 insertions(+), 8 deletions(-)

diff --git filter/source/xslt/common/measure_conversion.xsl filter/source/xslt/common/measure_conversion.xsl
index 2828f4b..f808fa3 100644
--- filter/source/xslt/common/measure_conversion.xsl
+++ filter/source/xslt/common/measure_conversion.xsl
@@ -125,8 +125,12 @@
 			<xsl:when test="contains($value, 'px')">
 				<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') * $pixel-in-mm)) div $rounding-factor"/>
 			</xsl:when>
+			<xsl:when test="$value = ''">
+				<xsl:message>measure_conversion.xsl: Empty string passed for unit when when converting to to 'mm' - passing unmodified value back</xsl:message>
+				<xsl:value-of select="$value"/>
+			</xsl:when>
 			<xsl:otherwise>
-				<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'mm'!</xsl:message>
+				<xsl:message>unrecognised value '<xsl:value-of select="string(number($value))"/>' passed to 'convert2mm' - please update measure_conversion.xsl to handle this unit</xsl:message>
 				<xsl:value-of select="$value"/>
 			</xsl:otherwise>
 		</xsl:choose>
@@ -160,8 +164,12 @@
 			<xsl:when test="contains($value, 'px')">
 				<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $centimeter-in-mm * $pixel-in-mm)) div $rounding-factor"/>
 			</xsl:when>
+			<xsl:when test="$value = ''">
+				<xsl:message>measure_conversion.xsl: Empty string passed for unit when when converting to to 'cm' - passing unmodified value back</xsl:message>
+				<xsl:value-of select="$value"/>
+			</xsl:when>
 			<xsl:otherwise>
-				<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'cm'!</xsl:message>
+				<xsl:message>unrecognised value '<xsl:value-of select="string(number($value))"/>' passed to 'convert2cm' - please update measure_conversion.xsl to handle this unit</xsl:message>
 				<xsl:value-of select="$value"/>
 			</xsl:otherwise>
 		</xsl:choose>
@@ -195,8 +203,12 @@
 			<xsl:when test="contains($value, 'px')">
 				<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $inch-in-mm * $pixel-in-mm)) div $rounding-factor"/>
 			</xsl:when>
+			<xsl:when test="$value = ''">
+				<xsl:message>measure_conversion.xsl: Empty string passed for unit when when converting to to 'in' - passing unmodified value back</xsl:message>
+				<xsl:value-of select="$value"/>
+			</xsl:when>
 			<xsl:otherwise>
-				<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'in'!</xsl:message>
+				<xsl:message>unrecognised value '<xsl:value-of select="string(number($value))"/>' passed to 'convert2in' - please update measure_conversion.xsl to handle this unit</xsl:message>
 				<xsl:value-of select="$value"/>
 			</xsl:otherwise>
 		</xsl:choose>
@@ -230,8 +242,12 @@
 			<xsl:when test="contains($value, 'px')">
 				<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $didot-point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
 			</xsl:when>
+			<xsl:when test="$value = ''">
+				<xsl:message>measure_conversion.xsl: Empty string passed for unit when when converting to to 'dpt' - passing unmodified value back</xsl:message>
+				<xsl:value-of select="$value"/>
+			</xsl:when>
 			<xsl:otherwise>
-				<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'dpt'!</xsl:message>
+				<xsl:message>unrecognised value '<xsl:value-of select="string(number($value))"/>' passed to 'convert2dpt' - please update measure_conversion.xsl to handle this unit</xsl:message>
 				<xsl:value-of select="$value"/>
 			</xsl:otherwise>
 		</xsl:choose>
@@ -265,8 +281,12 @@
 			<xsl:when test="contains($value, 'px')">
 				<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $pica-in-mm * $pixel-in-mm)) div $rounding-factor"/>
 			</xsl:when>
+			<xsl:when test="$value = ''">
+				<xsl:message>measure_conversion.xsl: Empty string passed for unit when when converting to to 'pica' - passing unmodified value back</xsl:message>
+				<xsl:value-of select="$value"/>
+			</xsl:when>
 			<xsl:otherwise>
-				<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pica'!</xsl:message>
+				<xsl:message>unrecognised value '<xsl:value-of select="string(number($value))"/>' passed to 'convert2pica' - please update measure_conversion.xsl to handle this unit</xsl:message>
 				<xsl:value-of select="$value"/>
 			</xsl:otherwise>
 		</xsl:choose>
@@ -300,8 +320,12 @@
 			<xsl:when test="contains($value, 'px')">
 				<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
 			</xsl:when>
+			<xsl:when test="$value = ''">
+				<xsl:message>measure_conversion.xsl: Empty string passed for unit when when converting to to 'pt' - passing unmodified value back</xsl:message>
+				<xsl:value-of select="$value"/>
+			</xsl:when>
 			<xsl:otherwise>
-				<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pt'!</xsl:message>
+				<xsl:message>unrecognised value '<xsl:value-of select="string(number($value))"/>' passed to 'convert2pt' - please update measure_conversion.xsl to handle this unit</xsl:message>
 				<xsl:value-of select="$value"/>
 			</xsl:otherwise>
 		</xsl:choose>
@@ -335,8 +359,12 @@
 			<xsl:when test="contains($value, 'px')">
 				<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $twip-in-mm * $pixel-in-mm)) div $rounding-factor"/>
 			</xsl:when>
+			<xsl:when test="$value = ''">
+				<xsl:message>measure_conversion.xsl: Empty string passed for unit when when converting to to 'wip' - passing unmodified value back</xsl:message>
+				<xsl:value-of select="$value"/>
+			</xsl:when>
 			<xsl:otherwise>
-				<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'twip'!</xsl:message>
+				<xsl:message>unrecognised value '<xsl:value-of select="string(number($value))"/>' passed to 'convert2twip' - please update measure_conversion.xsl to handle this unit</xsl:message>
 				<xsl:value-of select="$value"/>
 			</xsl:otherwise>
 		</xsl:choose>
@@ -369,8 +397,12 @@
 			<xsl:when test="contains($value, 'px')">
 				<xsl:value-of select="$value"/>
 			</xsl:when>
+			<xsl:when test="$value = ''">
+				<xsl:message>measure_conversion.xsl: Empty string passed for unit when when converting to to 'px' - passing unmodified value back</xsl:message>
+				<xsl:value-of select="$value"/>
+			</xsl:when>
 			<xsl:otherwise>
-				<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message>
+				<xsl:message>unrecognised value '<xsl:value-of select="string(number($value))"/>' passed to 'convert2px' - please update measure_conversion.xsl to handle this unit</xsl:message>
 				<xsl:value-of select="$value"/>
 			</xsl:otherwise>
 		</xsl:choose>
-- 
1.8.5.1



More information about the LibreOffice mailing list