Add smack rules for default font config pathes.
[platform/upstream/fontconfig.git] / fc-scan / fc-scan.c
index 5638b51..9302ac5 100644 (file)
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <locale.h>
+
+#ifdef ENABLE_NLS
+#include <libintl.h>
+#define _(x)           (dgettext(GETTEXT_PACKAGE, x))
+#else
+#define dgettext(d, s) (s)
+#define _(x)           (x)
+#endif
 
 #ifndef HAVE_GETOPT
 #define HAVE_GETOPT 0
@@ -52,6 +61,7 @@
 #define _GNU_SOURCE
 #include <getopt.h>
 static const struct option longopts[] = {
+    {"brief", 0, 0, 'b'},
     {"format", 1, 0, 'f'},
     {"version", 0, 0, 'V'},
     {"help", 0, 0, 'h'},
@@ -69,22 +79,24 @@ usage (char *program, int error)
 {
     FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (file, "usage: %s [-Vh] [-f FORMAT] [--format FORMAT] [--version] [--help] font-file...\n",
+    fprintf (file, _("usage: %s [-bVh] [-f FORMAT] [--brief] [--format FORMAT] [--version] [--help] font-file...\n"),
             program);
 #else
-    fprintf (file, "usage: %s [-Vh] [-f FORMAT] font-file...\n",
+    fprintf (file, _("usage: %s [-bVh] [-f FORMAT] font-file...\n"),
             program);
 #endif
-    fprintf (file, "Scan font files and directories, and print resulting pattern(s)\n");
+    fprintf (file, _("Scan font files and directories, and print resulting pattern(s)\n"));
     fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
-    fprintf (file, "  -f, --format=FORMAT  use the given output format\n");
-    fprintf (file, "  -V, --version        display font config version and exit\n");
-    fprintf (file, "  -h, --help           display this help and exit\n");
+    fprintf (file, _("  -b, --brief          display font pattern briefly\n"));
+    fprintf (file, _("  -f, --format=FORMAT  use the given output format\n"));
+    fprintf (file, _("  -V, --version        display font config version and exit\n"));
+    fprintf (file, _("  -h, --help           display this help and exit\n"));
 #else
-    fprintf (file, "  -f FORMAT  (format)  use the given output format\n");
-    fprintf (file, "  -V         (version) display font config version and exit\n");
-    fprintf (file, "  -h         (help)    display this help and exit\n");
+    fprintf (file, _("  -b         (brief)         display font pattern briefly\n"));
+    fprintf (file, _("  -f FORMAT  (format)        use the given output format\n"));
+    fprintf (file, _("  -V         (version)       display font config version and exit\n"));
+    fprintf (file, _("  -h         (help)          display this help and exit\n"));
 #endif
     exit (error);
 }
@@ -92,19 +104,24 @@ usage (char *program, int error)
 int
 main (int argc, char **argv)
 {
+    int         brief = 0;
     FcChar8     *format = NULL;
     int                i;
     FcFontSet   *fs;
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int                c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "f:Vh", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "bf:Vh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "f:Vh")) != -1)
+    while ((c = getopt (argc, argv, "bf:Vh")) != -1)
 #endif
     {
        switch (c) {
+       case 'b':
+           brief = 1;
+           break;
        case 'f':
            format = (FcChar8 *) strdup (optarg);
            break;
@@ -150,9 +167,13 @@ main (int argc, char **argv)
 
     for (i = 0; i < fs->nfont; i++)
     {
-       FcPattern *pat;
+       FcPattern *pat = fs->fonts[i];
 
-       pat = fs->fonts[i];
+       if (brief)
+       {
+           FcPatternDel (pat, FC_CHARSET);
+           FcPatternDel (pat, FC_LANG);
+       }
 
        if (format)
        {