diff --git a/.gitignore b/.gitignore
index b46262c..e29bb57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -78,6 +78,8 @@ fc-list/fc-list
fc-list/fc-list.1
fc-match/fc-match
fc-match/fc-match.1
+fc-query/fc-query
+fc-query/fc-query.1
src/fontconfig.def
fcalias.h
fcaliastail.h
diff --git a/Makefile.am b/Makefile.am
index 1b78d1b..6e1c207 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,7 +23,7 @@
DOCSRC=@DOCSRC@
SUBDIRS=fontconfig fc-case fc-lang fc-glyphname fc-arch src \
- fc-cache fc-cat fc-list fc-match conf.d $(DOCSRC) test
+ fc-cache fc-cat fc-list fc-match fc-query conf.d $(DOCSRC) test
EXTRA_DIST = \
fontconfig.pc.in \
diff --git a/configure.in b/configure.in
index e2e3f06..e381475 100644
--- a/configure.in
+++ b/configure.in
@@ -572,6 +572,7 @@ fc-cache/Makefile
fc-cat/Makefile
fc-list/Makefile
fc-match/Makefile
+fc-query/Makefile
doc/Makefile
doc/version.sgml
test/Makefile
diff --git a/doc/fontconfig-user.sgml b/doc/fontconfig-user.sgml
index 22fadbb..316f085 100644
--- a/doc/fontconfig-user.sgml
+++ b/doc/fontconfig-user.sgml
@@ -674,7 +674,7 @@ per-directory caches. This file is automatically maintained by fontconfig.
See Also
-fc-cache(1), fc-match(1), fc-list(1)
+fc-cat(1), fc-cache(1), fc-list(1), fc-match(1), fc-query(1)
Version
diff --git a/fc-cache/fc-cache.sgml b/fc-cache/fc-cache.sgml
index e693244..62c0ddf 100644
--- a/fc-cache/fc-cache.sgml
+++ b/fc-cache/fc-cache.sgml
@@ -178,6 +178,7 @@ manpage.1: manpage.sgml
fc-cat(1)
fc-list(1)
fc-match(1)
+ fc-query(1)
The fontconfig user's guide, in HTML format:
diff --git a/fc-cat/fc-cat.sgml b/fc-cat/fc-cat.sgml
index 19eb983..94c74b2 100644
--- a/fc-cat/fc-cat.sgml
+++ b/fc-cat/fc-cat.sgml
@@ -134,6 +134,7 @@ manpage.1: manpage.sgml
fc-cache(1)
fc-list(1)
fc-match(1)
+ fc-query(1)
The fontconfig user's guide, in HTML format:
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index 9a9536e..fbd0b0d 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -159,6 +159,7 @@ manpage.1: manpage.sgml
fc-cat(1)
fc-cache(1)
fc-match(1)
+ fc-query(1)
The fontconfig user's guide, in HTML format:
diff --git a/fc-match/fc-match.sgml b/fc-match/fc-match.sgml
index 136de3c..c2f699d 100644
--- a/fc-match/fc-match.sgml
+++ b/fc-match/fc-match.sgml
@@ -153,6 +153,7 @@ are printed. The option works like
fc-cat(1)
fc-cache(1)
fc-list(1)
+ fc-query(1)
The fontconfig user's guide, in HTML format:
diff --git a/fc-query/Makefile.am b/fc-query/Makefile.am
new file mode 100644
index 0000000..d75459a
--- /dev/null
+++ b/fc-query/Makefile.am
@@ -0,0 +1,59 @@
+#
+# $Id$
+#
+# Copyright © 2003 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Keith Packard makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+bin_PROGRAMS=fc-query
+
+DOC2MAN = docbook2man
+
+FC_QUERY_SRC=${top_srcdir}/fc-query
+
+SGML = ${FC_QUERY_SRC}/fc-query.sgml
+
+INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+
+BUILT_MANS=fc-query.1
+
+if ENABLE_DOCS
+man_MANS=${BUILT_MANS}
+endif
+
+EXTRA_DIST=fc-query.sgml $(BUILT_MANS)
+
+fc_query_LDADD = ${top_builddir}/src/libfontconfig.la
+
+if USEDOCBOOK
+
+${man_MANS}: ${SGML}
+ $(RM) $@
+ $(DOC2MAN) ${SGML}
+ $(RM) manpage.refs manpage.links
+
+all-local: $(man_MANS)
+
+clean-local:
+ $(RM) $(man_MANS)
+
+else
+all-local:
+clean-local:
+endif
diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c
new file mode 100644
index 0000000..2a36bf0
--- /dev/null
+++ b/fc-query/fc-query.c
@@ -0,0 +1,166 @@
+/*
+ * fontconfig/fc-query/fc-query.c
+ *
+ * Copyright © 2003 Keith Packard
+ * Copyright © 2008 Red Hat, Inc.
+ * Red Hat Author(s): Behdad Esfahbod
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include
+#else
+#ifdef linux
+#define HAVE_GETOPT_LONG 1
+#endif
+#define HAVE_GETOPT 1
+#endif
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#ifndef HAVE_GETOPT
+#define HAVE_GETOPT 0
+#endif
+#ifndef HAVE_GETOPT_LONG
+#define HAVE_GETOPT_LONG 0
+#endif
+
+#if HAVE_GETOPT_LONG
+#undef _GNU_SOURCE
+#define _GNU_SOURCE
+#include
+static const struct option longopts[] = {
+ {"index", 1, 0, 'i'},
+ {"version", 0, 0, 'V'},
+ {"help", 0, 0, '?'},
+ {NULL,0,0,0},
+};
+#else
+#if HAVE_GETOPT
+extern char *optarg;
+extern int optind, opterr, optopt;
+#endif
+#endif
+
+static void usage (char *program)
+{
+#if HAVE_GETOPT_LONG
+ fprintf (stderr, "usage: %s [-V?] [-i index] [--index index] [--version] [--help] font-file...\n",
+ program);
+#else
+ fprintf (stderr, "usage: %s [-V?] [-i index] font-file...\n",
+ program);
+#endif
+ fprintf (stderr, "Query font files and print resulting pattern(s)\n");
+ fprintf (stderr, "\n");
+#if HAVE_GETOPT_LONG
+ fprintf (stderr, " -i, --index INDEX display the INDEX face of each font file only\n");
+ fprintf (stderr, " -V, --version display font config version and exit\n");
+ fprintf (stderr, " -?, --help display this help and exit\n");
+#else
+ fprintf (stderr, " -i INDEX (index) display the INDEX face of each font file only\n");
+ fprintf (stderr, " -a (all) display unpruned sorted list of matches\n");
+ fprintf (stderr, " -V (version) display font config version and exit\n");
+ fprintf (stderr, " -? (help) display this help and exit\n");
+#endif
+ exit (1);
+}
+
+int
+main (int argc, char **argv)
+{
+ int index_set = 0;
+ int set_index = 0;
+ int err = 0;
+ int i;
+ FcBlanks *blanks;
+#if HAVE_GETOPT_LONG || HAVE_GETOPT
+ int c;
+
+#if HAVE_GETOPT_LONG
+ while ((c = getopt_long (argc, argv, "i:sVv?", longopts, NULL)) != -1)
+#else
+ while ((c = getopt (argc, argv, "i:asVv?")) != -1)
+#endif
+ {
+ switch (c) {
+ case 'i':
+ index_set = 1;
+ set_index = atoi (optarg);
+ break;
+ case 'V':
+ fprintf (stderr, "fontconfig version %d.%d.%d\n",
+ FC_MAJOR, FC_MINOR, FC_REVISION);
+ exit (0);
+ default:
+ usage (argv[0]);
+ }
+ }
+ i = optind;
+#else
+ i = 1;
+#endif
+
+ if (i == argc)
+ usage (argv[0]);
+
+ if (!FcInit ())
+ {
+ fprintf (stderr, "Can't init font config library\n");
+ return 1;
+ }
+
+ blanks = FcConfigGetBlanks (NULL);
+
+ for (; i < argc; i++)
+ {
+ int index;
+ int count = 0;
+
+ index = set_index;
+
+ do {
+ FcPattern *pat;
+
+ pat = FcFreeTypeQuery ((FcChar8 *) argv[i], index, blanks, &count);
+ if (pat)
+ {
+ FcPatternPrint (pat);
+ FcPatternDestroy (pat);
+ }
+ else
+ {
+ fprintf (stderr, "Can't query face %d of font file %s\n",
+ index, argv[i]);
+ err = 1;
+ }
+
+ index++;
+ } while (!index_set && index < count);
+ }
+
+ FcFini ();
+ return err;
+}
diff --git a/fc-query/fc-query.sgml b/fc-query/fc-query.sgml
new file mode 100644
index 0000000..4a1a5e6
--- /dev/null
+++ b/fc-query/fc-query.sgml
@@ -0,0 +1,174 @@
+ manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+
+ Behdad">
+ Esfahbod">
+
+ Aug 13, 2008">
+
+ 1">
+ behdad@behdad.org">
+
+ fc-query">
+
+
+ GNU">
+ GPL">
+]>
+
+
+
+
+ &dhemail;
+
+
+ &dhfirstname;
+ &dhsurname;
+
+
+ 2008
+ &dhusername;
+
+ &dhdate;
+
+
+ &dhucpackage;
+
+ &dhsection;
+
+
+ &dhpackage;
+
+ query font files
+
+
+
+ &dhpackage;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DESCRIPTION
+
+ &dhpackage; queries
+ font-file(s) using the normal fontconfig
+ rules and prints out font pattern for each face found.
+ If is given, only one face of each file is
+ queried, otherwise all faces are queried.
+
+
+
+ OPTIONS
+
+ This program follows the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below.
+
+
+
+
+
+
+
+ Show summary of options.
+
+
+
+
+
+
+
+ Show version of the program and exit.
+
+
+
+
+
+
+
+
+ Only query face indexed index of
+ each file.
+
+
+
+
+
+
+ Query font-file for font faces.
+
+
+
+
+
+
+ RETURN CODES
+ fc-query returns error code 0 for successful parsing,
+ or 1 if any errors occured or if at least one font face could not be opened.
+
+
+
+ SEE ALSO
+
+
+ fc-cat(1)
+ fc-cache(1)
+ fc-list(1)
+ fc-match(1)
+
+
+ The fontconfig user's guide, in HTML format:
+ /usr/share/doc/fontconfig/fontconfig-user.html.
+
+
+
+ AUTHOR
+
+ This manual page was updated by &dhusername; &dhemail;.
+
+
+
+
+