Package: xmlto
Version: 0.0.18-5
Severity: wishlist
Tags: patch

Hello,

The apt-ftparchive man page is generated from an XML document. To
translate this document, the French Tranlation Team translated the
original XML, and then generated the man page from this translated XML
document.

This worked nice when the man page was generated by a Franch developer
(with an fr_FR.ISO-8859-1 locale, I supppose). But the man page of the
package is not that nice because it was generated by a buildd, with a C
locale (I suppose): all accents are converted to character entities (e.g.
é), which renders the man page hardly readable. (see #327456)

The attached patch adds a --keep-encoding to xmlto, which disables the
convertion of the XML document to the locale charmap before the xsl
processing.

Thanks in advance,
-- 
Nekral
--- /usr/bin/xmlto.orig 2004-06-08 05:41:47.000000000 +0200
+++ /usr/bin/xmlto      2005-09-10 23:19:04.000000000 +0200
@@ -41,6 +41,9 @@
   --searchpath    colon-separated list of fallback directories
   --skip-validation
                   do not attempt to validate the input before processing
+  --keep-encoding 
+                  do not use the encoding of the current locale, use the
+                  one of the XML document
 
 Available FORMATs depend on the type of the XML file (which is
 determined automatically).
@@ -124,28 +127,6 @@
 </xsl:stylesheet>
 EOF
 
-# Magic encoding, based on locale
-if [ -x /usr/bin/locale ]
-then
-  charmap=$(locale charmap 2>/dev/null)
-
-  if [ -n "$charmap" ]
-  then
-    encodingmod=$(${MKTEMP} ${TMPDIR:-/tmp}/xmlto-xsl.XXXXXX)
-    CLEANFILES[$CLEANFILE_COUNT]="$encodingmod"
-    CLEANFILE_COUNT=$(($CLEANFILE_COUNT + 1))
-    cat << EOF > "$encodingmod"
-<?xml version='1.0'?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
-                version='1.0'>
-<xsl:param name="chunker.output.encoding" select="'$charmap'"/>
-</xsl:stylesheet>
-EOF
-    XSL_MODS[$XSL_MOD_COUNT]="$encodingmod"
-    XSL_MOD_COUNT=$(($XSL_MOD_COUNT + 1))
-  fi
-fi
-
 # Make verbosity level uniformly available to called scripts
 VERBOSE=0
 export VERBOSE
@@ -157,10 +138,11 @@
 XSLTOPTS="$XSLTOPTS --xinclude"
 
 SKIP_VALIDATION=0
+KEEP_ENCODING=0
 
 # Process any options
 ARGS=$(${GETOPT} \
-       --longoptions=help,version,extensions,searchpath:,skip-validation \
+       
--longoptions=help,version,extensions,searchpath:,skip-validation,keep-encoding 
\
        -n xmlto -- x:m:o:p:v "$@")
 [ $? != 0 ] && { usage; exit 1; }
 eval set -- "$ARGS"
@@ -226,6 +208,10 @@
        SKIP_VALIDATION=1
        shift
        ;;
+  --keep-encoding)
+       KEEP_ENCODING=1
+       shift
+       ;;
   --)
        shift
        break
@@ -239,6 +225,27 @@
   exit 1
 fi
 
+# Magic encoding, based on locale
+if [ "$KEEP_ENCODING" = "0" ] && [ -x /usr/bin/locale ]
+then
+  charmap=$(locale charmap 2>/dev/null)
+
+  if [ -n "$charmap" ]
+  then
+    encodingmod=$(${MKTEMP} ${TMPDIR:-/tmp}/xmlto-xsl.XXXXXX)
+    CLEANFILES[$CLEANFILE_COUNT]="$encodingmod"
+    CLEANFILE_COUNT=$(($CLEANFILE_COUNT + 1))
+    cat << EOF > "$encodingmod"
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+<xsl:param name="chunker.output.encoding" select="'$charmap'"/>
+</xsl:stylesheet>
+EOF
+    XSL_MODS[$XSL_MOD_COUNT]="$encodingmod"
+    XSL_MOD_COUNT=$(($XSL_MOD_COUNT + 1))
+  fi
+fi
 DEST_FORMAT="$1"
 case "$2" in
 /*) INPUT_FILE="$2" ;;

Reply via email to