X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=fc-cache%2Ffc-cache.c;fp=fc-cache%2Ffc-cache.c;h=9bac25d7f3e6db825d85ef7a7be111df3a6cfb72;hb=8ba2b3c59b2cd0bf24b6045f5c6babdf49b4b30d;hp=59a24bbb324e5c98dfc1e1de3a686125395ff055;hpb=d0471dd2faca37f7ee5997ad9db8278db0e99206;p=fontconfig.git diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c index 59a24bb..9bac25d 100644 --- a/fc-cache/fc-cache.c +++ b/fc-cache/fc-cache.c @@ -67,6 +67,7 @@ #define _GNU_SOURCE #include const struct option longopts[] = { + {"convert", 0, 0, 'c'}, {"force", 0, 0, 'f'}, {"really-force", 0, 0, 'r'}, {"root", 1, 0, 'R'}, @@ -386,13 +387,18 @@ main (int argc, char **argv) #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; +FcBool convert = FcFalse; + #if HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, "frR:sVvh", longopts, NULL)) != -1) + while ((c = getopt_long (argc, argv, "cfrR:sVvh", longopts, NULL)) != -1) #else - while ((c = getopt (argc, argv, "frR:sVvh")) != -1) + while ((c = getopt (argc, argv, "cfrR:sVvh")) != -1) #endif { switch (c) { + case 'c': + convert = FcTrue; + break; case 'r': really_force = FcTrue; /* fall through */ @@ -423,6 +429,20 @@ main (int argc, char **argv) i = 1; #endif + if (convert) + { + const FcChar8 *src_cache, *dst_cache, *src_type, *dst_type; + + src_cache = (const FcChar8 *) argv[i++]; + src_type = (const FcChar8 *) argv[i++]; + dst_cache = (const FcChar8 *) argv[i++]; + dst_type = (const FcChar8 *) argv[i++]; + + FcDirCacheConvert (src_cache, src_type, dst_cache, dst_type); + + return 0; + } + if (systemOnly) FcConfigEnableHome (FcFalse); config = FcInitLoadConfig ();