patch from Drazen Kacar to add a --encoding option fixes #443868 augment
authorDaniel Veillard <veillard@src.gnome.org>
Thu, 23 Aug 2007 12:20:49 +0000 (12:20 +0000)
committerDaniel Veillard <veillard@src.gnome.org>
Thu, 23 Aug 2007 12:20:49 +0000 (12:20 +0000)
* xsltproc/xsltproc.c: patch from Drazen Kacar to add a --encoding
  option fixes #443868
* doc/xsltproc.xml doc/xsltproc.1: augment and regenerate man page.
Daniel

svn path=/trunk/; revision=1438

ChangeLog
doc/xsltproc.1
doc/xsltproc.xml
xsltproc/xsltproc.c

index e03ba46..f9ae218 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu Aug 23 14:13:02 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+       * xsltproc/xsltproc.c: patch from Drazen Kacar to add a --encoding
+         option fixes #443868
+       * doc/xsltproc.xml doc/xsltproc.1: augment and regenerate man page.
+       
 Thu Aug 23 11:47:20 CEST 2007 Daniel Veillard <daniel@veillard.com>
 
        * libexslt/date.c: apply patch from Björn Wiberg fixing build on AIX
index 0d56429..383f073 100644 (file)
@@ -1,11 +1,8 @@
-.\"     Title: xsltproc
-.\"    Author: John Fleck <jfleck@inkstain.net>
-.\" Generator: DocBook XSL Stylesheets v1.70.1 <http://docbook.sf.net/>
-.\"      Date: $Date: 2007.01.11 11:12:45 .0800 (Thu, 11 Jan 2007) $
-.\"    Manual: xsltproc Manual
-.\"    Source: libxslt
-.\"
-.TH "XSLTPROC" "1" "$Date: 2007\-01\-11 11:12:45 \-0800 (Thu, 11 Jan 2007) $" "libxslt" "xsltproc Manual"
+.\" ** You probably do not want to edit this file directly **
+.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
+.\" Instead of manually editing it, you probably should edit the DocBook XML
+.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
+.TH "XSLTPROC" "1" "$Date: 2007\-01\-11 20:12:45 +0100 (Thu, 11 Jan 2007) $" "libxslt" ""
 .\" disable hyphenation
 .nh
 .\" disable justification (adjust text to left margin only)
 xsltproc \- command line XSLT processor
 .SH "SYNOPSIS"
 .HP 9
-\fBxsltproc\fR [[\fB\-V\fR | \fB\-\-version\fR] [\fB\-v\fR | \fB\-\-verbose\fR] [{\fB\-o\fR | \fB\-\-output\fR} {\fIFILE\fR | \fIDIRECTORY\fR}] | \fB\-\-timing\fR | \fB\-\-repeat\fR | \fB\-\-debug\fR | \fB\-\-novalid\fR | \fB\-\-noout\fR | \fB\-\-maxdepth\ \fR\fB\fIVALUE\fR\fR | \fB\-\-html\fR | \fB\-\-param\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR | \fB\-\-stringparam\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR | \fB\-\-nonet\fR | \fB\-\-path\ "\fR\fB\fIPATH(S)\fR\fR\fB"\fR | \fB\-\-load\-trace\fR | \fB\-\-catalogs\fR | \fB\-\-xinclude\fR | [\fB\-\-profile\fR\ |\ \fB\-\-norman\fR] | \fB\-\-dumpextensions\fR | \fB\-\-nowrite\fR | \fB\-\-nomkdir\fR | \fB\-\-writesubtree\ \fR\fB\fIPATH\fR\fR | \fB\-\-nodtdattr\fR] [\fISTYLESHEET\fR] {\fIXML\-FILE\fR | \-}
+\fBxsltproc\fR [[\fB\-V\fR \fB\-\-version\fR] [\fB\-v\fR \fB\-\-verbose\fR] [{\fB\-o\fR \fB\-\-output\fR} {\fIFILE\fR \fIDIRECTORY\fR}] \fB\-\-timing\fR \fB\-\-repeat\fR \fB\-\-debug\fR \fB\-\-novalid\fR \fB\-\-noout\fR \fB\-\-maxdepth\ \fR\fB\fIVALUE\fR\fR \fB\-\-html\fR \fB\-\-param\ \fR\fB\fIENCODING\fR\fR\fB\ \fR \fB\-\-param\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR \fB\-\-stringparam\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR \fB\-\-nonet\fR \fB\-\-path\ "\fR\fB\fIPATH(S)\fR\fR\fB"\fR \fB\-\-load\-trace\fR \fB\-\-catalogs\fR \fB\-\-xinclude\fR [\fB\-\-profile\fR\ \fB\-\-norman\fR] \fB\-\-dumpextensions\fR \fB\-\-nowrite\fR \fB\-\-nomkdir\fR \fB\-\-writesubtree\ \fR\fB\fIPATH\fR\fR \fB\-\-nodtdattr\fR] [\fISTYLESHEET\fR] {\fIXML\-FILE\fR \-}
 .SH "DESCRIPTION"
 .PP
-
 \fBxsltproc\fR
 is a command line tool for applying
 XSLT
@@ -26,7 +22,6 @@ XML
 documents. It is part of
 \fBlibxslt\fR(3), the XSLT C library for GNOME. While it was developed as part of the GNOME project, it can operate independently of the GNOME desktop.
 .PP
-
 \fBxsltproc\fR
 is invoked from the command line with the name of the stylesheet to be used followed by the name of the file or files to which the stylesheet is to be applied. It will use the standard input if a filename provided is
 \fB\-\fR
@@ -46,10 +41,9 @@ or
 option.
 .SH "OPTIONS"
 .PP
-
 \fBxsltproc\fR
 accepts the following options (in alphabetical order):
-.TP 3n
+.TP
 \fB\-\-catalogs\fR
 Use the
 SGML
@@ -60,51 +54,51 @@ to resolve the location of external entities. By default,
 looks for the catalog specified in
 \fBXML_CATALOG_FILES\fR. If that is not specified, it uses
 \fI/etc/xml/catalog\fR.
-.TP 3n
+.TP
 \fB\-\-debug\fR
 Output an
 XML
 tree of the transformed document for debugging purposes.
-.TP 3n
+.TP
 \fB\-\-dumpextensions\fR
 Dumps the list of all registered extensions on
 \fIstdout\fR.
-.TP 3n
+.TP
 \fB\-\-html\fR
 The input document is an
 HTML
 file.
-.TP 3n
+.TP
 \fB\-\-load\-trace\fR
 Display all the documents loaded during the processing to
 \fIstderr\fR.
-.TP 3n
+.TP
 \fB\-\-maxdepth \fR\fB\fIVALUE\fR\fR
 Adjust the maximum depth of the template stack before
 \fBlibxslt\fR(3)
 concludes it is in an infinite loop. The default is 500.
-.TP 3n
+.TP
 \fB\-\-nodtdattr\fR
 Do not apply default attributes from the document's
 DTD.
-.TP 3n
+.TP
 \fB\-\-nomkdir\fR
 Refuses to create directories.
-.TP 3n
+.TP
 \fB\-\-nonet\fR
 Do not use the Internet to fetch
 DTDs, entities or documents.
-.TP 3n
+.TP
 \fB\-\-noout\fR
 Do not output the result.
-.TP 3n
+.TP
 \fB\-\-novalid\fR
 Skip loading the document's
 DTD.
-.TP 3n
+.TP
 \fB\-\-nowrite\fR
 Refuses to write to any file or resource.
-.TP 3n
+.TP
 \fB\-o\fR or \fB\-\-output\fR \fIFILE\fR | \fIDIRECTORY\fR
 Direct output to the given
 \fIFILE\fR. Using the option with a
@@ -136,7 +130,10 @@ as described in RFC 2396 and laters. This means, that e.g.
 will maybe not work, but
 \fB\-o directory/\fR
 will.
-.TP 3n
+.TP
+\fB\-\-encoding \fR\fB\fIENCODING\fR\fR
+Allow to specify the encoding for the input.
+.TP
 \fB\-\-param \fR\fB\fIPARAMNAME\fR\fR\fB \fR\fB\fIPARAMVALUE\fR\fR
 Pass a parameter of name
 \fIPARAMNAME\fR
@@ -145,19 +142,19 @@ and value
 to the stylesheet. You may pass multiple name/value pairs up to a maximum of 32. If the value being passed is a string rather than a node identifier, use
 \fB\-\-stringparam\fR
 instead.
-.TP 3n
+.TP
 \fB\-\-path "\fR\fB\fIPATH(S)\fR\fR\fB"\fR
 Use the (space\- or colon\-separated) list of filesystem paths specified by
 \fIPATHS\fR
 to load
 DTDs, entities or documents. Enclose space\-separated lists by quotation marks.
-.TP 3n
+.TP
 \fB\-\-profile\fR or \fB\-\-norman\fR
 Output profiling information detailing the amount of time spent in each part of the stylesheet. This is useful in optimizing stylesheet performance.
-.TP 3n
+.TP
 \fB\-\-repeat\fR
 Run the transformation 20 times. Used for timing tests.
-.TP 3n
+.TP
 \fB\-\-stringparam \fR\fB\fIPARAMNAME\fR\fR\fB \fR\fB\fIPARAMVALUE\fR\fR
 Pass a parameter of name
 \fIPARAMNAME\fR
@@ -168,32 +165,32 @@ where
 is a string rather than a node identifier.
 \fBNote:\fR
 The string must be UTF\-8 encoded.
-.TP 3n
+.TP
 \fB\-\-timing\fR
 Display the time used for parsing the stylesheet, parsing the document and applying the stylesheet and saving the result. Displayed in milliseconds.
-.TP 3n
+.TP
 \fB\-v\fR or \fB\-\-verbose\fR
 Output each step taken by
 \fBxsltproc\fR
 in processing the stylesheet and the document.
-.TP 3n
+.TP
 \fB\-V\fR or \fB\-\-version\fR
 Show the version of
 \fBlibxml\fR(3)
 and
 \fBlibxslt\fR(3)
 used.
-.TP 3n
+.TP
 \fB\-\-writesubtree \fR\fB\fIPATH\fR\fR
 Allow file write only within the
 \fIPATH\fR
 subtree.
-.TP 3n
+.TP
 \fB\-\-xinclude\fR
 Process the input document using the XInclude specification. More details on this can be found in the XInclude specification:
 \fI\%http://www.w3.org/TR/xinclude/\fR
 .SH "ENVIRONMENT"
-.TP 3n
+.TP
 \fBSGML_CATALOG_FILES\fR
 SGML
 catalog behavior can be changed by redirecting queries to the user's own set of catalogs. This can be done by setting the
@@ -201,7 +198,7 @@ catalog behavior can be changed by redirecting queries to the user's own set of
 environment variable to a list of catalogs. An empty one should deactivate loading the default
 \fI/etc/sgml/catalog\fR
 catalog.
-.TP 3n
+.TP
 \fBXML_CATALOG_FILES\fR
 XML
 catalog behavior can be changed by redirecting queries to the user's own set of catalogs. This can be done by setting the
@@ -211,43 +208,42 @@ environment variable to a list of catalogs. An empty one should deactivate loadi
 catalog.
 .SH "DIAGNOSTICS"
 .PP
-
 \fBxsltproc\fR
 return codes provide information that can be used when calling it from scripts.
-.TP 3n
+.TP
 \fB0\fR
 No error (normal operation)
-.TP 3n
+.TP
 \fB1\fR
 No argument
-.TP 3n
+.TP
 \fB2\fR
 Too many parameters
-.TP 3n
+.TP
 \fB3\fR
 Unknown option
-.TP 3n
+.TP
 \fB4\fR
 Failed to parse the stylesheet
-.TP 3n
+.TP
 \fB5\fR
 Error in the stylesheet
-.TP 3n
+.TP
 \fB6\fR
 Error in one of the documents
-.TP 3n
+.TP
 \fB7\fR
 Unsupported xsl:output method
-.TP 3n
+.TP
 \fB8\fR
 String parameter contains both quote and double\-quotes
-.TP 3n
+.TP
 \fB9\fR
 Internal processing error
-.TP 3n
+.TP
 \fB10\fR
 Processing was stopped by a terminating message
-.TP 3n
+.TP
 \fB11\fR
 Could not write the result to the output file
 .SH "SEE ALSO"
@@ -256,24 +252,16 @@ Could not write the result to the output file
 \fBlibxslt\fR(3)
 .PP
 More information can be found at
-.TP 3n
+.TP 3
 \(bu
 \fBlibxml\fR(3)
 web page
 \fI\%http://www.xmlsoft.org/\fR
-.TP 3n
+.TP
 \(bu
 W3C
 XSLT
 page
 \fI\%http://www.w3.org/TR/xslt\fR
-.sp
-.RE
 .SH "AUTHOR"
-.PP
-\fBJohn\fR \fBFleck\fR <jfleck@inkstain.net>
-.sp -1n
-.IP "" 3n
-Author.
-.SH "COPYRIGHT"
-Copyright \(co 2001, 2002 
+John Fleck <jfleck@inkstain.net>. 
index 69e198a..b641c60 100644 (file)
@@ -72,6 +72,9 @@
                        <arg choice="plain"><option>--maxdepth <replaceable class="option">VALUE</replaceable></option></arg>
                        <arg choice="plain"><option>--html</option></arg>
                        <arg choice="plain"><option>--param
+                        <replaceable class="option">ENCODING</replaceable>
+                       </option></arg>
+                       <arg choice="plain"><option>--param
                         <replaceable class="option">PARAMNAME</replaceable>
                         <replaceable class="option">PARAMVALUE</replaceable>
                        </option></arg>
 
                <varlistentry>
        <term>
+               <option>--encoding <replaceable>ENCODING</replaceable></option>
+       </term>
+       <listitem>
+               <para>
+                       Allow to specify the encoding for the input.
+               </para>
+       </listitem>
+               </varlistentry>
+               <varlistentry>
+       <term>
                <option>--param <replaceable>PARAMNAME</replaceable> <replaceable>PARAMVALUE</replaceable></option>
        </term>
        <listitem>
index ddd98b6..e665dff 100644 (file)
@@ -82,6 +82,7 @@ static int nodict = 0;
 #ifdef LIBXML_HTML_ENABLED
 static int html = 0;
 #endif
+static char *encoding = NULL;
 static int load_trace = 0;
 #ifdef LIBXML_XINCLUDE_ENABLED
 static int xinclude = 0;
@@ -382,10 +383,10 @@ xsltProcess(xmlDocPtr doc, xsltStylesheetPtr cur, const char *filename) {
                xmlFreeDoc(doc);
 #ifdef LIBXML_HTML_ENABLED
                if (html)
-                   doc = htmlReadFile(filename, NULL, options);
+                   doc = htmlReadFile(filename, encoding, options);
                else
 #endif
-                   doc = xmlReadFile(filename, NULL, options);
+                   doc = xmlReadFile(filename, encoding, options);
            }
        }
        ctxt = xsltNewTransformContext(cur, doc);
@@ -500,6 +501,7 @@ static void usage(const char *name) {
 #ifdef LIBXML_HTML_ENABLED
     printf("\t--html: the input document is(are) an HTML file(s)\n");
 #endif
+    printf("\t--encoding: the input document character encoding\n");
     printf("\t--param name value : pass a (parameter,value) pair\n");
     printf("\t       value is an UTF8 XPath expression.\n");
     printf("\t       string values must be quoted like \"'string'\"\n or");
@@ -603,6 +605,9 @@ main(int argc, char **argv)
                    (!strcmp(argv[i], "--html"))) {
             html++;
 #endif
+       } else if ((!strcmp(argv[i], "-encoding")) ||
+                  (!strcmp(argv[i], "--encoding"))) {
+           encoding = argv[++i];
         } else if ((!strcmp(argv[i], "-timing")) ||
                    (!strcmp(argv[i], "--timing"))) {
             timing++;
@@ -762,6 +767,10 @@ main(int argc, char **argv)
                    (!strcmp(argv[i], "--output"))) {
             i++;
            continue;
+       } else if ((!strcmp(argv[i], "-encoding")) ||
+                  (!strcmp(argv[i], "--encoding"))) {
+           i++;
+           continue;
         } else if ((!strcmp(argv[i], "-writesubtree")) ||
                    (!strcmp(argv[i], "--writesubtree"))) {
             i++;
@@ -839,10 +848,10 @@ main(int argc, char **argv)
                 startTimer();
 #ifdef LIBXML_HTML_ENABLED
             if (html)
-                doc = htmlReadFile(argv[i], NULL, options);
+                doc = htmlReadFile(argv[i], encoding, options);
             else
 #endif
-                doc = xmlReadFile(argv[i], NULL, options);
+                doc = xmlReadFile(argv[i], encoding, options);
             if (doc == NULL) {
                 fprintf(stderr, "unable to parse %s\n", argv[i]);
                errorno = 6;