|
发表于 2011-4-23 21:51:09
|
显示全部楼层
Post by gentlog;2136171
另外,配置文件的序列(数字)跟优先级没有关系,只是分类。UBUNTU的/etc/fonts/conf.d/里有个README文件,里面有写。
/etc/conf.d/README:- ...
- The files are loaded in numeric order, the structure of the configuration
- has led to the following conventions in usage:
- ...
复制代码 即配置文件夹的文件依照数字顺序被读取,配置文件前缀数字越小,越先读取和处理。也就是说对于对字体属性的修改和字体的替换,配置文件前缀数字越大,可以覆盖之前文件的修改,优先级越高;但对<alias>是个例外,参见我前一回复的分析。
事实上我为了求证这一点还看了下fontconfig的源代码: ./src/fcxml.c- static FcBool
- FcConfigParseAndLoadDir (FcConfig *config,
- const FcChar8 *name,
- const FcChar8 *dir,
- FcBool complain)
- {
- // Blah blah blah...
- if (ret)
- {
- int i;
- qsort (files->strs, files->num, sizeof (FcChar8 *),
- (int (*)(const void *, const void *)) FcSortCmpStr);
- for (i = 0; ret && i < files->num; i++)
- ret = FcConfigParseAndLoad (config, files->strs[i], complain);
- }
复制代码 注意qsort()一行,fontconfig读取配置文件时,严格意义上说,是按配置文件文件名的字符编码(ASCII?)顺序读取,文件名字符编码小的配置文件先被读取。 |
|