summaryrefslogtreecommitdiff
path: root/fc-list
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2008-08-13 02:24:42 -0400
committerBehdad Esfahbod <behdad@behdad.org>2009-02-13 16:53:56 -0800
commit29874098537e763e8e4cd3fefb1ecc0f36b808a5 (patch)
tree89c21bdd57d49373ab772d23c55fd40b9ab9320a /fc-list
parent77c0d8bce86ca088782d5631617c0ef681d91312 (diff)
Implement fc-list --verbose (#13015)
A private FcObjectGetSet() is implemented that provides an FcObjectSet of all registered elements. FcFontSetList() is then modified to use the object set from FcObjectGetSet() if provided object-set is NULL. Alternatively FcObjectGetSet() can be made public. In that case fc-list can use that as a base if --verbose is included, and also add any elements provided by the user (though that has no effect, as all elements from the cache are already registered). Currently fc-list ignores user-provided elements if --verbose is specified.
Diffstat (limited to 'fc-list')
-rw-r--r--fc-list/fc-list.c41
-rw-r--r--fc-list/fc-list.sgml10
2 files changed, 31 insertions, 20 deletions
diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index a410df8e..8384f28a 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -71,11 +71,11 @@ static void usage (char *program)
fprintf (stderr, "List fonts matching [pattern]\n");
fprintf (stderr, "\n");
#if HAVE_GETOPT_LONG
- fprintf (stderr, " -v, --verbose display status information while busy\n");
+ fprintf (stderr, " -v, --verbose display entire font pattern\n");
fprintf (stderr, " -V, --version display font config version and exit\n");
fprintf (stderr, " -?, --help display this help and exit\n");
#else
- fprintf (stderr, " -v (verbose) display status information while busy\n");
+ fprintf (stderr, " -v (verbose) display entire font pattern\n");
fprintf (stderr, " -V (version) display font config version and exit\n");
fprintf (stderr, " -? (help) display this help and exit\n");
#endif
@@ -85,7 +85,7 @@ static void usage (char *program)
int
main (int argc, char **argv)
{
- /*int verbose = 0;*/
+ int verbose = 0;
int i;
FcObjectSet *os = 0;
FcFontSet *fs;
@@ -105,7 +105,7 @@ main (int argc, char **argv)
FC_MAJOR, FC_MINOR, FC_REVISION);
exit (0);
case 'v':
- /* verbose = 1; */
+ verbose = 1;
break;
default:
usage (argv[0]);
@@ -124,20 +124,22 @@ main (int argc, char **argv)
if (argv[i])
{
pat = FcNameParse ((FcChar8 *) argv[i]);
- while (argv[++i])
- {
- if (!os)
- os = FcObjectSetCreate ();
- FcObjectSetAdd (os, argv[i]);
- }
+ if (!verbose)
+ while (argv[++i])
+ {
+ if (!os)
+ os = FcObjectSetCreate ();
+ FcObjectSetAdd (os, argv[i]);
+ }
}
else
pat = FcPatternCreate ();
- if (!os)
+ if (!verbose && !os)
os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *) 0);
fs = FcFontList (0, pat, os);
- FcObjectSetDestroy (os);
+ if (os)
+ FcObjectSetDestroy (os);
if (pat)
FcPatternDestroy (pat);
@@ -150,11 +152,16 @@ main (int argc, char **argv)
FcChar8 *font;
FcChar8 *file;
- font = FcNameUnparse (fs->fonts[j]);
- if (FcPatternGetString (fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch)
- printf ("%s: ", file);
- printf ("%s\n", font);
- free (font);
+ if (verbose)
+ FcPatternPrint (fs->fonts[j]);
+ else
+ {
+ font = FcNameUnparse (fs->fonts[j]);
+ if (FcPatternGetString (fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch)
+ printf ("%s: ", file);
+ printf ("%s\n", font);
+ free (font);
+ }
}
FcFontSetDestroy (fs);
}
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index fbd0b0d4..f4a31477 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -76,8 +76,10 @@ manpage.1: manpage.sgml
<title>DESCRIPTION</title>
<para><command>&dhpackage;</command> lists fonts and styles
- available on the system for applications using fontconfig.</para>
-
+ available on the system for applications using fontconfig.
+ With <option>--verbose</option>, the whole font pattern
+ for each font is printed, otherwise only the elements requested
+ are printed (family and style if none provided).</para>
</refsect1>
<refsect1>
<title>OPTIONS</title>
@@ -92,7 +94,9 @@ manpage.1: manpage.sgml
<option>--verbose</option>
</term>
<listitem>
- <para>Display status information while busy.</para>
+ <para>Print whole font pattern for each match. Provided
+ <replaceable>element</replaceable>s are ignored in this
+ case.</para>
</listitem>
</varlistentry>
<varlistentry>