summaryrefslogtreecommitdiff
path: root/xsltproc
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>2003-07-23 21:46:39 +0000
committerDaniel Veillard <veillard@src.gnome.org>2003-07-23 21:46:39 +0000
commit1895007219c2650c452aeed878ccb5bf66ae8df1 (patch)
treee9b36373f0a3f5a2b0d481b8d4003963f35d92df /xsltproc
parentdf6397cd505f33a6244d76600257f977468e8d9b (diff)
downloadlibxslt-1895007219c2650c452aeed878ccb5bf66ae8df1.tar.gz
libxslt-1895007219c2650c452aeed878ccb5bf66ae8df1.tar.bz2
libxslt-1895007219c2650c452aeed878ccb5bf66ae8df1.zip
applying a patch based on #117377 for --path option. Daniel
* xsltproc/xsltproc.c: applying a patch based on #117377 for --path option. Daniel
Diffstat (limited to 'xsltproc')
-rw-r--r--xsltproc/xsltproc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/xsltproc/xsltproc.c b/xsltproc/xsltproc.c
index cf1bb4f8..ac4ead3a 100644
--- a/xsltproc/xsltproc.c
+++ b/xsltproc/xsltproc.c
@@ -160,6 +160,14 @@ xsltprocExternalEntityLoader(const char *URL, const char *ID,
warningSAXFunc warning = NULL;
int i;
+ const char *lastsegment = URL;
+ const char *iter = URL;
+
+ while (*iter != 0) {
+ if (*iter == '/')
+ lastsegment = iter + 1;
+ iter++;
+ }
if ((ctxt != NULL) && (ctxt->sax != NULL)) {
warning = ctxt->sax->warning;
@@ -179,7 +187,7 @@ xsltprocExternalEntityLoader(const char *URL, const char *ID,
newURL = xmlStrdup((const xmlChar *) paths[i]);
newURL = xmlStrcat(newURL, (const xmlChar *) "/");
- newURL = xmlStrcat(newURL, (const xmlChar *) URL);
+ newURL = xmlStrcat(newURL, (const xmlChar *) lastsegment);
if (newURL != NULL) {
ret = defaultEntityLoader((const char *)newURL, ID, ctxt);
xmlFree(newURL);