X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=fc-lang%2Ffc-lang.c;h=edfad3bfe2fd859ba80ec7e16b7c72ec5e5d1cb7;hb=394b2bf04651d62194c7faa836899d33ca3ed017;hp=ef259bc54684b66754fe88f27859dba16fe86d82;hpb=3541556bd38d6b1a3fffe1a661edce2f8d60e06a;p=fontconfig.git diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c index ef259bc..edfad3b 100644 --- a/fc-lang/fc-lang.c +++ b/fc-lang/fc-lang.c @@ -75,6 +75,26 @@ get_line (FILE *f, char *line, int *lineno) return line; } +char *dir = 0; + +FILE * +scanopen (char *file) +{ + FILE *f; + + f = fopen (file, "r"); + if (!f && dir) + { + char path[1024]; + + strcpy (path, dir); + strcat (path, "/"); + strcat (path, file); + f = fopen (path, "r"); + } + return f; +} + /* * build a single charset from a source file * @@ -103,7 +123,7 @@ scan (FILE *f, char *file) end = strlen (file); if (file[end-1] == '\n') file[end-1] = '\0'; - f = fopen (file, "r"); + f = scanopen (file); if (!f) fatal (file, 0, "can't open"); c = scan (f, file); @@ -213,6 +233,11 @@ main (int argc, char **argv) while (*++argv) { + if (!strcmp (*argv, "-d")) + { + dir = *++argv; + continue; + } if (i == MAX_LANG) fatal (*argv, 0, "Too many languages"); files[i++] = *argv; @@ -222,7 +247,7 @@ main (int argc, char **argv) i = 0; while (files[i]) { - f = fopen (files[i], "r"); + f = scanopen (files[i]); if (!f) fatal (files[i], 0, strerror (errno)); sets[i] = scan (f, files[i]);