command on the pattern, without the final newline.
</para></listitem></varlistentry>
+<varlistentry><term>
+fccat
+</term><listitem><para>
+Expands to the output of the default output format of the fc-cat
+command on the pattern, without the final newline.
+</para></listitem></varlistentry>
+
<varlistentry><term>
pkgkit
</term><listitem><para>
static FcBool
cache_print_set (FcFontSet *set, FcStrSet *dirs, const FcChar8 *base_name, FcBool verbose)
{
- FcChar8 *name, *dir;
- const FcChar8 *file, *base;
- int ret;
+ FcChar8 *dir;
+ const FcChar8 *base;
int n;
- int id;
int ndir = 0;
FcStrList *list;
for (n = 0; n < set->nfont; n++)
{
FcPattern *font = set->fonts[n];
+ FcChar8 *s;
- if (FcPatternGetString (font, FC_FILE, 0, (FcChar8 **) &file) != FcResultMatch)
- goto bail3;
- base = file_base_name (base_name, file);
- if (FcPatternGetInteger (font, FC_INDEX, 0, &id) != FcResultMatch)
- goto bail3;
- if (!write_string (stdout, base))
- goto bail3;
- if (PUTC (' ', stdout) == EOF)
- goto bail3;
- if (!write_int (stdout, id))
- goto bail3;
- if (PUTC (' ', stdout) == EOF)
- goto bail3;
- name = FcNameUnparse (font);
- if (!name)
- goto bail3;
- ret = write_string (stdout, name);
- FcStrFree (name);
- if (!ret)
- goto bail3;
- if (PUTC ('\n', stdout) == EOF)
- goto bail3;
+ s = FcPatternFormat (font, "%{=fccat}\n");
+ if (s)
+ {
+ printf ("%s", s);
+ free (s);
+ }
}
if (verbose && !set->nfont && !ndir)
printf ("<empty>\n");
-
+
FcStrListDone (list);
return FcTrue;
-
+
bail3:
FcStrListDone (list);
bail2:
* unparse FcNameUnparse
* fcmatch fc-match default
* fclist fc-list default
+ * fccat fc-cat default
* pkgkit PackageKit package tag format
*
*
*/
+#define FCCAT_FORMAT "\"%{file|basename|cescape}\" %{index} \"%{-file{%{=unparse|cescape}}}\""
#define FCMATCH_FORMAT "%{file:-<unknown filename>|basename}: \"%{family[0]:-<unknown family>}\" \"%{style[0]:-<unknown style>}\""
#define FCLIST_FORMAT "%{?file{%{file}: }}%{-file{%{=unparse}}}"
#define PKGKIT_FORMAT "%{[]family{font(%{family|downcase|delete( )})\n}}%{[]lang{font(:lang=%{lang|downcase|translate(_,-)})\n}}"
#define BUILTIN(name, format) \
else if (0 == strcmp ((const char *) c->word, name))\
ret = FcPatternFormatToBuf (pat, (const FcChar8 *) format, buf)
+ BUILTIN ("fccat", FCCAT_FORMAT);
BUILTIN ("fcmatch", FCMATCH_FORMAT);
BUILTIN ("fclist", FCLIST_FORMAT);
BUILTIN ("pkgkit", PKGKIT_FORMAT);