[libxml2] xmlcatalog: restore ability to query system catalog easily
- From: Nick Wellnhofer <nwellnhof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libxml2] xmlcatalog: restore ability to query system catalog easily
- Date: Sat, 21 Oct 2017 13:29:33 +0000 (UTC)
commit 6b780f65d83cb952142fd1b211eeb99c7957da49
Author: Jan Pokorný <jpokorny redhat com>
Date: Thu Oct 19 13:27:29 2017 +0200
xmlcatalog: restore ability to query system catalog easily
I've noticed that easy way of locating a DocBook XSLT in a configure
script of another project doesn't work anymore. It is using something
like: xmlcatalog "" ${DOCBOOK_XSL_URI}/${DOCBOOK_XSL_PATH}. The script
is then forced to a plain, suboptimal search using find utility.
Indeed, I retrospectively realize that the check was working just
by mere accident given that the window this presumably side-effect
was applicable had not lasted long, some 8 months between
054c716ea1bf001544127a4ab4f4346d1b9947e7
introducing xmlInitializeCatalog in the LIBXML_TEST_VERSION-rooted
call chain, and
f65128f38289d77ff322d63aef2858cc0a819c34
reverting that again.
So while one can state /etc/xml/catalog constant explicitly, in
some use cases (such as the mentioned one -- that's why I wanted
to omit stating the full path in the first place), this is rather
an implementation detail, perhaps subject to change from that POV.
Therefore I propose to restore that behaviour in the targeted
manner without global disruptions this time around.
As a side-effect, this fixes indenting of the affected part.
xmlcatalog.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/xmlcatalog.c b/xmlcatalog.c
index 006f0cc..c02b97f 100644
--- a/xmlcatalog.c
+++ b/xmlcatalog.c
@@ -312,7 +312,8 @@ static void usage(const char *name) {
/* split into 2 printf's to avoid overly long string (gcc warning) */
printf("\
Usage : %s [options] catalogfile entities...\n\
-\tParse the catalog file and query it for the entities\n\
+\tParse the catalog file (void specification possibly expressed as \"\"\n\
+\tappoints the default system one) and query it for the entities\n\
\t--sgml : handle SGML Super catalogs for --add and --del\n\
\t--shell : run a shell allowing interactive queries\n\
\t--create : create a new catalog\n\
@@ -408,11 +409,18 @@ int main(int argc, char **argv) {
continue;
} else if (argv[i][0] == '-')
continue;
- filename = argv[i];
+
+ if (filename == NULL && argv[i][0] == '\0') {
+ /* Interpret empty-string catalog specification as
+ a shortcut for a default system catalog. */
+ xmlInitializeCatalog();
+ } else {
+ filename = argv[i];
ret = xmlLoadCatalog(argv[i]);
if ((ret < 0) && (create)) {
xmlCatalogAdd(BAD_CAST "catalog", BAD_CAST argv[i], NULL);
}
+ }
break;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]