diff --git a/.gitmodules b/.gitmodules
index 89a90e84a..a7820d48f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -25,3 +25,6 @@
[submodule "vendor/harfbuzz"]
path = vendor/harfbuzz
url = https://github.com/harfbuzz/harfbuzz.git
+[submodule "vendor/zig-libxml2"]
+ path = vendor/zig-libxml2
+ url = https://github.com/mitchellh/zig-libxml2.git
diff --git a/build.zig b/build.zig
index b2abfa4f5..136d48f8f 100644
--- a/build.zig
+++ b/build.zig
@@ -3,8 +3,10 @@ const fs = std.fs;
const Builder = std.build.Builder;
const LibExeObjStep = std.build.LibExeObjStep;
const glfw = @import("vendor/mach/glfw/build.zig");
+const fontconfig = @import("pkg/fontconfig/build.zig");
const freetype = @import("pkg/freetype/build.zig");
const harfbuzz = @import("pkg/harfbuzz/build.zig");
+const libxml2 = @import("vendor/zig-libxml2/libxml2.zig");
const libuv = @import("pkg/libuv/build.zig");
const libpng = @import("pkg/libpng/build.zig");
const utf8proc = @import("pkg/utf8proc/build.zig");
@@ -156,6 +158,7 @@ fn addDeps(
static: bool,
) !void {
// We always need the Zig packages
+ step.addPackage(fontconfig.pkg);
step.addPackage(freetype.pkg);
step.addPackage(harfbuzz.pkg);
step.addPackage(glfw.pkg);
@@ -191,6 +194,8 @@ fn addDeps(
step.linkSystemLibrary("libpng");
step.linkSystemLibrary("libuv");
step.linkSystemLibrary("zlib");
+
+ if (step.target.isLinux()) step.linkSystemLibrary("fontconfig");
}
// Other dependencies, we may dynamically link
@@ -230,6 +235,30 @@ fn addDeps(
// Libuv
const libuv_step = try libuv.link(b, step);
system_sdk.include(b, libuv_step, .{});
+
+ // Only Linux gets fontconfig
+ if (step.target.isLinux()) {
+ // Libxml2
+ const libxml2_lib = try libxml2.create(
+ b,
+ step.target,
+ step.build_mode,
+ .{ .lzma = false, .zlib = false },
+ );
+ libxml2_lib.link(step);
+
+ // Fontconfig
+ const fontconfig_step = try fontconfig.link(b, step, .{
+ .freetype = .{
+ .enabled = true,
+ .step = freetype_step,
+ .include = &freetype.include_paths,
+ },
+
+ .libxml2 = true,
+ });
+ libxml2_lib.link(fontconfig_step);
+ }
}
}
diff --git a/nix/devshell.nix b/nix/devshell.nix
index 532c4c58c..c5846ed94 100644
--- a/nix/devshell.nix
+++ b/nix/devshell.nix
@@ -15,6 +15,7 @@
, zig
, bzip2
+, expat
, fontconfig
, freetype
, harfbuzz
@@ -35,6 +36,8 @@ let
libGL
] ++ lib.optionals stdenv.isLinux [
bzip2
+ expat
+ fontconfig
freetype
harfbuzz
libpng
@@ -72,6 +75,8 @@ in mkShell rec {
# TODO: non-linux
] ++ lib.optionals stdenv.isLinux [
bzip2
+ expat
+ fontconfig
freetype
harfbuzz
libpng
diff --git a/pkg/fontconfig/build.zig b/pkg/fontconfig/build.zig
new file mode 100644
index 000000000..6196e32b1
--- /dev/null
+++ b/pkg/fontconfig/build.zig
@@ -0,0 +1,217 @@
+const std = @import("std");
+const builtin = @import("builtin");
+
+/// Directories with our includes.
+const root = thisDir() ++ "../../../vendor/fontconfig-2.14.0/";
+const include_path = root;
+const include_path_self = thisDir();
+
+pub const include_paths = .{ include_path, include_path_self };
+
+pub const pkg = std.build.Pkg{
+ .name = "fontconfig",
+ .source = .{ .path = thisDir() ++ "/main.zig" },
+};
+
+fn thisDir() []const u8 {
+ return std.fs.path.dirname(@src().file) orelse ".";
+}
+
+pub const Options = struct {
+ freetype: Freetype = .{},
+ expat: Expat = .{},
+ libxml2: bool = false,
+
+ pub const Freetype = struct {
+ enabled: bool = false,
+ step: ?*std.build.LibExeObjStep = null,
+ include: ?[]const []const u8 = null,
+ };
+
+ pub const Expat = struct {
+ enabled: bool = false,
+ step: ?*std.build.LibExeObjStep = null,
+ include: ?[]const []const u8 = null,
+ };
+};
+
+pub fn link(
+ b: *std.build.Builder,
+ step: *std.build.LibExeObjStep,
+ opt: Options,
+) !*std.build.LibExeObjStep {
+ const lib = try buildFontconfig(b, step, opt);
+ step.linkLibrary(lib);
+ step.addIncludePath(include_path);
+ step.addIncludePath(include_path_self);
+ return lib;
+}
+
+pub fn buildFontconfig(
+ b: *std.build.Builder,
+ step: *std.build.LibExeObjStep,
+ opt: Options,
+) !*std.build.LibExeObjStep {
+ const target = step.target;
+ const lib = b.addStaticLibrary("fontconfig", null);
+ lib.setTarget(step.target);
+ lib.setBuildMode(step.build_mode);
+
+ // Include
+ lib.addIncludePath(include_path);
+ lib.addIncludePath(include_path_self);
+
+ // Link
+ lib.linkLibC();
+ if (opt.expat.enabled) {
+ if (opt.expat.step) |expat|
+ lib.linkLibrary(expat)
+ else
+ lib.linkSystemLibrary("expat");
+
+ if (opt.expat.include) |dirs|
+ for (dirs) |dir| lib.addIncludePath(dir);
+ }
+ if (opt.freetype.enabled) {
+ if (opt.freetype.step) |freetype|
+ lib.linkLibrary(freetype)
+ else
+ lib.linkSystemLibrary("freetype2");
+
+ if (opt.freetype.include) |dirs|
+ for (dirs) |dir| lib.addIncludePath(dir);
+ }
+ if (!target.isWindows()) {
+ lib.linkSystemLibrary("pthread");
+ }
+
+ // Compile
+ var flags = std.ArrayList([]const u8).init(b.allocator);
+ defer flags.deinit();
+
+ try flags.appendSlice(&.{
+ "-DHAVE_DIRENT_H",
+ "-DHAVE_FCNTL_H",
+ "-DHAVE_STDLIB_H",
+ "-DHAVE_STRING_H",
+ "-DHAVE_UNISTD_H",
+ "-DHAVE_SYS_STATVFS_H",
+ "-DHAVE_SYS_VFS_H",
+ "-DHAVE_SYS_STATFS_H",
+ "-DHAVE_SYS_PARAM_H",
+ "-DHAVE_SYS_MOUNT_H",
+
+ "-DHAVE_LINK",
+ "-DHAVE_MKSTEMP",
+ "-DHAVE_MKOSTEMP",
+ "-DHAVE__MKTEMP_S",
+ "-DHAVE_MKDTEMP",
+ "-DHAVE_GETOPT",
+ "-DHAVE_GETOPT_LONG",
+ //"-DHAVE_GETPROGNAME",
+ //"-DHAVE_GETEXECNAME",
+ "-DHAVE_RAND",
+ "-DHAVE_RANDOM",
+ "-DHAVE_LRAND48",
+ "-DHAVE_RANDOM_R",
+ "-DHAVE_RAND_R",
+ "-DHAVE_READLINK",
+ "-DHAVE_FSTATVFS",
+ "-DHAVE_FSTATFS",
+ "-DHAVE_LSTAT",
+ "-DHAVE_MMAP",
+ "-DHAVE_VPRINTF",
+
+ "-DHAVE_FT_GET_BDF_PROPERTY",
+ "-DHAVE_FT_GET_PS_FONT_INFO",
+ "-DHAVE_FT_HAS_PS_GLYPH_NAMES",
+ "-DHAVE_FT_GET_X11_FONT_FORMAT",
+ "-DHAVE_FT_DONE_MM_VAR",
+
+ "-DHAVE_POSIX_FADVISE",
+
+ //"-DHAVE_STRUCT_STATVFS_F_BASETYPE",
+ // "-DHAVE_STRUCT_STATVFS_F_FSTYPENAME",
+ // "-DHAVE_STRUCT_STATFS_F_FLAGS",
+ // "-DHAVE_STRUCT_STATFS_F_FSTYPENAME",
+ // "-DHAVE_STRUCT_DIRENT_D_TYPE",
+
+ "-DFLEXIBLE_ARRAY_MEMBER",
+
+ "-DHAVE_STDATOMIC_PRIMITIVES",
+
+ "-DFC_GPERF_SIZE_T=size_t",
+
+ // https://gitlab.freedesktop.org/fontconfig/fontconfig/-/merge_requests/231
+ "-fno-sanitize=undefined",
+ "-fno-sanitize-trap=undefined",
+ });
+ const arch = target.cpu_arch orelse builtin.cpu.arch;
+ switch (arch.ptrBitWidth()) {
+ 32 => try flags.appendSlice(&.{
+ "-DSIZEOF_VOID_P=4",
+ "-DALIGNOF_VOID_P=4",
+ }),
+
+ 64 => try flags.appendSlice(&.{
+ "-DSIZEOF_VOID_P=8",
+ "-DALIGNOF_VOID_P=8",
+ }),
+
+ else => @panic("unsupported arch"),
+ }
+
+ if (opt.libxml2) {
+ try flags.appendSlice(&.{
+ "-DENABLE_LIBXML2",
+ });
+ }
+
+ if (!target.isWindows()) {
+ try flags.appendSlice(&.{
+ "-DHAVE_PTHREAD",
+
+ "-DFC_CACHEDIR=\"/var/cache/fontconfig\"",
+ "-DFC_TEMPLATEDIR=\"/usr/share/fontconfig/conf.avail\"",
+ "-DFONTCONFIG_PATH=\"/etc/fonts\"",
+ "-DCONFIGDIR=\"/usr/local/fontconfig/conf.d\"",
+ "-DFC_DEFAULT_FONTS=\"
/usr/share/fonts/usr/local/share/fonts\"",
+ });
+ }
+
+ // C files
+ lib.addCSourceFiles(srcs, flags.items);
+
+ return lib;
+}
+
+const srcs = &.{
+ root ++ "src/fcatomic.c",
+ root ++ "src/fccache.c",
+ root ++ "src/fccfg.c",
+ root ++ "src/fccharset.c",
+ root ++ "src/fccompat.c",
+ root ++ "src/fcdbg.c",
+ root ++ "src/fcdefault.c",
+ root ++ "src/fcdir.c",
+ root ++ "src/fcformat.c",
+ root ++ "src/fcfreetype.c",
+ root ++ "src/fcfs.c",
+ root ++ "src/fcptrlist.c",
+ root ++ "src/fchash.c",
+ root ++ "src/fcinit.c",
+ root ++ "src/fclang.c",
+ root ++ "src/fclist.c",
+ root ++ "src/fcmatch.c",
+ root ++ "src/fcmatrix.c",
+ root ++ "src/fcname.c",
+ root ++ "src/fcobjs.c",
+ root ++ "src/fcpat.c",
+ root ++ "src/fcrange.c",
+ root ++ "src/fcserialize.c",
+ root ++ "src/fcstat.c",
+ root ++ "src/fcstr.c",
+ root ++ "src/fcweight.c",
+ root ++ "src/fcxml.c",
+ root ++ "src/ftglue.c",
+};
diff --git a/pkg/fontconfig/c.zig b/pkg/fontconfig/c.zig
new file mode 100644
index 000000000..c1c243c2d
--- /dev/null
+++ b/pkg/fontconfig/c.zig
@@ -0,0 +1,3 @@
+pub usingnamespace @cImport({
+ @cInclude("fontconfig/fontconfig.h");
+});
diff --git a/pkg/fontconfig/char_set.zig b/pkg/fontconfig/char_set.zig
new file mode 100644
index 000000000..5ab7cd201
--- /dev/null
+++ b/pkg/fontconfig/char_set.zig
@@ -0,0 +1,25 @@
+const std = @import("std");
+const assert = std.debug.assert;
+const c = @import("c.zig");
+
+pub const CharSet = opaque {
+ pub fn create() *CharSet {
+ return @ptrCast(*CharSet, c.FcCharSetCreate());
+ }
+
+ pub fn destroy(self: *CharSet) void {
+ c.FcCharSetDestroy(self.cval());
+ }
+
+ pub inline fn cval(self: *CharSet) *c.struct__FcCharSet {
+ return @ptrCast(
+ *c.struct__FcCharSet,
+ self,
+ );
+ }
+};
+
+test "create" {
+ var fs = CharSet.create();
+ defer fs.destroy();
+}
diff --git a/pkg/fontconfig/common.zig b/pkg/fontconfig/common.zig
new file mode 100644
index 000000000..7a1dd6749
--- /dev/null
+++ b/pkg/fontconfig/common.zig
@@ -0,0 +1,16 @@
+const std = @import("std");
+const c = @import("c.zig");
+
+pub const Result = enum(c_uint) {
+ match = c.FcResultMatch,
+ no_match = c.FcResultNoMatch,
+ type_mismatch = c.FcResultTypeMismatch,
+ no_id = c.FcResultNoId,
+ out_of_memory = c.FcResultOutOfMemory,
+};
+
+pub const MatchKind = enum(c_uint) {
+ pattern = c.FcMatchPattern,
+ font = c.FcMatchFont,
+ scan = c.FcMatchScan,
+};
diff --git a/pkg/fontconfig/config.zig b/pkg/fontconfig/config.zig
new file mode 100644
index 000000000..e22aec3f3
--- /dev/null
+++ b/pkg/fontconfig/config.zig
@@ -0,0 +1,57 @@
+const std = @import("std");
+const c = @import("c.zig");
+const CharSet = @import("char_set.zig").CharSet;
+const FontSet = @import("font_set.zig").FontSet;
+const ObjectSet = @import("object_set.zig").ObjectSet;
+const Pattern = @import("pattern.zig").Pattern;
+const Result = @import("main.zig").Result;
+const MatchKind = @import("main.zig").MatchKind;
+
+pub const Config = opaque {
+ pub fn destroy(self: *Config) void {
+ c.FcConfigDestroy(@ptrCast(*c.struct__FcConfig, self));
+ }
+
+ pub fn fontList(self: *Config, pat: *Pattern, os: *ObjectSet) *FontSet {
+ return @ptrCast(*FontSet, c.FcFontList(self.cval(), pat.cval(), os.cval()));
+ }
+
+ pub fn fontSort(
+ self: *Config,
+ pat: *Pattern,
+ trim: bool,
+ charset: ?[*]*CharSet,
+ ) FontSortResult {
+ var result: FontSortResult = undefined;
+ result.fs = @ptrCast(*FontSet, c.FcFontSort(
+ self.cval(),
+ pat.cval(),
+ if (trim) c.FcTrue else c.FcFalse,
+ @ptrCast([*c]?*c.struct__FcCharSet, charset),
+ @ptrCast([*c]c_uint, &result.result),
+ ));
+
+ return result;
+ }
+
+ pub fn fontRenderPrepare(self: *Config, pat: *Pattern, font: *Pattern) *Pattern {
+ return @ptrCast(*Pattern, c.FcFontRenderPrepare(self.cval(), pat.cval(), font.cval()));
+ }
+
+ pub fn substituteWithPat(self: *Config, pat: *Pattern, kind: MatchKind) bool {
+ return c.FcConfigSubstitute(
+ self.cval(),
+ pat.cval(),
+ @enumToInt(kind),
+ ) == c.FcTrue;
+ }
+
+ pub inline fn cval(self: *Config) *c.struct__FcConfig {
+ return @ptrCast(*c.struct__FcConfig, self);
+ }
+};
+
+pub const FontSortResult = struct {
+ result: Result,
+ fs: *FontSet,
+};
diff --git a/pkg/fontconfig/font_set.zig b/pkg/fontconfig/font_set.zig
new file mode 100644
index 000000000..0651d275c
--- /dev/null
+++ b/pkg/fontconfig/font_set.zig
@@ -0,0 +1,47 @@
+const std = @import("std");
+const assert = std.debug.assert;
+const c = @import("c.zig");
+const Pattern = @import("pattern.zig").Pattern;
+
+pub const FontSet = opaque {
+ pub fn create() *FontSet {
+ return @ptrCast(*FontSet, c.FcFontSetCreate());
+ }
+
+ pub fn destroy(self: *FontSet) void {
+ c.FcFontSetDestroy(self.cval());
+ }
+
+ pub fn fonts(self: *FontSet) []*Pattern {
+ const empty: [0]*Pattern = undefined;
+ const s = self.cval();
+ if (s.fonts == null) return ∅
+ const ptr = @ptrCast([*]*Pattern, @alignCast(@alignOf(*Pattern), s.fonts));
+ const len = @intCast(usize, s.nfont);
+ return ptr[0..len];
+ }
+
+ pub fn add(self: *FontSet, pat: *Pattern) bool {
+ return c.FcFontSetAdd(self.cval(), pat.cval()) == c.FcTrue;
+ }
+
+ pub fn print(self: *FontSet) void {
+ c.FcFontSetPrint(self.cval());
+ }
+
+ pub inline fn cval(self: *FontSet) *c.struct__FcFontSet {
+ return @ptrCast(
+ *c.struct__FcFontSet,
+ @alignCast(@alignOf(c.struct__FcFontSet), self),
+ );
+ }
+};
+
+test "create" {
+ const testing = std.testing;
+
+ var fs = FontSet.create();
+ defer fs.destroy();
+
+ try testing.expectEqual(@as(usize, 0), fs.fonts().len);
+}
diff --git a/pkg/fontconfig/init.zig b/pkg/fontconfig/init.zig
new file mode 100644
index 000000000..2dce4afea
--- /dev/null
+++ b/pkg/fontconfig/init.zig
@@ -0,0 +1,43 @@
+const std = @import("std");
+const c = @import("c.zig");
+const Config = @import("config.zig").Config;
+
+pub fn init() bool {
+ return c.FcInit() == c.FcTrue;
+}
+
+pub fn fini() void {
+ c.FcFini();
+}
+
+pub fn initLoadConfig() *Config {
+ return @ptrCast(*Config, c.FcInitLoadConfig());
+}
+
+pub fn initLoadConfigAndFonts() *Config {
+ return @ptrCast(*Config, c.FcInitLoadConfigAndFonts());
+}
+
+pub fn version() u32 {
+ return @intCast(u32, c.FcGetVersion());
+}
+
+test "version" {
+ const testing = std.testing;
+ try testing.expect(version() > 0);
+}
+
+test "init" {
+ try std.testing.expect(init());
+ defer fini();
+}
+
+test "initLoadConfig" {
+ var config = initLoadConfig();
+ defer config.destroy();
+}
+
+test "initLoadConfigAndFonts" {
+ var config = initLoadConfigAndFonts();
+ defer config.destroy();
+}
diff --git a/pkg/fontconfig/lang_set.zig b/pkg/fontconfig/lang_set.zig
new file mode 100644
index 000000000..113932571
--- /dev/null
+++ b/pkg/fontconfig/lang_set.zig
@@ -0,0 +1,25 @@
+const std = @import("std");
+const assert = std.debug.assert;
+const c = @import("c.zig");
+
+pub const LangSet = opaque {
+ pub fn create() *LangSet {
+ return @ptrCast(*LangSet, c.FcLangSetCreate());
+ }
+
+ pub fn destroy(self: *LangSet) void {
+ c.FcLangSetDestroy(self.cval());
+ }
+
+ pub inline fn cval(self: *LangSet) *c.struct__FcLangSet {
+ return @ptrCast(
+ *c.struct__FcLangSet,
+ self,
+ );
+ }
+};
+
+test "create" {
+ var fs = LangSet.create();
+ defer fs.destroy();
+}
diff --git a/pkg/fontconfig/main.zig b/pkg/fontconfig/main.zig
new file mode 100644
index 000000000..12ee3206e
--- /dev/null
+++ b/pkg/fontconfig/main.zig
@@ -0,0 +1,20 @@
+pub const c = @import("c.zig");
+pub usingnamespace @import("init.zig");
+pub usingnamespace @import("char_set.zig");
+pub usingnamespace @import("common.zig");
+pub usingnamespace @import("config.zig");
+pub usingnamespace @import("font_set.zig");
+pub usingnamespace @import("lang_set.zig");
+pub usingnamespace @import("matrix.zig");
+pub usingnamespace @import("object_set.zig");
+pub usingnamespace @import("pattern.zig");
+pub usingnamespace @import("range.zig");
+pub usingnamespace @import("value.zig");
+
+test {
+ @import("std").testing.refAllDecls(@This());
+}
+
+test {
+ _ = @import("test.zig");
+}
diff --git a/pkg/fontconfig/matrix.zig b/pkg/fontconfig/matrix.zig
new file mode 100644
index 000000000..11a7275ef
--- /dev/null
+++ b/pkg/fontconfig/matrix.zig
@@ -0,0 +1,10 @@
+const std = @import("std");
+const assert = std.debug.assert;
+const c = @import("c.zig");
+
+pub const Matrix = extern struct {
+ xx: f64,
+ xy: f64,
+ yx: f64,
+ yy: f64,
+};
diff --git a/pkg/fontconfig/object_set.zig b/pkg/fontconfig/object_set.zig
new file mode 100644
index 000000000..7d13121a8
--- /dev/null
+++ b/pkg/fontconfig/object_set.zig
@@ -0,0 +1,115 @@
+const std = @import("std");
+const c = @import("c.zig");
+
+pub const ObjectSet = opaque {
+ pub fn create() *ObjectSet {
+ return @ptrCast(*ObjectSet, c.FcObjectSetCreate());
+ }
+
+ pub fn destroy(self: *ObjectSet) void {
+ c.FcObjectSetDestroy(self.cval());
+ }
+
+ pub fn add(self: *ObjectSet, p: Property) bool {
+ return c.FcObjectSetAdd(self.cval(), p.cval().ptr) == c.FcTrue;
+ }
+
+ pub inline fn cval(self: *ObjectSet) *c.struct__FcObjectSet {
+ return @ptrCast(
+ *c.struct__FcObjectSet,
+ @alignCast(@alignOf(c.struct__FcObjectSet), self),
+ );
+ }
+};
+
+pub const Property = enum {
+ family,
+ style,
+ slant,
+ weight,
+ size,
+ aspect,
+ pixel_size,
+ spacing,
+ foundry,
+ antialias,
+ hinting,
+ hint_style,
+ vertical_layout,
+ autohint,
+ global_advance,
+ width,
+ file,
+ index,
+ ft_face,
+ rasterizer,
+ outline,
+ scalable,
+ color,
+ variable,
+ scale,
+ symbol,
+ dpi,
+ rgba,
+ minspace,
+ source,
+ charset,
+ lang,
+ fontversion,
+ fullname,
+ familylang,
+ stylelang,
+ fullnamelang,
+ capability,
+ embolden,
+ embedded_bitmap,
+ decorative,
+ lcd_filter,
+ font_features,
+ font_variations,
+ namelang,
+ prgname,
+ hash,
+ postscript_name,
+ font_has_hint,
+ order,
+
+ fn cval(self: Property) [:0]const u8 {
+ @setEvalBranchQuota(10_000);
+ inline for (@typeInfo(Property).Enum.fields) |field| {
+ if (self == @field(Property, field.name)) {
+ // Build our string in a comptime context so it is a binary
+ // constant and not stack allocated.
+ return comptime name: {
+ // Replace _ with ""
+ var buf: [field.name.len]u8 = undefined;
+ const count = std.mem.replace(u8, field.name, "_", "", &buf);
+ const replaced = buf[0 .. field.name.len - count];
+
+ // Build our string
+ var name: [replaced.len:0]u8 = undefined;
+ std.mem.copy(u8, &name, replaced);
+ name[replaced.len] = 0;
+ break :name &name;
+ };
+ }
+ }
+
+ unreachable;
+ }
+
+ test "cval" {
+ const testing = std.testing;
+ try testing.expectEqualStrings("family", Property.family.cval());
+ try testing.expectEqualStrings("pixelsize", Property.pixel_size.cval());
+ }
+};
+
+test "create" {
+ const testing = std.testing;
+
+ var os = ObjectSet.create();
+ defer os.destroy();
+
+ try testing.expect(os.add(.family));
+}
diff --git a/pkg/fontconfig/pattern.zig b/pkg/fontconfig/pattern.zig
new file mode 100644
index 000000000..cee9c708f
--- /dev/null
+++ b/pkg/fontconfig/pattern.zig
@@ -0,0 +1,136 @@
+const std = @import("std");
+const assert = std.debug.assert;
+const c = @import("c.zig");
+const ObjectSet = @import("main.zig").ObjectSet;
+const Result = @import("main.zig").Result;
+const Value = @import("main.zig").Value;
+const ValueBinding = @import("main.zig").ValueBinding;
+
+pub const Pattern = opaque {
+ pub fn create() *Pattern {
+ return @ptrCast(*Pattern, c.FcPatternCreate());
+ }
+
+ pub fn parse(str: [:0]const u8) *Pattern {
+ return @ptrCast(*Pattern, c.FcNameParse(str.ptr));
+ }
+
+ pub fn destroy(self: *Pattern) void {
+ c.FcPatternDestroy(self.cval());
+ }
+
+ pub fn defaultSubstitute(self: *Pattern) void {
+ c.FcDefaultSubstitute(self.cval());
+ }
+
+ pub fn delete(self: *Pattern, obj: [:0]const u8) bool {
+ return c.FcPatternDel(self.cval(), obj.ptr) == c.FcTrue;
+ }
+
+ pub fn filter(self: *Pattern, os: *const ObjectSet) *Pattern {
+ return @ptrCast(*Pattern, c.FcPatternFilter(self.cval(), os.cval()));
+ }
+
+ pub fn objectIterator(self: *Pattern) ObjectIterator {
+ return .{ .pat = self.cval(), .iter = null };
+ }
+
+ pub fn print(self: *Pattern) void {
+ c.FcPatternPrint(self.cval());
+ }
+
+ pub inline fn cval(self: *Pattern) *c.struct__FcPattern {
+ return @ptrCast(*c.struct__FcPattern, self);
+ }
+
+ pub const ObjectIterator = struct {
+ pat: *c.struct__FcPattern,
+ iter: ?c.struct__FcPatternIter,
+
+ /// Move to the next object, returns true if there is another
+ /// object and false otherwise. If this is the first call, this
+ /// will be teh first object.
+ pub fn next(self: *ObjectIterator) bool {
+ // Null means our first iterator
+ if (self.iter == null) {
+ // If we have no objects, do not create iterator
+ if (c.FcPatternObjectCount(self.pat) == 0) return false;
+
+ var iter: c.struct__FcPatternIter = undefined;
+ c.FcPatternIterStart(
+ self.pat,
+ &iter,
+ );
+ assert(c.FcPatternIterIsValid(self.pat, &iter) == c.FcTrue);
+ self.iter = iter;
+
+ // Return right away because the fontconfig iterator pattern
+ // is do/while.
+ return true;
+ }
+
+ return c.FcPatternIterNext(
+ self.pat,
+ @ptrCast([*c]c.struct__FcPatternIter, &self.iter),
+ ) == c.FcTrue;
+ }
+
+ pub fn object(self: *ObjectIterator) []const u8 {
+ return std.mem.sliceTo(c.FcPatternIterGetObject(
+ self.pat,
+ &self.iter.?,
+ ), 0);
+ }
+
+ pub fn valueLen(self: *ObjectIterator) usize {
+ return @intCast(usize, c.FcPatternIterValueCount(self.pat, &self.iter.?));
+ }
+
+ pub fn valueIterator(self: *ObjectIterator) ValueIterator {
+ return .{
+ .pat = self.pat,
+ .iter = &self.iter.?,
+ .max = c.FcPatternIterValueCount(self.pat, &self.iter.?),
+ };
+ }
+ };
+
+ pub const ValueIterator = struct {
+ pat: *c.struct__FcPattern,
+ iter: *c.struct__FcPatternIter,
+ max: c_int,
+ id: c_int = 0,
+
+ pub const Entry = struct {
+ result: Result,
+ value: Value,
+ binding: ValueBinding,
+ };
+
+ pub fn next(self: *ValueIterator) ?Entry {
+ if (self.id >= self.max) return null;
+ var value: c.struct__FcValue = undefined;
+ var binding: c.FcValueBinding = undefined;
+ const result = c.FcPatternIterGetValue(self.pat, self.iter, self.id, &value, &binding);
+ self.id += 1;
+
+ return Entry{
+ .result = @intToEnum(Result, result),
+ .binding = @intToEnum(ValueBinding, binding),
+ .value = Value.init(&value),
+ };
+ }
+ };
+};
+
+test "create" {
+ var pat = Pattern.create();
+ defer pat.destroy();
+}
+
+test "name parse" {
+ var pat = Pattern.parse(":monospace");
+ defer pat.destroy();
+
+ pat.defaultSubstitute();
+}
diff --git a/pkg/fontconfig/range.zig b/pkg/fontconfig/range.zig
new file mode 100644
index 000000000..fd7addaa8
--- /dev/null
+++ b/pkg/fontconfig/range.zig
@@ -0,0 +1,16 @@
+const std = @import("std");
+const assert = std.debug.assert;
+const c = @import("c.zig");
+
+pub const Range = opaque {
+ pub fn destroy(self: *Range) void {
+ c.FcRangeDestroy(self.cval());
+ }
+
+ pub inline fn cval(self: *Range) *c.struct__FcRange {
+ return @ptrCast(
+ *c.struct__FcRange,
+ self,
+ );
+ }
+};
diff --git a/pkg/fontconfig/test.zig b/pkg/fontconfig/test.zig
new file mode 100644
index 000000000..7f2f2d063
--- /dev/null
+++ b/pkg/fontconfig/test.zig
@@ -0,0 +1,66 @@
+const std = @import("std");
+const fontconfig = @import("main.zig");
+
+test "fc-list" {
+ const testing = std.testing;
+
+ var cfg = fontconfig.initLoadConfigAndFonts();
+ defer cfg.destroy();
+
+ var pat = fontconfig.Pattern.create();
+ defer pat.destroy();
+
+ var os = fontconfig.ObjectSet.create();
+ defer os.destroy();
+
+ var fs = cfg.fontList(pat, os);
+ defer fs.destroy();
+
+ // Note: this is environmental, but in general we expect all our
+ // testing environments to have at least one font.
+ try testing.expect(fs.fonts().len > 0);
+}
+
+test "fc-match" {
+ const testing = std.testing;
+
+ var cfg = fontconfig.initLoadConfigAndFonts();
+ defer cfg.destroy();
+
+ var pat = fontconfig.Pattern.create();
+ errdefer pat.destroy();
+ try testing.expect(cfg.substituteWithPat(pat, .pattern));
+ pat.defaultSubstitute();
+
+ const result = cfg.fontSort(pat, false, null);
+ errdefer result.fs.destroy();
+
+ var fs = fontconfig.FontSet.create();
+ defer fs.destroy();
+ defer for (fs.fonts()) |font| font.destroy();
+
+ {
+ const fonts = result.fs.fonts();
+ try testing.expect(fonts.len > 0);
+ for (fonts) |font| {
+ var pat_prep = cfg.fontRenderPrepare(pat, font);
+ try testing.expect(fs.add(pat_prep));
+ }
+ result.fs.destroy();
+ pat.destroy();
+ }
+
+ {
+ for (fs.fonts()) |font| {
+ var it = font.objectIterator();
+ while (it.next()) {
+ try testing.expect(it.object().len > 0);
+ try testing.expect(it.valueLen() > 0);
+ var value_it = it.valueIterator();
+ while (value_it.next()) |entry| {
+ try testing.expect(entry.value != .unknown);
+ }
+ }
+ }
+ }
+}
diff --git a/pkg/fontconfig/value.zig b/pkg/fontconfig/value.zig
new file mode 100644
index 000000000..4103c7528
--- /dev/null
+++ b/pkg/fontconfig/value.zig
@@ -0,0 +1,57 @@
+const std = @import("std");
+const assert = std.debug.assert;
+const c = @import("c.zig");
+const CharSet = @import("main.zig").CharSet;
+const LangSet = @import("main.zig").LangSet;
+const Matrix = @import("main.zig").Matrix;
+const Range = @import("main.zig").Range;
+
+pub const Type = enum(c_int) {
+ unknown = c.FcTypeUnknown,
+ @"void" = c.FcTypeVoid,
+ integer = c.FcTypeInteger,
+ double = c.FcTypeDouble,
+ string = c.FcTypeString,
+ @"bool" = c.FcTypeBool,
+ matrix = c.FcTypeMatrix,
+ char_set = c.FcTypeCharSet,
+ ft_face = c.FcTypeFTFace,
+ lang_set = c.FcTypeLangSet,
+ range = c.FcTypeRange,
+};
+
+pub const Value = union(Type) {
+ unknown: void,
+ @"void": void,
+ integer: u32,
+ double: f64,
+ string: []const u8,
+ @"bool": bool,
+ matrix: *const Matrix,
+ char_set: *const CharSet,
+ ft_face: *anyopaque,
+ lang_set: *const LangSet,
+ range: *const Range,
+
+ pub fn init(cvalue: *c.struct__FcValue) Value {
+ return switch (@intToEnum(Type, cvalue.@"type")) {
+ .unknown => .{ .unknown = {} },
+ .@"void" => .{ .@"void" = {} },
+ .string => .{ .string = std.mem.sliceTo(cvalue.u.s, 0) },
+ .integer => .{ .integer = @intCast(u32, cvalue.u.i) },
+ .double => .{ .double = cvalue.u.d },
+ .@"bool" => .{ .@"bool" = cvalue.u.b == c.FcTrue },
+ .matrix => .{ .matrix = @ptrCast(*const Matrix, cvalue.u.m) },
+ .char_set => .{ .char_set = @ptrCast(*const CharSet, cvalue.u.c) },
+ .ft_face => .{ .ft_face = @ptrCast(*anyopaque, cvalue.u.f) },
+ .lang_set => .{ .lang_set = @ptrCast(*const LangSet, cvalue.u.l) },
+ .range => .{ .range = @ptrCast(*const Range, cvalue.u.r) },
+ };
+ }
+};
+
+pub const ValueBinding = enum(c_int) {
+ weak = c.FcValueBindingWeak,
+ strong = c.FcValueBindingStrong,
+ same = c.FcValueBindingSame,
+};
diff --git a/pkg/freetype/build.zig b/pkg/freetype/build.zig
index 5c35ae9be..c4cf4690c 100644
--- a/pkg/freetype/build.zig
+++ b/pkg/freetype/build.zig
@@ -88,6 +88,8 @@ pub fn buildFreetype(
"-DHAVE_UNISTD_H",
"-DHAVE_FCNTL_H",
+
+ //"-fno-sanitize=undefined",
});
if (opt.libpng.enabled) try flags.append("-DFT_CONFIG_OPTION_USE_PNG=1");
if (opt.zlib.enabled) try flags.append("-DFT_CONFIG_OPTION_SYSTEM_ZLIB=1");
diff --git a/src/Window.zig b/src/Window.zig
index 523909fea..2dc67367a 100644
--- a/src/Window.zig
+++ b/src/Window.zig
@@ -1296,7 +1296,7 @@ fn ttyRead(t: *libuv.Tty, n: isize, buf: []const u8) void {
// Empirically, this alone improved throughput of large text output by ~20%.
var i: usize = 0;
const end = @intCast(usize, n);
- if (win.terminal_stream.parser.state == .ground) {
+ if (win.terminal_stream.parser.state == .ground and false) {
for (buf[i..end]) |c| {
switch (terminal.parse_table.table[c][@enumToInt(terminal.Parser.State.ground)].action) {
// Print, call directly.
diff --git a/src/main.zig b/src/main.zig
index 53c401d24..c01c6cbd3 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -2,6 +2,7 @@ const builtin = @import("builtin");
const options = @import("build_options");
const std = @import("std");
const glfw = @import("glfw");
+const fontconfig = @import("fontconfig");
const freetype = @import("freetype");
const harfbuzz = @import("harfbuzz");
const tracy = @import("tracy");
@@ -14,9 +15,10 @@ const log = std.log.scoped(.main);
pub fn main() !void {
// Output some debug information right away
- log.info("dependency versions harfbuzz={s}", .{
- harfbuzz.versionString(),
- });
+ log.info("dependency harfbuzz={s}", .{harfbuzz.versionString()});
+ if (builtin.os.tag == .linux) {
+ log.info("dependency fontconfig={d}", .{fontconfig.version()});
+ }
const gpa = gpa: {
// Use the libc allocator if it is available beacuse it is WAY
diff --git a/vendor/fontconfig-2.14.0/ABOUT-NLS b/vendor/fontconfig-2.14.0/ABOUT-NLS
new file mode 100644
index 000000000..15514263f
--- /dev/null
+++ b/vendor/fontconfig-2.14.0/ABOUT-NLS
@@ -0,0 +1,1379 @@
+1 Notes on the Free Translation Project
+***************************************
+
+Free software is going international! The Free Translation Project is a
+way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages. A few packages already provide translations for their
+messages.
+
+ If you found this 'ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU 'gettext' internally,
+itself available at your nearest GNU archive site. But you do _not_
+need to install GNU 'gettext' prior to configuring, installing or using
+this package with messages translated.
+
+ Installers will find here some useful hints. These notes also
+explain how users should proceed for getting the programs to use the
+available translations. They tell how people wanting to contribute and
+work on translations can contact the appropriate team.
+
+1.1 INSTALL Matters
+===================
+
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language. Most such
+packages use GNU 'gettext'. Other packages have their own ways to
+internationalization, predating GNU 'gettext'.
+
+ By default, this package will be installed to allow translation of
+messages. It will automatically detect whether the system already
+provides the GNU 'gettext' functions. Installers may use special
+options at configuration time for changing the default behaviour. The
+command:
+
+ ./configure --disable-nls
+
+will _totally_ disable translation of messages.
+
+ When you already have GNU 'gettext' installed on your system and run
+configure without an option for your new package, 'configure' will
+probably detect the previously built and installed 'libintl' library and
+will decide to use it. If not, you may have to to use the
+'--with-libintl-prefix' option to tell 'configure' where to look for it.
+
+ Internationalized packages usually have many 'po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language. Unless
+translations have been forbidden at 'configure' time by using the
+'--disable-nls' switch, all available translations are installed
+together with the package. However, the environment variable 'LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+'LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+1.2 Using This Package
+======================
+
+As a user, if your language has been installed for this package, you
+only have to set the 'LANG' environment variable to the appropriate
+'LL_CC' combination. If you happen to have the 'LC_ALL' or some other
+'LC_xxx' environment variables set, you should unset them before setting
+'LANG', otherwise the setting of 'LANG' will not have the desired
+effect. Here 'LL' is an ISO 639 two-letter language code, and 'CC' is
+an ISO 3166 two-letter country code. For example, let's suppose that
+you speak German and live in Germany. At the shell prompt, merely
+execute 'setenv LANG de_DE' (in 'csh'), 'export LANG; LANG=de_DE' (in
+'sh') or 'export LANG=de_DE' (in 'bash'). This can be done from your
+'.login' or '.profile' file, once and for all.
+
+ You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries. For
+example, 'de_AT' is used for Austria, and 'pt_BR' for Brazil. The
+country code serves to distinguish the dialects.
+
+ The locale naming convention of 'LL_CC', with 'LL' denoting the
+language and 'CC' denoting the country, is the one use on systems based
+on GNU libc. On other systems, some variations of this scheme are used,
+such as 'LL' or 'LL_CC.ENCODING'. You can get the list of locales
+supported by your system for your language by running the command
+'locale -a | grep '^LL''.
+
+ Not all programs have translations for all languages. By default, an
+English message is shown in place of a nonexistent translation. If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+'LANGUAGE'. GNU 'gettext' gives preference to 'LANGUAGE' over 'LANG'
+for the purpose of message handling, but you still need to have 'LANG'
+set to the primary language; this is required by other parts of the
+system libraries. For example, some Swedish users who would rather read
+translations in German than English for when Swedish is not available,
+set 'LANGUAGE' to 'sv:de' while leaving 'LANG' to 'sv_SE'.
+
+ Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from 'no' to 'nb' recently (in 2003). During the
+transition period, while some message catalogs for this language are
+installed under 'nb' and some older ones under 'no', it's recommended
+for Norwegian users to set 'LANGUAGE' to 'nb:no' so that both newer and
+older translations are used.
+
+ In the 'LANGUAGE' environment variable, but not in the 'LANG'
+environment variable, 'LL_CC' combinations can be abbreviated as 'LL' to
+denote the language's main dialect. For example, 'de' is equivalent to
+'de_DE' (German as spoken in Germany), and 'pt' to 'pt_PT' (Portuguese
+as spoken in Portugal) in this context.
+
+1.3 Translating Teams
+=====================
+
+For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list. The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+'http://translationproject.org/', in the "Teams" area.
+
+ If you'd like to volunteer to _work_ at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is _not_ the same as the list itself, it has
+'-request' appended. For example, speakers of Swedish can send a
+message to 'sv-request@li.org', having this message body:
+
+ subscribe
+
+ Keep in mind that team members are expected to participate _actively_
+in translations, or at solving translational difficulties, rather than
+merely lurking around. If your team does not exist yet and you want to
+start one, or if you are unsure about what to do or how to get started,
+please write to 'coordinator@translationproject.org' to reach the
+coordinator for all translator teams.
+
+ The English team is special. It works at improving and uniformizing
+the terminology in use. Proven linguistic skills are praised more than
+programming skills, here.
+
+1.4 Available Packages
+======================
+
+Languages are not equally supported in all packages. The following
+matrix shows the current state of internationalization, as of Jun 2014.
+The matrix shows, in regard of each package, for which languages PO
+files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+ Ready PO files af am an ar as ast az be bg bn bn_IN bs ca crh cs
+ +---------------------------------------------------+
+ a2ps | [] [] [] |
+ aegis | |
+ anubis | |
+ aspell | [] [] [] |
+ bash | [] [] [] |
+ bfd | |
+ binutils | [] |
+ bison | |
+ bison-runtime | [] |
+ buzztrax | [] |
+ ccd2cue | |
+ ccide | |
+ cflow | |
+ clisp | |
+ coreutils | [] [] |
+ cpio | |
+ cppi | |
+ cpplib | [] |
+ cryptsetup | [] |
+ datamash | |
+ denemo | [] [] |
+ dfarc | [] |
+ dialog | [] [] [] |
+ dico | |
+ diffutils | [] |
+ dink | [] |
+ direvent | |
+ doodle | [] |
+ dos2unix | |
+ dos2unix-man | |
+ e2fsprogs | [] [] |
+ enscript | [] |
+ exif | [] |
+ fetchmail | [] [] |
+ findutils | [] |
+ flex | [] |
+ freedink | [] [] |
+ fusionforge | |
+ gas | |
+ gawk | [] |
+ gcal | [] |
+ gcc | |
+ gdbm | |
+ gettext-examples | [] [] [] [] [] |
+ gettext-runtime | [] [] [] |
+ gettext-tools | [] [] |
+ gjay | |
+ glunarclock | [] [] [] |
+ gnubiff | [] |
+ gnubik | [] |
+ gnucash | () () [] |
+ gnuchess | |
+ gnulib | [] |
+ gnunet | |
+ gnunet-gtk | |
+ gold | |
+ gphoto2 | [] |
+ gprof | [] |
+ gramadoir | |
+ grep | [] [] [] |
+ grub | [] |
+ gsasl | |
+ gss | |
+ gst-plugins-bad | [] |
+ gst-plugins-base | [] [] [] |
+ gst-plugins-good | [] [] [] |
+ gst-plugins-ugly | [] [] [] |
+ gstreamer | [] [] [] [] |
+ gtick | [] |
+ gtkam | [] [] |
+ gtkspell | [] [] [] [] [] |
+ guix | |
+ guix-packages | |
+ gutenprint | [] |
+ hello | [] |
+ help2man | |
+ help2man-texi | |
+ hylafax | |
+ idutils | |
+ iso_15924 | [] |
+ iso_3166 | [] [] [] [] [] [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_4217 | [] |
+ iso_639 | [] [] [] [] [] [] [] [] [] |
+ iso_639_3 | [] [] |
+ iso_639_5 | |
+ jwhois | |
+ kbd | [] |
+ klavaro | [] [] [] [] [] |
+ latrine | |
+ ld | [] |
+ leafpad | [] [] [] [] |
+ libc | [] [] [] |
+ libexif | () |
+ libextractor | |
+ libgnutls | [] |
+ libgphoto2 | [] |
+ libgphoto2_port | [] |
+ libgsasl | |
+ libiconv | [] [] |
+ libidn | [] |
+ liferea | [] [] [] [] |
+ lilypond | [] [] |
+ lordsawar | [] |
+ lprng | |
+ lynx | [] [] |
+ m4 | [] |
+ mailfromd | |
+ mailutils | |
+ make | [] |
+ man-db | [] [] |
+ man-db-manpages | |
+ midi-instruments | [] [] [] |
+ minicom | [] |
+ mkisofs | [] |
+ myserver | [] |
+ nano | [] [] [] |
+ opcodes | |
+ parted | [] |
+ pies | |
+ popt | [] |
+ procps-ng | |
+ procps-ng-man | |
+ psmisc | [] |
+ pspp | [] |
+ pushover | [] |
+ pwdutils | |
+ pyspread | |
+ radius | [] |
+ recode | [] [] [] |
+ recutils | |
+ rpm | |
+ rush | |
+ sarg | |
+ sed | [] [] [] |
+ sharutils | [] |
+ shishi | |
+ skribilo | |
+ solfege | [] |
+ solfege-manual | |
+ spotmachine | |
+ sudo | [] [] |
+ sudoers | [] [] |
+ sysstat | [] |
+ tar | [] [] [] |
+ texinfo | [] [] |
+ texinfo_document | [] |
+ tigervnc | [] |
+ tin | |
+ tin-man | |
+ tracgoogleappsa... | |
+ trader | |
+ util-linux | [] |
+ ve | |
+ vice | |
+ vmm | |
+ vorbis-tools | [] |
+ wastesedge | |
+ wcd | |
+ wcd-man | |
+ wdiff | [] [] |
+ wget | [] |
+ wyslij-po | |
+ xboard | |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] |
+ +---------------------------------------------------+
+ af am an ar as ast az be bg bn bn_IN bs ca crh cs
+ 4 0 2 5 3 11 0 8 23 3 3 1 54 4 73
+
+ da de el en en_GB en_ZA eo es et eu fa fi fr
+ +--------------------------------------------------+
+ a2ps | [] [] [] [] [] [] [] [] [] |
+ aegis | [] [] [] [] |
+ anubis | [] [] [] [] [] |
+ aspell | [] [] [] [] [] [] [] |
+ bash | [] [] [] |
+ bfd | [] [] [] [] |
+ binutils | [] [] [] |
+ bison | [] [] [] [] [] [] [] [] |
+ bison-runtime | [] [] [] [] [] [] [] [] |
+ buzztrax | [] [] [] [] |
+ ccd2cue | [] [] [] |
+ ccide | [] [] [] [] [] [] |
+ cflow | [] [] [] [] [] |
+ clisp | [] [] [] [] [] |
+ coreutils | [] [] [] [] [] |
+ cpio | [] [] [] [] [] |
+ cppi | [] [] [] [] [] |
+ cpplib | [] [] [] [] [] [] |
+ cryptsetup | [] [] [] [] [] |
+ datamash | [] [] [] [] |
+ denemo | [] |
+ dfarc | [] [] [] [] [] [] |
+ dialog | [] [] [] [] [] [] [] [] [] |
+ dico | [] [] [] [] |
+ diffutils | [] [] [] [] [] [] |
+ dink | [] [] [] [] [] [] |
+ direvent | [] [] [] [] |
+ doodle | [] [] [] [] |
+ dos2unix | [] [] [] [] [] |
+ dos2unix-man | [] [] [] |
+ e2fsprogs | [] [] [] [] [] |
+ enscript | [] [] [] [] [] [] |
+ exif | [] [] [] [] [] [] |
+ fetchmail | [] () [] [] [] [] [] |
+ findutils | [] [] [] [] [] [] [] [] |
+ flex | [] [] [] [] [] [] |
+ freedink | [] [] [] [] [] [] [] [] |
+ fusionforge | [] [] [] |
+ gas | [] [] [] |
+ gawk | [] [] [] [] [] |
+ gcal | [] [] [] [] |
+ gcc | [] [] |
+ gdbm | [] [] [] [] [] |
+ gettext-examples | [] [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] [] |
+ gjay | [] [] [] [] |
+ glunarclock | [] [] [] [] [] |
+ gnubiff | () [] [] () |
+ gnubik | [] [] [] [] [] |
+ gnucash | [] () () () () () () |
+ gnuchess | [] [] [] [] |
+ gnulib | [] [] [] [] [] [] [] |
+ gnunet | [] |
+ gnunet-gtk | [] |
+ gold | [] [] [] |
+ gphoto2 | [] () [] [] |
+ gprof | [] [] [] [] [] [] |
+ gramadoir | [] [] [] [] [] |
+ grep | [] [] [] [] [] [] [] |
+ grub | [] [] [] [] [] |
+ gsasl | [] [] [] [] [] |
+ gss | [] [] [] [] [] |
+ gst-plugins-bad | [] [] |
+ gst-plugins-base | [] [] [] [] [] [] |
+ gst-plugins-good | [] [] [] [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] [] [] |
+ gtick | [] () [] [] [] |
+ gtkam | [] () [] [] [] [] |
+ gtkspell | [] [] [] [] [] [] [] [] |
+ guix | [] [] |
+ guix-packages | |
+ gutenprint | [] [] [] [] |
+ hello | [] [] [] [] [] [] [] [] |
+ help2man | [] [] [] [] [] [] [] |
+ help2man-texi | [] [] [] |
+ hylafax | [] [] |
+ idutils | [] [] [] [] [] |
+ iso_15924 | [] () [] [] () [] () |
+ iso_3166 | [] () [] [] [] [] () [] () |
+ iso_3166_2 | [] () () () |
+ iso_4217 | [] () [] [] [] () [] () |
+ iso_639 | [] () [] [] () [] () |
+ iso_639_3 | () () () |
+ iso_639_5 | () () () |
+ jwhois | [] [] [] [] [] |
+ kbd | [] [] [] [] [] [] |
+ klavaro | [] [] [] [] [] [] [] |
+ latrine | [] () [] [] |
+ ld | [] [] [] [] |
+ leafpad | [] [] [] [] [] [] [] [] |
+ libc | [] [] [] [] [] |
+ libexif | [] [] () [] [] |
+ libextractor | [] |
+ libgnutls | [] [] [] [] |
+ libgphoto2 | [] () [] |
+ libgphoto2_port | [] () [] [] [] [] |
+ libgsasl | [] [] [] [] [] |
+ libiconv | [] [] [] [] [] [] [] |
+ libidn | [] [] [] [] [] |
+ liferea | [] () [] [] [] [] [] |
+ lilypond | [] [] [] [] [] [] |
+ lordsawar | [] [] |
+ lprng | |
+ lynx | [] [] [] [] [] [] |
+ m4 | [] [] [] [] [] [] |
+ mailfromd | [] |
+ mailutils | [] [] [] [] |
+ make | [] [] [] [] [] |
+ man-db | [] [] [] [] |
+ man-db-manpages | [] [] |
+ midi-instruments | [] [] [] [] [] [] [] [] [] |
+ minicom | [] [] [] [] [] |
+ mkisofs | [] [] [] |
+ myserver | [] [] [] [] |
+ nano | [] [] [] [] [] [] [] |
+ opcodes | [] [] [] [] [] |
+ parted | [] [] [] |
+ pies | [] |
+ popt | [] [] [] [] [] [] |
+ procps-ng | [] [] |
+ procps-ng-man | [] [] |
+ psmisc | [] [] [] [] [] [] [] |
+ pspp | [] [] [] |
+ pushover | () [] [] [] |
+ pwdutils | [] [] [] |
+ pyspread | [] [] [] |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] |
+ recutils | [] [] [] [] |
+ rpm | [] [] [] [] [] |
+ rush | [] [] [] |
+ sarg | [] [] |
+ sed | [] [] [] [] [] [] [] [] |
+ sharutils | [] [] [] [] |
+ shishi | [] [] [] |
+ skribilo | [] [] |
+ solfege | [] [] [] [] [] [] [] [] |
+ solfege-manual | [] [] [] [] [] |
+ spotmachine | [] [] [] [] |
+ sudo | [] [] [] [] [] [] |
+ sudoers | [] [] [] [] [] [] |
+ sysstat | [] [] [] [] [] [] |
+ tar | [] [] [] [] [] [] [] |
+ texinfo | [] [] [] [] [] |
+ texinfo_document | [] [] [] [] |
+ tigervnc | [] [] [] [] [] [] |
+ tin | [] [] [] [] |
+ tin-man | [] |
+ tracgoogleappsa... | [] [] [] [] [] |
+ trader | [] [] [] [] [] [] |
+ util-linux | [] [] [] [] |
+ ve | [] [] [] [] [] |
+ vice | () () () |
+ vmm | [] [] |
+ vorbis-tools | [] [] [] [] |
+ wastesedge | [] () |
+ wcd | [] [] [] [] |
+ wcd-man | [] |
+ wdiff | [] [] [] [] [] [] [] |
+ wget | [] [] [] [] [] [] |
+ wyslij-po | [] [] [] [] |
+ xboard | [] [] [] [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] [] [] [] [] |
+ +--------------------------------------------------+
+ da de el en en_GB en_ZA eo es et eu fa fi fr
+ 120 130 32 1 6 0 94 95 22 13 4 103 136
+
+ ga gd gl gu he hi hr hu hy ia id is it ja ka kk
+ +-------------------------------------------------+
+ a2ps | [] [] [] [] |
+ aegis | [] |
+ anubis | [] [] [] [] |
+ aspell | [] [] [] [] [] |
+ bash | [] [] [] |
+ bfd | [] [] |
+ binutils | [] [] [] |
+ bison | [] |
+ bison-runtime | [] [] [] [] [] [] [] [] |
+ buzztrax | |
+ ccd2cue | [] |
+ ccide | [] [] |
+ cflow | [] [] [] |
+ clisp | |
+ coreutils | [] [] [] |
+ cpio | [] [] [] [] [] [] |
+ cppi | [] [] [] [] [] |
+ cpplib | [] [] |
+ cryptsetup | [] |
+ datamash | |
+ denemo | [] |
+ dfarc | [] [] [] |
+ dialog | [] [] [] [] [] [] [] [] [] [] |
+ dico | |
+ diffutils | [] [] [] [] |
+ dink | [] |
+ direvent | [] |
+ doodle | [] [] |
+ dos2unix | [] [] |
+ dos2unix-man | |
+ e2fsprogs | [] |
+ enscript | [] [] [] |
+ exif | [] [] [] [] [] [] |
+ fetchmail | [] [] [] |
+ findutils | [] [] [] [] [] [] [] |
+ flex | [] |
+ freedink | [] [] [] [] |
+ fusionforge | |
+ gas | [] |
+ gawk | [] () [] |
+ gcal | |
+ gcc | |
+ gdbm | |
+ gettext-examples | [] [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] [] |
+ gettext-tools | [] [] [] |
+ gjay | [] |
+ glunarclock | [] [] [] [] [] [] |
+ gnubiff | [] [] () |
+ gnubik | [] [] [] |
+ gnucash | () () () () () [] |
+ gnuchess | |
+ gnulib | [] [] [] [] [] |
+ gnunet | |
+ gnunet-gtk | |
+ gold | [] [] |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] [] [] |
+ gramadoir | [] [] [] |
+ grep | [] [] [] [] [] [] [] |
+ grub | [] [] [] |
+ gsasl | [] [] [] [] [] |
+ gss | [] [] [] [] [] |
+ gst-plugins-bad | [] |
+ gst-plugins-base | [] [] [] [] |
+ gst-plugins-good | [] [] [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] |
+ gtick | [] [] [] [] [] |
+ gtkam | [] [] [] [] [] |
+ gtkspell | [] [] [] [] [] [] [] [] [] [] |
+ guix | |
+ guix-packages | |
+ gutenprint | [] [] [] |
+ hello | [] [] [] [] [] |
+ help2man | [] [] [] |
+ help2man-texi | |
+ hylafax | [] |
+ idutils | [] [] |
+ iso_15924 | [] [] [] [] [] [] |
+ iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ iso_3166_2 | [] [] |
+ iso_4217 | [] [] [] [] [] [] |
+ iso_639 | [] [] [] [] [] [] [] [] [] |
+ iso_639_3 | [] [] |
+ iso_639_5 | |
+ jwhois | [] [] [] [] |
+ kbd | [] [] [] |
+ klavaro | [] [] [] [] [] |
+ latrine | [] |
+ ld | [] [] [] [] |
+ leafpad | [] [] [] [] [] [] [] () |
+ libc | [] [] [] [] [] |
+ libexif | [] |
+ libextractor | |
+ libgnutls | [] |
+ libgphoto2 | [] [] |
+ libgphoto2_port | [] [] |
+ libgsasl | [] [] [] [] |
+ libiconv | [] [] [] [] [] [] [] |
+ libidn | [] [] [] [] |
+ liferea | [] [] [] [] [] |
+ lilypond | [] |
+ lordsawar | |
+ lprng | [] |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] [] |
+ mailfromd | |
+ mailutils | |
+ make | [] [] [] [] |
+ man-db | [] [] |
+ man-db-manpages | [] [] |
+ midi-instruments | [] [] [] [] [] [] [] [] [] |
+ minicom | [] [] [] |
+ mkisofs | [] [] |
+ myserver | [] |
+ nano | [] [] [] [] [] |
+ opcodes | [] [] [] |
+ parted | [] [] [] [] |
+ pies | |
+ popt | [] [] [] [] [] [] [] [] [] [] |
+ procps-ng | |
+ procps-ng-man | |
+ psmisc | [] [] [] [] |
+ pspp | [] [] |
+ pushover | [] |
+ pwdutils | [] |
+ pyspread | |
+ radius | [] |
+ recode | [] [] [] [] [] [] [] |
+ recutils | |
+ rpm | [] |
+ rush | [] |
+ sarg | |
+ sed | [] [] [] [] [] [] [] |
+ sharutils | |
+ shishi | |
+ skribilo | [] |
+ solfege | [] [] |
+ solfege-manual | |
+ spotmachine | |
+ sudo | [] [] [] [] |
+ sudoers | [] [] [] |
+ sysstat | [] [] [] |
+ tar | [] [] [] [] [] [] |
+ texinfo | [] [] [] |
+ texinfo_document | [] [] |
+ tigervnc | |
+ tin | |
+ tin-man | |
+ tracgoogleappsa... | [] [] [] [] |
+ trader | [] [] |
+ util-linux | [] |
+ ve | [] |
+ vice | () () |
+ vmm | |
+ vorbis-tools | [] [] |
+ wastesedge | () |
+ wcd | |
+ wcd-man | |
+ wdiff | [] [] [] |
+ wget | [] [] [] |
+ wyslij-po | [] [] [] |
+ xboard | |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] [] [] |
+ +-------------------------------------------------+
+ ga gd gl gu he hi hr hu hy ia id is it ja ka kk
+ 35 2 47 4 8 2 53 69 2 6 80 11 86 58 0 3
+
+ kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl
+ +--------------------------------------------------+
+ a2ps | [] [] |
+ aegis | [] |
+ anubis | [] [] [] |
+ aspell | [] [] |
+ bash | [] [] |
+ bfd | |
+ binutils | |
+ bison | [] |
+ bison-runtime | [] [] [] [] [] [] |
+ buzztrax | |
+ ccd2cue | |
+ ccide | [] [] |
+ cflow | [] |
+ clisp | [] |
+ coreutils | [] [] |
+ cpio | [] |
+ cppi | |
+ cpplib | [] |
+ cryptsetup | [] |
+ datamash | [] [] |
+ denemo | |
+ dfarc | [] [] |
+ dialog | [] [] [] [] [] [] |
+ dico | |
+ diffutils | [] [] [] |
+ dink | [] |
+ direvent | [] |
+ doodle | [] |
+ dos2unix | [] [] |
+ dos2unix-man | [] |
+ e2fsprogs | [] |
+ enscript | [] |
+ exif | [] [] |
+ fetchmail | [] |
+ findutils | [] [] |
+ flex | [] |
+ freedink | [] [] |
+ fusionforge | |
+ gas | |
+ gawk | [] |
+ gcal | |
+ gcc | |
+ gdbm | |
+ gettext-examples | [] [] [] [] [] [] |
+ gettext-runtime | [] [] |
+ gettext-tools | [] |
+ gjay | |
+ glunarclock | [] [] |
+ gnubiff | [] |
+ gnubik | [] [] |
+ gnucash | () () () () () () () [] |
+ gnuchess | [] [] |
+ gnulib | [] |
+ gnunet | |
+ gnunet-gtk | |
+ gold | |
+ gphoto2 | [] |
+ gprof | [] [] |
+ gramadoir | [] |
+ grep | [] [] |
+ grub | [] [] [] |
+ gsasl | [] |
+ gss | |
+ gst-plugins-bad | [] [] |
+ gst-plugins-base | [] [] [] |
+ gst-plugins-good | [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] [] |
+ gstreamer | [] [] |
+ gtick | [] |
+ gtkam | [] [] |
+ gtkspell | [] [] [] [] [] [] [] |
+ guix | |
+ guix-packages | |
+ gutenprint | [] |
+ hello | [] [] [] |
+ help2man | [] |
+ help2man-texi | |
+ hylafax | [] |
+ idutils | [] |
+ iso_15924 | () [] [] |
+ iso_3166 | [] [] [] () [] [] [] [] [] [] |
+ iso_3166_2 | () [] |
+ iso_4217 | () [] [] [] |
+ iso_639 | [] [] () [] [] [] [] |
+ iso_639_3 | [] () [] |
+ iso_639_5 | () |
+ jwhois | [] [] |
+ kbd | [] |
+ klavaro | [] [] |
+ latrine | |
+ ld | |
+ leafpad | [] [] [] [] [] |
+ libc | [] [] |
+ libexif | [] |
+ libextractor | [] |
+ libgnutls | [] [] |
+ libgphoto2 | [] |
+ libgphoto2_port | [] |
+ libgsasl | [] |
+ libiconv | [] [] |
+ libidn | [] |
+ liferea | [] [] [] |
+ lilypond | [] |
+ lordsawar | |
+ lprng | |
+ lynx | [] |
+ m4 | [] |
+ mailfromd | |
+ mailutils | |
+ make | [] [] |
+ man-db | [] |
+ man-db-manpages | [] |
+ midi-instruments | [] [] [] [] [] [] [] |
+ minicom | [] |
+ mkisofs | [] |
+ myserver | |
+ nano | [] [] [] |
+ opcodes | [] |
+ parted | [] |
+ pies | |
+ popt | [] [] [] [] [] |
+ procps-ng | |
+ procps-ng-man | |
+ psmisc | [] |
+ pspp | [] [] |
+ pushover | |
+ pwdutils | [] |
+ pyspread | |
+ radius | [] |
+ recode | [] [] |
+ recutils | [] |
+ rpm | [] |
+ rush | [] |
+ sarg | |
+ sed | [] [] |
+ sharutils | [] |
+ shishi | |
+ skribilo | |
+ solfege | [] [] |
+ solfege-manual | [] |
+ spotmachine | [] |
+ sudo | [] [] |
+ sudoers | [] [] |
+ sysstat | [] [] |
+ tar | [] [] [] |
+ texinfo | [] |
+ texinfo_document | [] |
+ tigervnc | [] |
+ tin | |
+ tin-man | |
+ tracgoogleappsa... | [] [] [] |
+ trader | [] |
+ util-linux | [] |
+ ve | [] |
+ vice | [] |
+ vmm | [] |
+ vorbis-tools | [] |
+ wastesedge | [] |
+ wcd | [] |
+ wcd-man | [] |
+ wdiff | [] |
+ wget | [] [] |
+ wyslij-po | [] |
+ xboard | [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] |
+ +--------------------------------------------------+
+ kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl
+ 5 11 4 6 0 13 22 3 3 3 4 11 2 40 1 124
+
+ nn or os pa pl ps pt pt_BR ro ru rw sk sl sq sr
+ +--------------------------------------------------+
+ a2ps | [] [] [] [] [] [] [] |
+ aegis | [] [] |
+ anubis | [] [] [] |
+ aspell | [] [] [] [] [] [] [] |
+ bash | [] [] [] [] [] |
+ bfd | [] |
+ binutils | [] [] |
+ bison | [] [] [] |
+ bison-runtime | [] [] [] [] [] [] [] [] |
+ buzztrax | |
+ ccd2cue | [] |
+ ccide | [] [] [] |
+ cflow | [] [] |
+ clisp | [] |
+ coreutils | [] [] [] [] |
+ cpio | [] [] [] |
+ cppi | [] [] [] |
+ cpplib | [] [] [] |
+ cryptsetup | [] [] |
+ datamash | [] [] |
+ denemo | |
+ dfarc | [] [] [] |
+ dialog | [] [] [] [] [] [] [] |
+ dico | [] |
+ diffutils | [] [] |
+ dink | |
+ direvent | [] [] |
+ doodle | [] [] |
+ dos2unix | [] [] [] [] |
+ dos2unix-man | [] [] |
+ e2fsprogs | [] |
+ enscript | [] [] [] [] [] [] |
+ exif | [] [] [] [] [] [] |
+ fetchmail | [] [] [] |
+ findutils | [] [] [] [] [] |
+ flex | [] [] [] [] [] |
+ freedink | [] [] [] [] [] |
+ fusionforge | |
+ gas | |
+ gawk | [] |
+ gcal | |
+ gcc | |
+ gdbm | [] [] [] |
+ gettext-examples | [] [] [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] [] [] [] |
+ gjay | [] |
+ glunarclock | [] [] [] [] [] [] |
+ gnubiff | [] |
+ gnubik | [] [] [] [] |
+ gnucash | () () () () [] |
+ gnuchess | [] [] |
+ gnulib | [] [] [] [] [] |
+ gnunet | |
+ gnunet-gtk | |
+ gold | |
+ gphoto2 | [] [] [] [] [] |
+ gprof | [] [] [] [] |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] |
+ grub | [] [] [] [] [] |
+ gsasl | [] [] [] |
+ gss | [] [] [] [] |
+ gst-plugins-bad | [] [] [] [] |
+ gst-plugins-base | [] [] [] [] [] [] |
+ gst-plugins-good | [] [] [] [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] [] [] |
+ gtick | [] [] [] [] [] |
+ gtkam | [] [] [] [] [] [] |
+ gtkspell | [] [] [] [] [] [] [] [] [] |
+ guix | |
+ guix-packages | |
+ gutenprint | [] [] |
+ hello | [] [] [] [] [] [] |
+ help2man | [] [] [] [] |
+ help2man-texi | [] |
+ hylafax | |
+ idutils | [] [] [] |
+ iso_15924 | [] () [] [] [] [] |
+ iso_3166 | [] [] [] [] () [] [] [] [] [] [] [] [] |
+ iso_3166_2 | [] () [] |
+ iso_4217 | [] [] () [] [] [] [] [] |
+ iso_639 | [] [] [] () [] [] [] [] [] [] |
+ iso_639_3 | [] () |
+ iso_639_5 | () [] |
+ jwhois | [] [] [] [] |
+ kbd | [] [] |
+ klavaro | [] [] [] [] [] |
+ latrine | [] |
+ ld | |
+ leafpad | [] [] [] [] [] [] [] [] [] |
+ libc | [] [] [] |
+ libexif | [] () [] |
+ libextractor | [] |
+ libgnutls | [] |
+ libgphoto2 | [] |
+ libgphoto2_port | [] [] [] [] [] |
+ libgsasl | [] [] [] [] |
+ libiconv | [] [] [] [] [] |
+ libidn | [] [] [] |
+ liferea | [] [] [] [] () [] [] |
+ lilypond | |
+ lordsawar | |
+ lprng | [] |
+ lynx | [] [] |
+ m4 | [] [] [] [] [] |
+ mailfromd | [] |
+ mailutils | [] |
+ make | [] [] [] |
+ man-db | [] [] [] |
+ man-db-manpages | [] [] [] |
+ midi-instruments | [] [] [] [] [] [] [] [] |
+ minicom | [] [] [] [] |
+ mkisofs | [] [] [] |
+ myserver | [] [] |
+ nano | [] [] [] [] [] [] |
+ opcodes | |
+ parted | [] [] [] [] [] [] |
+ pies | [] |
+ popt | [] [] [] [] [] [] |
+ procps-ng | [] |
+ procps-ng-man | [] |
+ psmisc | [] [] [] [] |
+ pspp | [] [] |
+ pushover | |
+ pwdutils | [] |
+ pyspread | [] [] |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] [] |
+ recutils | [] |
+ rpm | [] |
+ rush | [] [] [] |
+ sarg | [] [] |
+ sed | [] [] [] [] [] [] [] [] |
+ sharutils | [] [] [] |
+ shishi | [] [] |
+ skribilo | |
+ solfege | [] [] [] |
+ solfege-manual | [] [] |
+ spotmachine | [] [] |
+ sudo | [] [] [] [] [] [] |
+ sudoers | [] [] [] [] |
+ sysstat | [] [] [] [] [] |
+ tar | [] [] [] [] [] |
+ texinfo | [] [] [] |
+ texinfo_document | [] [] |
+ tigervnc | [] |
+ tin | [] |
+ tin-man | |
+ tracgoogleappsa... | [] [] [] [] |
+ trader | [] |
+ util-linux | [] [] |
+ ve | [] [] [] |
+ vice | |
+ vmm | |
+ vorbis-tools | [] [] [] |
+ wastesedge | |
+ wcd | |
+ wcd-man | |
+ wdiff | [] [] [] [] [] |
+ wget | [] [] [] [] |
+ wyslij-po | [] [] [] [] |
+ xboard | [] [] [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] [] |
+ +--------------------------------------------------+
+ nn or os pa pl ps pt pt_BR ro ru rw sk sl sq sr
+ 7 3 1 6 114 1 12 83 32 80 3 38 45 7 94
+
+ sv sw ta te tg th tr uk ur vi wa wo zh_CN zh_HK
+ +---------------------------------------------------+
+ a2ps | [] [] [] [] [] |
+ aegis | [] |
+ anubis | [] [] [] [] |
+ aspell | [] [] [] [] |
+ bash | [] [] [] [] |
+ bfd | [] [] |
+ binutils | [] [] [] |
+ bison | [] [] [] [] |
+ bison-runtime | [] [] [] [] [] [] |
+ buzztrax | [] [] [] |
+ ccd2cue | [] [] [] |
+ ccide | [] [] [] [] |
+ cflow | [] [] [] [] |
+ clisp | |
+ coreutils | [] [] [] [] |
+ cpio | [] [] [] [] [] |
+ cppi | [] [] [] [] |
+ cpplib | [] [] [] [] [] |
+ cryptsetup | [] [] [] |
+ datamash | [] [] [] |
+ denemo | |
+ dfarc | [] |
+ dialog | [] [] [] [] [] [] |
+ dico | [] |
+ diffutils | [] [] [] [] [] |
+ dink | |
+ direvent | [] [] |
+ doodle | [] [] |
+ dos2unix | [] [] [] [] |
+ dos2unix-man | [] [] [] |
+ e2fsprogs | [] [] [] [] |
+ enscript | [] [] [] [] |
+ exif | [] [] [] [] [] |
+ fetchmail | [] [] [] [] |
+ findutils | [] [] [] [] [] |
+ flex | [] [] [] [] |
+ freedink | [] [] |
+ fusionforge | |
+ gas | [] |
+ gawk | [] [] |
+ gcal | [] [] |
+ gcc | [] [] |
+ gdbm | [] [] |
+ gettext-examples | [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] [] |
+ gjay | [] [] |
+ glunarclock | [] [] [] [] |
+ gnubiff | [] [] |
+ gnubik | [] [] [] [] |
+ gnucash | () () () () [] |
+ gnuchess | [] [] |
+ gnulib | [] [] [] [] |
+ gnunet | |
+ gnunet-gtk | |
+ gold | [] [] |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] [] [] |
+ gramadoir | [] [] [] |
+ grep | [] [] [] [] [] |
+ grub | [] [] [] [] |
+ gsasl | [] [] [] [] |
+ gss | [] [] [] |
+ gst-plugins-bad | [] [] [] [] |
+ gst-plugins-base | [] [] [] [] [] |
+ gst-plugins-good | [] [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] |
+ gtick | [] [] [] |
+ gtkam | [] [] [] [] |
+ gtkspell | [] [] [] [] [] [] [] [] |
+ guix | [] |
+ guix-packages | |
+ gutenprint | [] [] [] [] |
+ hello | [] [] [] [] [] [] |
+ help2man | [] [] [] |
+ help2man-texi | [] |
+ hylafax | [] |
+ idutils | [] [] [] |
+ iso_15924 | [] () [] [] () [] |
+ iso_3166 | [] [] () [] [] () [] [] [] |
+ iso_3166_2 | () [] [] () [] |
+ iso_4217 | [] () [] [] () [] [] |
+ iso_639 | [] [] [] () [] [] () [] [] [] |
+ iso_639_3 | [] () [] [] () |
+ iso_639_5 | () [] () |
+ jwhois | [] [] [] [] |
+ kbd | [] [] [] |
+ klavaro | [] [] [] [] [] [] |
+ latrine | [] [] |
+ ld | [] [] [] [] [] |
+ leafpad | [] [] [] [] [] [] |
+ libc | [] [] [] [] [] |
+ libexif | [] () |
+ libextractor | [] [] |
+ libgnutls | [] [] [] [] |
+ libgphoto2 | [] [] |
+ libgphoto2_port | [] [] [] [] |
+ libgsasl | [] [] [] [] |
+ libiconv | [] [] [] [] [] |
+ libidn | () [] [] [] |
+ liferea | [] [] [] [] [] |
+ lilypond | [] |
+ lordsawar | |
+ lprng | [] |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] |
+ mailfromd | [] [] |
+ mailutils | [] |
+ make | [] [] [] [] |
+ man-db | [] [] |
+ man-db-manpages | [] |
+ midi-instruments | [] [] [] [] [] [] |
+ minicom | [] [] |
+ mkisofs | [] [] [] |
+ myserver | [] |
+ nano | [] [] [] [] |
+ opcodes | [] [] [] |
+ parted | [] [] [] [] [] |
+ pies | [] [] |
+ popt | [] [] [] [] [] [] [] |
+ procps-ng | [] [] |
+ procps-ng-man | [] |
+ psmisc | [] [] [] [] |
+ pspp | [] [] [] |
+ pushover | [] |
+ pwdutils | [] [] |
+ pyspread | [] |
+ radius | [] [] |
+ recode | [] [] [] [] |
+ recutils | [] [] [] |
+ rpm | [] [] [] [] |
+ rush | [] [] |
+ sarg | |
+ sed | [] [] [] [] [] |
+ sharutils | [] [] [] |
+ shishi | [] [] |
+ skribilo | [] |
+ solfege | [] [] [] |
+ solfege-manual | [] |
+ spotmachine | [] [] [] |
+ sudo | [] [] [] [] |
+ sudoers | [] [] [] |
+ sysstat | [] [] [] [] [] |
+ tar | [] [] [] [] [] |
+ texinfo | [] [] [] |
+ texinfo_document | [] |
+ tigervnc | [] [] |
+ tin | [] |
+ tin-man | |
+ tracgoogleappsa... | [] [] [] [] [] |
+ trader | [] |
+ util-linux | [] [] [] |
+ ve | [] [] [] [] |
+ vice | () () |
+ vmm | |
+ vorbis-tools | [] [] |
+ wastesedge | |
+ wcd | [] [] [] |
+ wcd-man | [] |
+ wdiff | [] [] [] [] |
+ wget | [] [] [] |
+ wyslij-po | [] [] |
+ xboard | [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] [] |
+ +---------------------------------------------------+
+ sv sw ta te tg th tr uk ur vi wa wo zh_CN zh_HK
+ 91 1 4 3 0 13 50 113 1 126 7 1 95 7
+
+ zh_TW
+ +-------+
+ a2ps | | 30
+ aegis | | 9
+ anubis | | 19
+ aspell | | 28
+ bash | [] | 21
+ bfd | | 9
+ binutils | | 12
+ bison | [] | 18
+ bison-runtime | [] | 38
+ buzztrax | | 8
+ ccd2cue | | 8
+ ccide | | 17
+ cflow | | 15
+ clisp | | 10
+ coreutils | | 20
+ cpio | | 20
+ cppi | | 17
+ cpplib | [] | 19
+ cryptsetup | | 13
+ datamash | | 11
+ denemo | | 4
+ dfarc | | 16
+ dialog | [] | 42
+ dico | | 6
+ diffutils | | 21
+ dink | | 9
+ direvent | | 10
+ doodle | | 12
+ dos2unix | [] | 18
+ dos2unix-man | | 9
+ e2fsprogs | | 14
+ enscript | | 21
+ exif | | 26
+ fetchmail | | 19
+ findutils | | 28
+ flex | [] | 19
+ freedink | | 23
+ fusionforge | | 3
+ gas | | 5
+ gawk | | 12
+ gcal | | 7
+ gcc | | 4
+ gdbm | | 10
+ gettext-examples | [] | 40
+ gettext-runtime | [] | 34
+ gettext-tools | [] | 24
+ gjay | | 8
+ glunarclock | [] | 27
+ gnubiff | | 9
+ gnubik | | 19
+ gnucash | () | 7
+ gnuchess | | 10
+ gnulib | | 23
+ gnunet | | 1
+ gnunet-gtk | | 1
+ gold | | 7
+ gphoto2 | [] | 19
+ gprof | | 21
+ gramadoir | | 14
+ grep | [] | 31
+ grub | | 21
+ gsasl | [] | 19
+ gss | | 17
+ gst-plugins-bad | | 14
+ gst-plugins-base | | 27
+ gst-plugins-good | | 32
+ gst-plugins-ugly | | 34
+ gstreamer | [] | 31
+ gtick | | 19
+ gtkam | | 24
+ gtkspell | [] | 48
+ guix | | 3
+ guix-packages | | 0
+ gutenprint | | 15
+ hello | [] | 30
+ help2man | | 18
+ help2man-texi | | 5
+ hylafax | | 5
+ idutils | | 14
+ iso_15924 | [] | 23
+ iso_3166 | [] | 58
+ iso_3166_2 | | 9
+ iso_4217 | [] | 28
+ iso_639 | [] | 46
+ iso_639_3 | | 10
+ iso_639_5 | | 2
+ jwhois | [] | 20
+ kbd | | 16
+ klavaro | | 30
+ latrine | | 7
+ ld | [] | 15
+ leafpad | [] | 40
+ libc | [] | 24
+ libexif | | 9
+ libextractor | | 5
+ libgnutls | | 13
+ libgphoto2 | | 9
+ libgphoto2_port | [] | 19
+ libgsasl | | 18
+ libiconv | [] | 29
+ libidn | | 17
+ liferea | | 29
+ lilypond | | 11
+ lordsawar | | 3
+ lprng | | 3
+ lynx | | 19
+ m4 | [] | 22
+ mailfromd | | 4
+ mailutils | | 6
+ make | | 19
+ man-db | | 14
+ man-db-manpages | | 9
+ midi-instruments | [] | 43
+ minicom | [] | 17
+ mkisofs | | 13
+ myserver | | 9
+ nano | [] | 29
+ opcodes | | 12
+ parted | [] | 21
+ pies | | 4
+ popt | [] | 36
+ procps-ng | | 5
+ procps-ng-man | | 4
+ psmisc | [] | 22
+ pspp | | 13
+ pushover | | 6
+ pwdutils | | 8
+ pyspread | | 6
+ radius | | 9
+ recode | | 31
+ recutils | | 9
+ rpm | [] | 13
+ rush | | 10
+ sarg | | 4
+ sed | [] | 34
+ sharutils | | 12
+ shishi | | 7
+ skribilo | | 4
+ solfege | | 19
+ solfege-manual | | 9
+ spotmachine | | 10
+ sudo | | 24
+ sudoers | | 20
+ sysstat | | 22
+ tar | [] | 30
+ texinfo | | 17
+ texinfo_document | | 11
+ tigervnc | | 11
+ tin | [] | 7
+ tin-man | | 1
+ tracgoogleappsa... | [] | 22
+ trader | | 11
+ util-linux | | 12
+ ve | | 14
+ vice | | 1
+ vmm | | 3
+ vorbis-tools | | 13
+ wastesedge | | 2
+ wcd | | 8
+ wcd-man | | 3
+ wdiff | [] | 23
+ wget | | 19
+ wyslij-po | | 14
+ xboard | | 9
+ xdg-user-dirs | [] | 68
+ xkeyboard-config | [] | 27
+ +-------+
+ 90 teams zh_TW
+ 166 domains 42 2748
+
+ Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect. This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+ For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and distributed
+as such by its maintainer. There might be an observable lag between the
+mere existence a PO file and its wide availability in a distribution.
+
+ If Jun 2014 seems to be old, you may fetch a more recent copy of this
+'ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix
+with full percentage details can be found at
+'http://translationproject.org/extra/matrix.html'.
+
+1.5 Using 'gettext' in new packages
+===================================
+
+If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU 'gettext' in your
+package. Of course you have to respect the GNU Lesser General Public
+License which covers the use of the GNU 'gettext' library. This means
+in particular that even non-free programs can use 'libintl' as a shared
+library, whereas only free software can use 'libintl' as a static
+library or use modified versions of 'libintl'.
+
+ Once the sources are changed appropriately and the setup can handle
+the use of 'gettext' the only thing missing are the translations. The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project. Therefore the information given above
+applies also for every other Free Software Project. Contact
+'coordinator@translationproject.org' to make the '.pot' files available
+to the translation teams.
diff --git a/vendor/fontconfig-2.14.0/AUTHORS b/vendor/fontconfig-2.14.0/AUTHORS
new file mode 100644
index 000000000..5ef888548
--- /dev/null
+++ b/vendor/fontconfig-2.14.0/AUTHORS
@@ -0,0 +1,3 @@
+Keith Packard
+Patrick Lam
+
diff --git a/vendor/fontconfig-2.14.0/COPYING b/vendor/fontconfig-2.14.0/COPYING
new file mode 100644
index 000000000..cd5fca1a0
--- /dev/null
+++ b/vendor/fontconfig-2.14.0/COPYING
@@ -0,0 +1,200 @@
+fontconfig/COPYING
+
+Copyright © 2000,2001,2002,2003,2004,2006,2007 Keith Packard
+Copyright © 2005 Patrick Lam
+Copyright © 2007 Dwayne Bailey and Translate.org.za
+Copyright © 2009 Roozbeh Pournader
+Copyright © 2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 Red Hat, Inc.
+Copyright © 2008 Danilo Šegan
+Copyright © 2012 Google, Inc.
+
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of the author(s) not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. The authors make no
+representations about the suitability of this software for any purpose. It
+is provided "as is" without express or implied warranty.
+
+THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+--------------------------------------------------------------------------------
+fontconfig/fc-case/CaseFolding.txt
+
+© 2019 Unicode®, Inc.
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+For terms of use, see http://www.unicode.org/terms_of_use.html
+
+
+--------------------------------------------------------------------------------
+fontconfig/src/fcatomic.h
+
+/*
+ * Mutex operations. Originally copied from HarfBuzz.
+ *
+ * Copyright © 2007 Chris Wilson
+ * Copyright © 2009,2010 Red Hat, Inc.
+ * Copyright © 2011,2012,2013 Google, Inc.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ * Contributor(s):
+ * Chris Wilson
+ * Red Hat Author(s): Behdad Esfahbod
+ * Google Author(s): Behdad Esfahbod
+ */
+
+
+--------------------------------------------------------------------------------
+fontconfig/src/fcfoundry.h
+
+/*
+ Copyright © 2002-2003 by Juliusz Chroboczek
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+*/
+
+
+--------------------------------------------------------------------------------
+fontconfig/src/fcmd5.h
+
+/*
+ * This code implements the MD5 message-digest algorithm.
+ * The algorithm is due to Ron Rivest. This code was
+ * written by Colin Plumb in 1993, no copyright is claimed.
+ * This code is in the public domain; do with it what you wish.
+ *
+ * Equivalent code is available from RSA Data Security, Inc.
+ * This code has been tested against that, and is equivalent,
+ * except that you don't need to include two pages of legalese
+ * with every copy.
+ *
+ * To compute the message digest of a chunk of bytes, declare an
+ * MD5Context structure, pass it to MD5Init, call MD5Update as
+ * needed on buffers full of bytes, and then call MD5Final, which
+ * will fill a supplied 16-byte array with the digest.
+ */
+
+
+--------------------------------------------------------------------------------
+fontconfig/src/fcmutex.h
+
+/*
+ * Atomic int and pointer operations. Originally copied from HarfBuzz.
+ *
+ * Copyright © 2007 Chris Wilson
+ * Copyright © 2009,2010 Red Hat, Inc.
+ * Copyright © 2011,2012,2013 Google, Inc.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ * Contributor(s):
+ * Chris Wilson
+ * Red Hat Author(s): Behdad Esfahbod
+ * Google Author(s): Behdad Esfahbod
+ */
+
+
+--------------------------------------------------------------------------------
+fontconfig/src/ftglue.[ch]
+
+/* ftglue.c: Glue code for compiling the OpenType code from
+ * FreeType 1 using only the public API of FreeType 2
+ *
+ * By David Turner, The FreeType Project (www.freetype.org)
+ *
+ * This code is explicitely put in the public domain
+ *
+ * ==========================================================================
+ *
+ * the OpenType parser codes was originally written as an extension to
+ * FreeType 1.x. As such, its source code was embedded within the library,
+ * and used many internal FreeType functions to deal with memory and
+ * stream i/o.
+ *
+ * When it was 'salvaged' for Pango and Qt, the code was "ported" to FreeType 2,
+ * which basically means that some macro tricks were performed in order to
+ * directly access FT2 _internal_ functions.
+ *
+ * these functions were never part of FT2 public API, and _did_ change between
+ * various releases. This created chaos for many users: when they upgraded the
+ * FreeType library on their system, they couldn't run Gnome anymore since
+ * Pango refused to link.
+ *
+ * Very fortunately, it's possible to completely avoid this problem because
+ * the FT_StreamRec and FT_MemoryRec structure types, which describe how
+ * memory and stream implementations interface with the rest of the font
+ * library, have always been part of the public API, and never changed.
+ *
+ * What we do thus is re-implement, within the OpenType parser, the few
+ * functions that depend on them. This only adds one or two kilobytes of
+ * code, and ensures that the parser can work with _any_ version
+ * of FreeType installed on your system. How sweet... !
+ *
+ * Note that we assume that Pango doesn't use any other internal functions
+ * from FreeType. It used to in old versions, but this should no longer
+ * be the case. (crossing my fingers).
+ *
+ * - David Turner
+ * - The FreeType Project (www.freetype.org)
+ *
+ * PS: This "glue" code is explicitely put in the public domain
+ */
diff --git a/vendor/fontconfig-2.14.0/ChangeLog b/vendor/fontconfig-2.14.0/ChangeLog
new file mode 100644
index 000000000..c82a81b53
--- /dev/null
+++ b/vendor/fontconfig-2.14.0/ChangeLog
@@ -0,0 +1,30576 @@
+commit a919700fbde28c29ccdb1d2a8bceba80ade19e73
+Author: Akira TAGOH
+Date: Mon Jun 10 20:37:03 2019 +0900
+
+ Bump version to 2.13.91
+
+ README | 106
+ +++++++++++++++++++++++++++++++++++++++++++++++-
+ configure.ac | 2 +-
+ fontconfig/fontconfig.h | 2 +-
+ 3 files changed, 106 insertions(+), 4 deletions(-)
+
+commit 66b0af41b81c5f0db1a8f952beaaada95e221d14
+Author: Akira TAGOH
+Date: Mon Jun 10 10:57:05 2019 +0000
+
+ Fix endianness on generating MD5 cache name
+
+ src/fccache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f729bc63d83c8e9068ff1c031a363b624dea1bb7
+Author: Akira TAGOH
+Date: Thu Jun 6 10:50:31 2019 +0000
+
+ Fix a typo in the description of FcWeightFromOpenTypeDouble
+
+ doc/fcweight.fncs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f40b203b3e28f253bfe4976ab571278cd19437d7
+Author: Akira TAGOH
+Date: Mon Jun 3 07:08:44 2019 +0000
+
+ Correct the comment for FC_LANG in fontconfig.h
+
+ fontconfig/fontconfig.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c336b8471877371f0190ba06f7547c54e2b890ba
+Author: Akira TAGOH
+Date: Thu May 9 07:10:11 2019 +0000
+
+ fc-validate: returns an error code when missing some glyphs
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/154
+
+ fc-validate/fc-validate.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit a305e988b77b61398cd7806ec7b6f8de098f54c8
+Author: Akira TAGOH
+Date: Wed May 8 05:18:43 2019 +0000
+
+ Update CaseFolding.txt to Unicode 12.1
+
+ fc-case/CaseFolding.txt | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+commit fd2e155665ea2c69cd8014962061349a0cc794e6
+Author: Jon Turney
+Date: Mon Apr 15 20:01:22 2019 +0100
+
+ Only use test wrapper-script if host is MinGW
+
+ Currently it fails if the executable extension is .exe, but wine isn't
+ available (e.g. on Cygwin)
+
+ Possibly the check to use this wrapper should be even more restrictive
+ e.g. checking if cross-building and/or if wine is available.
+
+ test/Makefile.am | 3 +++
+ test/run-test.sh | 1 -
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+commit d28681af2ace90e80bed440d126e98f76cd086f3
+Author: Akira TAGOH
+Date: Mon Apr 15 09:03:57 2019 +0000
+
+ Distribute archive in xz instead of bz2
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/151
+
+ .gitlab-ci.yml | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit faa11fb642d046e9aecde6d1385b8e6c14ec6055
+Author: Akira TAGOH
+Date: Thu Apr 4 12:14:20 2019 +0000
+
+ Update the test case that is looking for uuid based on host
+
+ test/run-test.sh | 56
+ ++++++++++++++++++++++++++++++++------------------------
+ 1 file changed, 32 insertions(+), 24 deletions(-)
+
+commit 76e899700bdc0443807f7e0170d3c1aa6da1b84b
+Author: Akira TAGOH
+Date: Thu Apr 4 11:57:13 2019 +0000
+
+ No need to remap for uuid based
+
+ src/fccache.c | 36 +++++++++++++++++-------------------
+ 1 file changed, 17 insertions(+), 19 deletions(-)
+
+commit 7f61838435ed3e3f8c19c593e9e646d221128df8
+Author: Akira TAGOH
+Date: Thu Apr 4 10:59:47 2019 +0000
+
+ Fallback uuid-based name to read a cache if no MD5-based cache
+ available
+
+ src/fccache.c | 91
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ test/run-test.sh | 25 +++++++++++++++-
+ 2 files changed, 113 insertions(+), 3 deletions(-)
+
+commit 13d2a47d79a4ec4d3bc48aeb89dd9c899468152e
+Author: Akira TAGOH
+Date: Thu Apr 4 06:47:34 2019 +0000
+
+ Fix unexpected cache name by double-slash in path
+
+ src/fccfg.c | 16 +++++++++-------
+ test/run-test.sh | 32 ++++++++++++++++++++++++++++++++
+ 2 files changed, 41 insertions(+), 7 deletions(-)
+
+commit faec0b51db6ef935929a95b289524abac062be8c
+Author: Akira TAGOH
+Date: Thu Apr 4 05:04:17 2019 +0000
+
+ Don't show salt in debugging message if salt is null
+
+ src/fccfg.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 91114d18c3435e4bffe1812eb03ffe5efa8543d7
+Author: Akira TAGOH
+Date: Wed Apr 3 04:48:42 2019 +0000
+
+ Allow overriding salt with new one coming later
+
+ src/fcint.h | 3 +++
+ src/fcstr.c | 58
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 61 insertions(+)
+
+commit 791762d8b7108f692b8643a208825f5ba3aa7a72
+Author: Akira TAGOH
+Date: Tue Apr 2 11:03:16 2019 +0000
+
+ fc-cache: Show font directories to generate cache with -v
+
+ fc-cache/fc-cache.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+commit d1acc73f23205e63be791c9f21eba917d292c541
+Author: Akira TAGOH
+Date: Tue Apr 2 10:25:46 2019 +0000
+
+ Oops, Terminate string
+
+ src/fccache.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit fc9f706ecb71b2625487138e6f7424d8c2cee761
+Author: Akira TAGOH
+Date: Tue Apr 2 10:00:17 2019 +0000
+
+ Add some debugging output
+
+ src/fccache.c | 18 ++++++++++++++----
+ src/fccfg.c | 15 +++++++++++++++
+ 2 files changed, 29 insertions(+), 4 deletions(-)
+
+commit cb1df8cb28d6ae34726cf7c3fd0142847431c7bb
+Author: Akira TAGOH
+Date: Tue Apr 2 09:37:49 2019 +0000
+
+ Don't warn if path can't be converted with prefix
+
+ src/fcxml.c | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+commit 34791c32f19a3abc6a3dd2000d28202b80a882f9
+Author: Akira TAGOH
+Date: Tue Mar 26 05:07:34 2019 +0000
+
+ Don't share fonts and cache dir for testing
+
+ There seems a race condition on CI. so create an unique directory
+ to avoid colision.
+
+ test/run-test.sh | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit 0950f248e031865e0abe8dad4c974ea426e159b2
+Author: Akira TAGOH
+Date: Mon Mar 25 20:00:15 2019 +0900
+
+ Add more data to artifacts for debugging purpose
+
+ .gitlab-ci.yml | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit ad3f335ccfeceb8595ae9e30bde901a732b9dd51
+Author: Akira TAGOH
+Date: Mon Mar 25 10:58:15 2019 +0000
+
+ Fix make check fail on MinGW again
+
+ src/fcxml.c | 24 +++++++++++++++++-------
+ 1 file changed, 17 insertions(+), 7 deletions(-)
+
+commit 8e2c85fe81020b3703e37a127ccc85625350a12d
+Author: Akira TAGOH
+Date: Mon Mar 25 17:39:16 2019 +0900
+
+ Use alternative function for realpath on Win32
+
+ src/fccfg.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit b1bcc0cbb258d3b697147c80c410e8df6843f376
+Author: Akira TAGOH
+Date: Mon Mar 25 16:17:33 2019 +0900
+
+ Fix build issues on MinGW
+
+ src/fcxml.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 9177cf2c3814f1f23fe207d4be3876111d272d60
+Author: Akira TAGOH
+Date: Mon Mar 25 15:52:02 2019 +0900
+
+ Add back if !OS_WIN32 line
+
+ test/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit a39f30738d6688888a6e19d08ddaaf8928d563e1
+Author: Akira TAGOH
+Date: Fri Feb 1 06:41:51 2019 +0000
+
+ trivial testcase update
+
+ test/run-test-conf.sh | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+commit 4ff52ffb52dc9eb9b12aee21c4b897206c28d457
+Author: Akira TAGOH
+Date: Fri Feb 1 06:41:38 2019 +0000
+
+ Update doc for salt
+
+ doc/fontconfig-user.sgml | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+commit 2e8ce63514b06590d36d9bf5c332ff83fb72791a
+Author: Akira TAGOH
+Date: Thu Jan 31 10:17:47 2019 +0000
+
+ Add salt attribute to dir and remap-dir elements
+
+ 'salt' attribute affects a cache filename to generate different name
+ from directory name.
+ This is useful when sharing caches with host on sandbox and/or give
+ a filename differently:
+
+ /usr/share/fonts
+ /run/host/fonts
+
+ Applications can read caches as-is for fonts on /run/host/fonts
+ where is mounted from host.
+ and write a cache for their own fonts on /usr/share/fonts with
+ different name.
+
+ src/fccache.c | 15 ++++++++++++++-
+ src/fccfg.c | 29 +++++++++++++++++++++++++----
+ src/fcint.h | 18 +++++++++++++-----
+ src/fcstr.c | 32 ++++++++++++++++++++++++--------
+ src/fcxml.c | 10 ++++++----
+ test/run-test.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 6 files changed, 129 insertions(+), 22 deletions(-)
+
+commit def1d00036a4e828382027292a167203c6c7a0b4
+Author: Akira TAGOH
+Date: Thu Jan 31 07:52:09 2019 +0000
+
+ Add reset-dirs element
+
+ This element removes all of fonts directories where added by
+ dir elements. it is useful to override fonts dirs from system
+ to their own dirs only.
+
+ conf.d/05-reset-dirs-sample.conf | 9 +++++++++
+ conf.d/Makefile.am | 1 +
+ doc/fontconfig-user.sgml | 4 ++++
+ fonts.dtd | 6 ++++++
+ src/fccfg.c | 6 ++++++
+ src/fcint.h | 6 ++++++
+ src/fcstr.c | 16 ++++++++++++++++
+ src/fcxml.c | 15 +++++++++++++++
+ 8 files changed, 63 insertions(+)
+
+commit 5e46f1545100f12ee1daaa41bccc6c3914bd2d83
+Author: Akira TAGOH
+Date: Thu Jan 31 07:10:41 2019 +0000
+
+ Fix a typo
+
+ fonts.dtd | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit acc017e67210ee6d8fed7ffd41a1f55fe04d056b
+Author: Akira TAGOH
+Date: Tue Jan 29 07:55:22 2019 +0000
+
+ Drop unnecessary line to include uuid.h
+
+ src/fchash.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+commit 635921e64d074ce5c7b8ca4a6f535241a2b8c75f
+Author: Akira TAGOH
+Date: Tue Jan 29 07:49:22 2019 +0000
+
+ Update deps to run CI
+
+ .gitlab-ci.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 916cf6caa3d754f4d267eb1fc3cede9c86aa4e15
+Author: Akira TAGOH
+Date: Tue Jan 29 07:03:58 2019 +0000
+
+ Update testcase
+
+ test/Makefile.am | 2 +-
+ test/fonts.conf.in | 3 ++-
+ test/run-test.sh | 10 ++++++++--
+ test/test-d1f48f11.c | 2 ++
+ test/test-issue110.c | 2 ++
+ 5 files changed, 15 insertions(+), 4 deletions(-)
+
+commit 2e09c62ba1ff3477b4c64d4721337b62024832c8
+Author: Akira TAGOH
+Date: Tue Jan 29 07:02:37 2019 +0000
+
+ Trim the last slash
+
+ This fixes MD5 wrongly generated.
+
+ src/fccfg.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+commit a563a1802ef930374f88e6c7198e1b5ffe7582dd
+Author: Akira TAGOH
+Date: Mon Jan 28 09:59:29 2019 +0000
+
+ Add new element remap-dir instead of extending dir element
+
+ doc/fontconfig-user.sgml | 15 +--
+ fonts.dtd | 11 +-
+ src/fcxml.c | 279
+ ++++++++++++++++++++++++++++-------------------
+ 3 files changed, 184 insertions(+), 121 deletions(-)
+
+commit 9d3fb5b38563300e0e31bf7f99f723309ec6316a
+Author: Akira TAGOH
+Date: Mon Jan 28 09:40:21 2019 +0000
+
+ Fix make check fail on run-test-conf.sh
+
+ test/test-conf.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 500e77a01d00471900755d96ba6ad236d916947a
+Author: Akira TAGOH
+Date: Mon Jan 28 04:47:16 2019 +0000
+
+ Drop a line to include uuid.h
+
+ src/fccache.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit 04f75fce0bd060b780af6d05314852be6df27216
+Author: Akira TAGOH
+Date: Mon Jan 28 04:44:31 2019 +0000
+
+ Add FcDirCacheCreateUUID doc back to pass make check
+
+ doc/fccache.fncs | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+commit c4324f54ee16e648ba91f3e9c66af13ab3b1754c
+Author: Keith Packard
+Date: Mon Oct 29 16:39:05 2018 -0700
+
+ Replace UUID file mechanism with per-directory 'map' attribute [v2]
+
+ The UUID files would be placed in each font directory to provide the
+ unique cache name, independent of path, for that directory. The UUID
+ files are undesireable for a couple of reasons:
+
+ 1) They must be placed in the font directories to be useful. This
+ requires modifying the font directories themselves, introducing
+ potential visible timestamp changes when running multiple
+ applications, and makes the cache processing inconsistent between
+ applications with permission to write to the font directories and
+ applications without such permission.
+
+ 2) The UUID contents were generated randomly, which makes the font
+ cache not reproducible across multiple runs.
+
+ One proposed fix for 2) is to make the UUID dependent on the font
+ directory path, but once we do that, we can simply use the font
+ directory path itself as the key as the original MD5-based font cache
+ naming mechanism did.
+
+ The goal of the UUID file mechanism was to fix startup time of
+ flatpaks; as the font path names inside the flatpak did not match the
+ font path names in the base system, the font cache would need to be
+ reconstructed the first time the flatpak was launched.
+
+ The new mechanism for doing this is to allow each '' element in
+ the configuration include a 'map' attribute. When looking for a cache
+ file for a particular directory, if the directory name starts with the
+ contents of the element, that portion of the name will be
+ replaced with the value of the 'map' attribute.
+
+ Outside of the flatpak, nothing need change -- fontconfig will build
+ cache files using real directory names.
+
+ Inside the flatpak, the custom fonts.conf file will now include
+ mappings such as this:
+
+ /run/host/fonts
+
+ When scanning the directory /run/host/fonts/ttf, fontconfig will
+ use the name /usr/share/fonts/ttf as the source for building the cache
+ file name.
+
+ The existing FC_FILE replacement code used for the UUID-based
+ implementation continues to correctly adapt font path names seen by
+ applications.
+
+ v2:
+ Leave FcDirCacheCreateUUID stub around to avoid removing
+ public API function.
+
+ Document 'map' attribute of element in
+ fontconfig-user.sgml
+
+ Suggested-by: Akira TAGOH
+
+ Signed-off-by: Keith Packard
+
+ configure.ac | 33 --------
+ doc/fccache.fncs | 14 ----
+ doc/fontconfig-user.sgml | 8 +-
+ fc-cache/fc-cache.c | 1 -
+ fonts.dtd | 1 +
+ src/Makefile.am | 3 +-
+ src/fccache.c | 210
+ ++++-------------------------------------------
+ src/fccfg.c | 80 +++++++++++-------
+ src/fcdir.c | 1 -
+ src/fchash.c | 17 ----
+ src/fcint.h | 18 +++-
+ src/fcstr.c | 76 +++++++++++++++++
+ src/fcxml.c | 5 +-
+ test/Makefile.am | 2 +-
+ test/fonts.conf.in | 2 +-
+ test/run-test-map.sh | 107 ++++++++++++++++++++++++
+ test/run-test.sh | 2 +
+ 17 files changed, 280 insertions(+), 300 deletions(-)
+
+commit 4cde12bfda1316e6d5464a2d9607d15322ef8024
+Author: Keith Packard
+Date: Mon Oct 29 16:25:13 2018 -0700
+
+ Remove UUID-related tests
+
+ Remove test-hash
+ Remove UUID tests from run-test.sh
+
+ Signed-off-by: Keith Packard
+
+ test/Makefile.am | 6 --
+ test/run-test.sh | 80 ++----------------------
+ test/test-hash.c | 186
+ -------------------------------------------------------
+ 3 files changed, 5 insertions(+), 267 deletions(-)
+
+commit a8c4fc5e1f2c4215544aff004d42f235d7e9d14f
+Author: Keith Packard
+Date: Mon Oct 29 16:36:11 2018 -0700
+
+ Add delays to test-bz106632, check UptoDate separately
+
+ On a file system with one-second time stamps, extra delays are needed
+ between cache modification operations to ensure that fontconfig isn't
+ fooled.
+
+ And, when the timestamps are checked correctly, we need to make sure
+ that FcConfigUptoDate returns false whenever we change a font
+ directory, so separate that out from the call to reinitialize the core
+ config.
+
+ Signed-off-by: Keith Packard
+
+ test/test-bz106632.c | 24 ++++++++++++++++++------
+ 1 file changed, 18 insertions(+), 6 deletions(-)
+
+commit 2a81aa51f08085c81666f40f34068f2c6512e974
+Author: Keith Packard
+Date: Mon Oct 29 16:26:11 2018 -0700
+
+ Remove '-u' option from run-test-conf.sh
+
+ This causes a failure when evaluating $OSTYPE on systems which do not
+ set that variable (everything but Msys/MinGW)
+
+ Signed-off-by: Keith Packard
+
+ test/run-test-conf.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 67e9c12c5a85e4ee95eb8576d094988d1c765c44
+Author: Keith Packard
+Date: Mon Oct 29 17:00:28 2018 -0700
+
+ Fetch FONTCONFIG_SYSROOT in FcConfigCreate
+
+ This saves the value of FONTCONFIG_SYSROOT in the config instead of
+ having to call getenv every time we need this value.
+
+ This also uses 'realpath' to construct a canonical path to sysroot,
+ eliminating symlinks and relative path names.
+
+ Signed-off-by: Keith Packard
+
+ src/fccfg.c | 24 +++++++++++++++++-------
+ 1 file changed, 17 insertions(+), 7 deletions(-)
+
+commit 97fa77d27facc6a31486fdca5b3b853c591f792c
+Author: Akira TAGOH
+Date: Wed Apr 3 11:49:42 2019 +0000
+
+ Reset errno to do error handling properly
+
+ This fixes the weird behavior when running with SOURCE_DATE_EPOCH=0:
+
+ Fontconfig: SOURCE_DATE_EPOCH: strtoull: No such file or directory: 0
+
+ src/fccache.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 809f040bc367763ceaec69568a867bbef2fee926
+Author: Akira TAGOH
+Date: Sat Mar 23 07:19:08 2019 +0000
+
+ Don't test bind-mount thing for MinGW
+
+ test/run-test.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4cb490b0b9247b95e78470aa35657bc1ba0f457c
+Author: Akira TAGOH
+Date: Sat Mar 23 07:05:23 2019 +0000
+
+ Install wine for CI on MinGW
+
+ .gitlab-ci.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 73b300dc7c31dfbb6ec3638fde109033bb9785a4
+Author: Akira TAGOH
+Date: Sat Mar 23 06:57:19 2019 +0000
+
+ Correct configure option to cross-compile
+
+ .gitlab-ci.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 33b372e20f6f9fd7d41fbb6dded1c703bae22403
+Author: Akira TAGOH
+Date: Sat Mar 23 06:49:32 2019 +0000
+
+ Update requirement for gettext
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 92caab9c769488cce3a720b85e38252f3dadd63c
+Author: Akira TAGOH
+Date: Sat Mar 23 06:27:39 2019 +0000
+
+ Fix make distcheck error
+
+ test/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 10e13fc748aa75a7ba7d67b1cf3baec47bd9cbc8
+Author: Akira TAGOH
+Date: Fri Mar 22 07:58:04 2019 +0000
+
+ Add build test for MinGW
+
+ .gitlab-ci.yml | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+commit f6810ede6010da394f60e8425030901e235d2a77
+Author: Akira TAGOH
+Date: Fri Mar 22 07:45:09 2019 +0000
+
+ Fix make check on cross-compiled env
+
+ test/Makefile.am | 5 +++++
+ test/run-test.sh | 10 ++++++++--
+ test/test-d1f48f11.c | 18 ++++++++++++++++++
+ test/test-issue107.c | 18 ++++++++++++++++++
+ test/test-issue110.c | 18 ++++++++++++++++++
+ test/wrapper-script.sh | 13 +++++++++++++
+ 6 files changed, 80 insertions(+), 2 deletions(-)
+
+commit 98099ffc9f1c3fd195075d5d48617ccb73940470
+Author: Akira TAGOH
+Date: Fri Mar 22 07:41:32 2019 +0000
+
+ Ifdef'ed unnecessary code for Win32
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/147
+
+ src/fccache.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit 8a9435958ac709ca81ef0e517b9242958afcd6b2
+Author: Akira TAGOH
+Date: Fri Mar 22 07:40:24 2019 +0000
+
+ autogen.sh: Make AUTORECONF_FLAGS overwritable
+
+ autogen.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9b0c093a6a925b71a099f8f4b489d83572c77afe
+Author: Akira TAGOH
+Date: Tue Mar 19 17:57:09 2019 +0900
+
+ Fix build issue on Win32.
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/148
+
+ test/test-bz106632.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit 3eca37c1e515c2967d8a637efa2a7a322842376f
+Author: Akira TAGOH
+Date: Fri Mar 15 18:51:47 2019 +0900
+
+ Fix misleading summary in docs for FcStrStrIgnoreCase
+
+ Reported by Jonathan Kew
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/146
+
+ doc/fcstring.fncs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit dba84600e1485000f358d8259b92721cf7066034
+Author: Akira TAGOH
+Date: Tue Sep 25 19:20:35 2018 +0900
+
+ Add system-ui generic family
+
+ The generic family of 'system-ui' name is being proposed in a draft
+ of next CSS Fonts.
+ This would be nice to support in fontconfig too.
+
+ https://www.w3.org/TR/css-fonts-4/
+
+ conf.d/40-nonlatin.conf | 100
+ ++++++++++++++++++++++++++++++++++++++++++++++++
+ conf.d/45-latin.conf | 23 +++++++++++
+ conf.d/60-latin.conf | 13 +++++++
+ conf.d/65-nonlatin.conf | 33 ++++++++++++++++
+ fonts.conf.in | 11 ++++++
+ 5 files changed, 180 insertions(+)
+
+commit 40e27f5d989ef4e40d218624de0a51de3de43177
+Author: Ben Wagner
+Date: Tue Feb 19 00:40:32 2019 +0000
+
+ Better document sysroot.
+
+ All non trivial users of FontConfig must use FcConfigGetSysRoot to
+ resolve file properties in patterns. In order to support sysroot the
+ filename in the file property must be relative to the sysroot, but the
+ value of the file property in a pattern is directly exposed, making it
+ impossible for FontConfig to resolve the filename itself
+ transparently.
+
+ doc/fcconfig.fncs | 15 ++++++++++-----
+ doc/fontconfig-devel.sgml | 1 +
+ 2 files changed, 11 insertions(+), 5 deletions(-)
+
+commit 586e35450e9ca7c1dc647ceb9d75ac8ed08c5c16
+Author: Robert Yang
+Date: Fri Jan 25 10:15:36 2019 +0800
+
+ src/fccache.c: Fix define for HAVE_POSIX_FADVISE
+
+ Otherwise, there would be build errors in the following 2 cases:
+ * define HAVE_POSIX_FADVISE
+ Or:
+ * undef HAVE_POSIX_FADVISE
+
+ Signed-off-by: Robert Yang
+
+ src/fccache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 699d6e4d8415a5d94483ea81fdf277964a33b8f1
+Author: Akira TAGOH
+Date: Wed Jan 23 05:59:24 2019 +0000
+
+ Fix a crash with invalid matrix element
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/140
+
+ src/fcxml.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit b047e299546ac3abb79cf0bac3c67f5c2dfc7fb6
+Author: Akira TAGOH
+Date: Fri Nov 30 10:42:26 2018 +0000
+
+ Fix a dereference of a null pointer
+
+ When exiting from for loop by not satisfying the condition of `(s =
+ next[i])` at FcCacheRemoveUnlocked()
+ referring s->alloated will be invalid.
+
+ src/fccache.c | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+commit 3a45b8ef6511aee22b48c2a54f59faf6172a5071
+Author: Akira TAGOH
+Date: Fri Nov 30 07:27:39 2018 +0000
+
+ covscan: fix compiler warnings
+
+ test/test-bz106632.c | 26 +++++++++++++-------------
+ test/test-hash.c | 5 ++---
+ 2 files changed, 15 insertions(+), 16 deletions(-)
+
+commit c44fda28e1dc0251f4451d1643f77e1455b80462
+Author: Akira TAGOH
+Date: Fri Nov 30 07:12:21 2018 +0000
+
+ Don't call unlink_dirs if basedir is null
+
+ test/test-bz106632.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit a57647e1556a67037176ff267a4ba4a2a4dfb59d
+Author: Akira TAGOH
+Date: Mon Nov 12 05:01:50 2018 +0000
+
+ covscan fix: get rid of unnecessary condition check
+
+ src/fcxml.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 65c7427c019c1cb7c621e6be87fb298564d45f51
+Author: Akira TAGOH
+Date: Fri Nov 30 07:03:54 2018 +0000
+
+ Warn when constant name is used for unexpected object
+
+ This fixes the sort of weird things like `fc-match :size=rgb` done
+ without any errors.
+ This might be annoyed but the error messages should helps to fix an
+ application bug or
+ suggest more useful constant names to fontconfig.
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/137
+
+ src/fcint.h | 3 +++
+ src/fcname.c | 30 ++++++++++++++++++++++++------
+ 2 files changed, 27 insertions(+), 6 deletions(-)
+
+commit 71c9c7892ab7ddf8964737e80d0465e3e96ac36b
+Author: Akira TAGOH
+Date: Tue Nov 27 08:50:18 2018 +0000
+
+ Add a test case for FcFontList
+
+ test/Makefile.am | 1 +
+ test/run-test-conf.sh | 1 +
+ test/test-60-generic.json | 34 +++++++++
+ test/test-conf.c | 190
+ +++++++++++++++++++++++++++++++++++++++++-----
+ 4 files changed, 209 insertions(+), 17 deletions(-)
+
+commit 9d5149ac41e18ab67404ddba41d7ef7e71839ebc
+Author: Akira TAGOH
+Date: Tue Nov 27 08:50:18 2018 +0000
+
+ Fix FcFontList doesn't return a font with FC_COLOR=true
+
+ "color" property has a value more than 1 because the value of
+ FT_HAS_COLOR
+ is directly set to it. this seems breaking the behavior of FcFontList
+ with FC_COLOR=true
+ because it is more than FcDontCare.
+
+ So changing comparison that way.
+
+ src/fccfg.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 3c75a5a9358ae570230c324917a636947748eb1f
+Author: Chris McDonald
+Date: Mon Nov 26 11:46:21 2018 -0700
+
+ Lowered temporary rooted_dir variable inside loop
+
+ fc-cache/fc-cache.c | 31 ++++++++++++-------------------
+ 1 file changed, 12 insertions(+), 19 deletions(-)
+
+commit d36f977c761ffbb75d5c76278bc14d1c0e74cc7a
+Author: Chris McDonald
+Date: Mon Nov 19 15:19:19 2018 -0700
+
+ Respect sysroot option for file path passed to stat
+
+ fc-cache/fc-cache.c | 22 +++++++++++++++++++++-
+ 1 file changed, 21 insertions(+), 1 deletion(-)
+
+commit 2bd559f75d76b514f789e32c5cc9643fd7c1e9a2
+Author: Akira TAGOH
+Date: Thu Nov 15 20:55:08 2018 +0900
+
+ Add doc for description element and update fonts.dtd
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/133
+
+ doc/fontconfig-user.sgml | 5 +++++
+ fonts.dtd | 21 ++++++++++++++++-----
+ 2 files changed, 21 insertions(+), 5 deletions(-)
+
+commit 13b4ba91353a4ead4623d0133f6eb0283e91b15a
+Author: Akira TAGOH
+Date: Tue Nov 13 06:34:11 2018 +0000
+
+ Use Rachana instead of Meera for Malayalam
+
+ Meera is a sans-serif font for Malayalam. that should be substituted
+ for serif.
+
+ conf.d/65-nonlatin.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 648e0cf3d5a53efeab93b24ae37490427d05229d
+Author: Akira TAGOH
+Date: Tue Nov 6 16:33:03 2018 +0900
+
+ Use FC_PATH_MAX instead of PATH_MAX
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/131
+
+ src/fccfg.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6dde9b5be3751843ad81fd9c735fdf17362eb7a6
+Author: Akira TAGOH
+Date: Tue Nov 6 15:39:50 2018 +0900
+
+ Enable bubblewrap test case
+
+ .gitlab-ci.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9bb90101378961eea7ce7057b03acd582c8944cb
+Author: Akira TAGOH
+Date: Mon Oct 29 12:25:03 2018 +0000
+
+ Drop Mitra Mono from 65-nonlatin.conf
+
+ This font seems totally broken.
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/128
+
+ conf.d/65-nonlatin.conf | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit f7036d589bffe353c1982b881afae6ec0a2ef200
+Author: Behdad Esfahbod
+Date: Wed Oct 24 14:30:24 2018 -0700
+
+ Fix name-table language code mapping for Mongolian
+
+ src/fcfreetype.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit e9113a764a1001165711022aceb45aa2765feb8b
+Author: Akira TAGOH
+Date: Thu Oct 25 07:16:32 2018 +0000
+
+ Do not run a test case for .uuid deletion
+
+ test/run-test.sh | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+commit 5f12f564f8748deaa603adb7a4b8f616b6390ad4
+Author: Keith Packard
+Date: Wed Oct 17 21:15:47 2018 -0700
+
+ Do not remove UUID file when a scanned directory is empty
+
+ Because FcDirCacheDeleteUUID does not reset the modification time on
+ the directory, and because FcDirCacheRead unconditionally creates the
+ UUID file each time it is run, any empty directory in the cache will
+ get its timestamp changed each time the cache for that directory is
+ read.
+
+ Instead, just leave the UUID file around as it is harmless.
+
+ The alternative would be to only create the UUID file after the cache
+ has been created and the directory has been discovered to be
+ non-empty, but that would delay the creation of the UUID file.
+
+ Signed-off-by: Keith Packard
+
+ src/fcdir.c | 7 -------
+ 1 file changed, 7 deletions(-)
+
+commit 5f5ec5676c61b9773026a9335c9b0dfa73a73353
+Author: Akira TAGOH
+Date: Mon Oct 1 07:01:26 2018 +0000
+
+ Do not try updating mtime when unlink was failed
+
+ src/fccache.c | 23 +++++++++++++----------
+ 1 file changed, 13 insertions(+), 10 deletions(-)
+
+commit ff5b49be2be0922f0fb6b9daf08f64a88d2fae6b
+Author: Akira TAGOH
+Date: Fri Sep 28 09:08:52 2018 +0000
+
+ Do not update mtime when removing .uuid file
+
+ This avoids a situation triggers updating caches on a directory
+ where .uuid file was removed.
+
+ Resolves:
+ https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/107
+
+ src/fccache.c | 32 +++++--
+ test/Makefile.am | 6 ++
+ test/test-issue107.c | 248
+ +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 281 insertions(+), 5 deletions(-)
+
+commit 8badaae15b1225bbf200c46533b1761002c760de
+Author: Akira TAGOH
+Date: Thu Oct 4 08:30:33 2018 +0000
+
+ CI: Add more logs
+
+ .gitlab-ci.yml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 5771c48863299c10a253cd4d885f41cae17377fb
+Author: Akira TAGOH
+Date: Thu Oct 4 08:20:45 2018 +0000
+
+ Fix test case
+
+ test/test-bz106632.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit e4788c5a96e0f384ad5702ad8096b0e144613895
+Author: Akira TAGOH
+Date: Thu Oct 4 08:03:20 2018 +0000
+
+ add missing the case of prefix="default" as documented
+
+ src/fcxml.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 942db25fbcee66cb8dded5cb06407cf556dc4eff
+Author: Akira TAGOH
+Date: Thu Oct 4 08:02:48 2018 +0000
+
+ Update docs for 1aa8b700
+
+ doc/fontconfig-user.sgml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 67b4090321c0ec3cf3dc96f6d3cd7b9d03af0f25
+Author: Akira TAGOH
+Date: Thu Oct 4 08:02:18 2018 +0000
+
+ Update fonts.dtd for last commit
+
+ fonts.dtd | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 1aa8b700c3f09a31c78e7834e0db373f80b5e226
+Author: Akira TAGOH
+Date: Tue Oct 2 09:32:03 2018 +0000
+
+ Add more prefix support in element
+
+ Added two prefix modes:
+ "relative" that makes the relative path be relative to current file
+ "cwd" for relative to current working directory which implies
+ current behavior.
+
+ Resolves:
+ https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/15
+
+ src/fcxml.c | 41 +++++++++++++++++++++++++++++++++--------
+ 1 file changed, 33 insertions(+), 8 deletions(-)
+
+commit f0aae4455ed43ac323821f8c8aa2fa9ffe274977
+Author: Akira TAGOH
+Date: Fri Sep 28 09:17:37 2018 +0000
+
+ Fix CI
+
+ .gitlab-ci.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ba206df9b9a7ca300265f650842c1459ff7c634a
+Author: Akira TAGOH
+Date: Wed Sep 5 12:08:52 2018 +0000
+
+ Add a test case for d1f48f11
+
+ test/Makefile.am | 14 +++
+ test/test-d1f48f11.c | 283
+ +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 297 insertions(+)
+
+commit 806fd4c2c5164d66d978b0a4c579c157e5cbe766
+Author: Akira TAGOH
+Date: Tue Sep 4 09:08:37 2018 +0000
+
+ Fix the issue that '~' wasn't extracted to the proper homedir
+
+ '~' in the filename was extracted to the home directory name in
+ FcConfigFilename() though,
+ this behavior was broken by d1f48f11. this change fixes it back to
+ the correct behavior.
+
+ https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/110
+
+ .gitlab-ci.yml | 23 ++++-
+ src/fccfg.c | 20 +++--
+ test/Makefile.am | 16 ++++
+ test/test-issue110.c | 245
+ +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 293 insertions(+), 11 deletions(-)
+
+commit 8208f99fa1676c42bfd8d74de3e9dac5366c150c
+Author: Akira TAGOH
+Date: Mon Sep 3 04:56:16 2018 +0000
+
+ Fix the build issue with --enable-static
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/109
+
+ doc/fcstring.fncs | 12 ++++++++++++
+ fontconfig/fontconfig.h | 4 ++++
+ src/fcint.h | 4 ----
+ test/test-bz106632.c | 35 ++++++++++++-----------------------
+ 4 files changed, 28 insertions(+), 27 deletions(-)
+
+commit 844d8709a1f3ecab45015b24b72dd775c13b2421
+Author: Akira TAGOH
+Date: Thu Aug 30 17:20:15 2018 +0900
+
+ Bump version to 2.13.1
+
+ README | 82
+ +++++++++++++++++++++++++++++++++++++++++++++++--
+ configure.ac | 2 +-
+ fontconfig/fontconfig.h | 2 +-
+ 3 files changed, 82 insertions(+), 4 deletions(-)
+
+commit e62b92231874c1a6c3e2ab9e1019a95db22ea08f
+Author: Akira TAGOH
+Date: Thu Aug 30 07:04:08 2018 +0000
+
+ Bump the libtool revision
+
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit a059ce315d327ff0465435d446d4e02a6f97614f
+Author: Akira TAGOH
+Date: Wed Aug 29 07:18:14 2018 +0000
+
+ Add .gitlab-ci.yml
+
+ .gitlab-ci.yml | 34 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 34 insertions(+)
+
+commit a887659706ff5bce6e4ef570dc8447ae75cc9534
+Author: Akira TAGOH
+Date: Wed Aug 29 10:01:45 2018 +0000
+
+ Fix distcheck fail
+
+ test/Makefile.am | 2 +-
+ test/run-test.sh | 6 +++---
+ test/test-bz106632.c | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 0ce32973c862c3720cd1268cc11dd011b301cc43
+Author: Akira TAGOH
+Date: Tue Aug 28 19:22:11 2018 +0900
+
+ Update the issue tracker URL
+
+ README | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit ddeec818cc6cbf4b09594bc05d2b6e589388753c
+Author: Akira TAGOH
+Date: Tue Aug 21 03:08:58 2018 +0000
+
+ Fix missing closing bracket in FcStrIsAbsoluteFilename()
+
+ Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/96
+
+ src/fcstr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a1efb5ea8c76622c7587cb5362e821bff8dcd7c4
+Author: Akira TAGOH
+Date: Wed Aug 1 08:10:35 2018 +0000
+
+ Fix the build issue with gperf
+
+ GPerf seems not allowing the empty lines though, current recipes
+ are supposed to drop them.
+ but seems not working on some env.
+ So taking the proper way to do that instead of incompatible things
+ against platforms.
+
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1451f829e750926cec27855eded71c24ac7ac7c6
+Author: Tom Anderson
+Date: Wed Jul 25 16:35:54 2018 -0700
+
+ Fix build with CFLAGS="-std=c11 -D_GNU_SOURCE"
+
+ src/fcxml.c | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+commit 9f1b92f27f9259aa69e5387656cb7d4c1b305a98
+Author: Akira TAGOH
+Date: Wed Jul 25 13:41:47 2018 +0900
+
+ Fix memory leak
+
+ src/fcxml.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 5b277806df6d8776c68b275c227a82dd8433eeae
+Author: Akira TAGOH
+Date: Wed Jul 25 12:44:38 2018 +0900
+
+ Drop the redundant code
+
+ "value == FcTypeInteger" won't be true because it was converted to
+ FcTypeDouble earlier
+
+ src/fcxml.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit a1ad5fe2ba3d742f79d601a1149e1456e57ff51e
+Author: Akira TAGOH
+Date: Wed Jul 25 12:40:17 2018 +0900
+
+ Allocate sufficient memory to terminate with null
+
+ src/fcstr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5ea2ab6a3857855dd676388d81d2b4f6f327ae2a
+Author: Akira TAGOH
+Date: Wed Jul 25 12:39:53 2018 +0900
+
+ Make a call fail on ENOMEM
+
+ src/fcptrlist.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 38569f2f2e2abc0f2a543f48a286e464d5052546
+Author: Akira TAGOH
+Date: Thu Jul 19 08:31:59 2018 +0000
+
+ Fix allocating insufficient memory for terminating null of the string
+
+ src/fcname.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit b1762935c3db2bc611750c61ce9cb38b9008db6b
+Author: Akira TAGOH
+Date: Thu Jul 19 08:31:14 2018 +0000
+
+ Fix possibly dereferencing a null pointer
+
+ src/fcmatch.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+commit 8e97d745cc21cd2e1459840a63ed13595fcf2acd
+Author: Akira TAGOH
+Date: Thu Jul 19 08:21:33 2018 +0000
+
+ Fix a typo
+
+ src/fcfreetype.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit efac784b0108d3140d7ec51cf22cb8a4453bd566
+Author: Akira TAGOH
+Date: Thu Jul 19 07:55:40 2018 +0000
+
+ Fix dereferencing null pointer
+
+ src/fccfg.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+commit 1ac2218467260cc2f96f202910ba2e1a97291744
+Author: Akira TAGOH
+Date: Thu Jul 19 07:50:20 2018 +0000
+
+ do not pass null pointer to memcpy
+
+ src/fccfg.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+commit f3981a8bcd97a0388bf150ea7c1b4a1015e5e358
+Author: Akira TAGOH
+Date: Thu Jul 19 16:44:03 2018 +0900
+
+ Fix access in a null pointer dereference
+
+ src/fccfg.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 586ac3b6c0a324ae8545e2e6437f62e851daa203
+Author: Akira TAGOH
+Date: Thu Jul 19 07:09:14 2018 +0000
+
+ Fix array access in a null pointer dereference
+
+ FcFontSetFont() accesses fs->fonts in that macro though, there was
+ no error checks
+ if it is null or not.
+ As a result, there was a code path that it could be a null.
+ Even though this is unlikely to see in usual use, it might be
+ intentionally created
+ in a cache.
+
+ So if fs->fonts is a null, we should consider a cache is invalid.
+
+ src/fccache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 51afd09d62c163ae6a13b856ba46b8e851015f26
+Author: Akira TAGOH
+Date: Thu Jul 19 05:51:02 2018 +0000
+
+ Fix unterminated string issue
+
+ src/fccache.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 37c9c16dadd02edc3d8211a16a940d6fd2356e3b
+Author: Akira TAGOH
+Date: Thu Jul 19 04:29:01 2018 +0000
+
+ Fix memory leak
+
+ src/fcxml.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 433718fb77f527a7f8909ea88f03ed2054f88a7d
+Author: Akira TAGOH
+Date: Thu Jul 19 04:17:21 2018 +0000
+
+ Fix memory leak
+
+ src/fcstat.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit eafa931ff984d13a93343216d3f0fd490270599b
+Author: Akira TAGOH
+Date: Thu Jul 19 12:12:17 2018 +0900
+
+ Fix memory leak
+
+ src/fclist.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 12be7973871371c64df3d38f788fe68766503f64
+Author: Akira TAGOH
+Date: Thu Jul 19 12:08:34 2018 +0900
+
+ Fix memory leaks
+
+ src/fccfg.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 4b1276e24058a2e8b283767fb11dd2d16de7e547
+Author: Akira TAGOH
+Date: Thu Jul 19 11:40:31 2018 +0900
+
+ Fix memory leak
+
+ src/fccache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e9d317755727c6e71fc0a8bff3ad38197f773b89
+Author: Akira TAGOH
+Date: Thu Jul 19 11:32:50 2018 +0900
+
+ Fix the leak of file handle
+
+ src/fccache.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit d1f48f11d5dffa1d954a1b0abe44ce9e4bfc3709
+Author: Tom Anderson
+Date: Wed Jul 11 15:50:26 2018 -0700
+
+ Return canonicalized paths from FcConfigRealFilename
+
+ FcConfigRealFilename() follows symlinks, but the link may be relative
+ to the
+ directory containing the link. For example, on my system, I have
+ this file:
+
+ /etc/fonts/conf.d/99-language-selector-zh.conf ->
+ ../conf.avail/99-language-selector-zh.conf
+
+ Since /etc/fonts/conf.d is probably not in PATH, open()ing the file
+ would fail.
+ This change makes FcConfigRealFilename() return the canonicalized
+ filename
+ instead. So for the example above, it would return:
+
+ /etc/fonts/conf.avail/99-language-selector-zh.conf
+
+ This was causing bad font rendering in Chromium [1] after the
+ regression I
+ introduced in 7ad010e80bdf8e41303e322882ece908f5e04c74.
+
+ [1] https://bugs.chromium.org/p/chromium/issues/detail?id=857511
+
+ src/fccfg.c | 65
+ +++++++++++++++++++++++++++++++++----------------------------
+ src/fcint.h | 3 +++
+ src/fcstr.c | 11 +++++++++++
+ 3 files changed, 49 insertions(+), 30 deletions(-)
+
+commit 48e9e5f4f0e97b12f7923662e06820c7077ae8af
+Author: Behdad Esfahbod
+Date: Mon Jul 16 17:59:45 2018 +0200
+
+ Use FT_HAS_COLOR
+
+ src/fcfreetype.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5a46d572c06f1904ea45b4a24a75fb508c8c9f07
+Author: Matthieu Herrb
+Date: Mon Jul 9 19:07:12 2018 +0200
+
+ FcCacheFindByStat(): fix checking of nanoseconds field.
+
+ src/fccache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6cc99d6a82ad67d2f5eac887b28bca13c0dfddde
+Author: Tom Anderson
+Date: Mon Jun 11 23:16:42 2018 -0700
+
+ Fix heap use-after-free
+
+ src/fccache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f5dd8512bdf9fd8e01c30ae36f593758b29385cf
+Author: Akira TAGOH
+Date: Mon Jun 11 17:03:17 2018 +0900
+
+ Remove .uuid when no font files exists on a directory
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=106632
+
+ doc/fccache.fncs | 12 +-
+ fontconfig/fontconfig.h | 4 +
+ src/fccache.c | 22 ++++
+ src/fcdir.c | 7 ++
+ src/fchash.c | 29 +++++
+ src/fcint.h | 4 +
+ test/Makefile.am | 17 +++
+ test/run-test.sh | 15 +++
+ test/test-bz106632.c | 316
+ ++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-hash.c | 187 ++++++++++++++++++++++++++++
+ 10 files changed, 612 insertions(+), 1 deletion(-)
+
+commit 096e8019be595c2224aaabf98da630ee917ee51c
+Author: Tom Anderson
+Date: Fri Jun 8 12:31:15 2018 -0700
+
+ Fix CFI builds
+
+ CFI [1] is a dynamic analysis tool that checks types at runtime.
+ It reports an
+ error when using a function with signature eg. (void (*)(char*)) as
+ (void (*)(void*)). This change adds some wrapper functions to avoid
+ this issue.
+ In optimized builds, the functions should get optimized away.
+
+ [1] https://clang.llvm.org/docs/ControlFlowIntegrity.html
+
+ src/fccfg.c | 42 ++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 36 insertions(+), 6 deletions(-)
+
+commit d1771cfbd1ca5e5e2c8dcd509e3f8da27cb94c11
+Author: Akira TAGOH
+Date: Fri Jun 8 21:16:15 2018 +0900
+
+ Update CaseFolding.txt to Unicode 11
+
+ fc-case/CaseFolding.txt | 87
+ ++++++++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 83 insertions(+), 4 deletions(-)
+
+commit 3fa83813360bd414f877bac90788ce0348564c9e
+Author: Akira TAGOH
+Date: Fri May 25 15:24:44 2018 +0900
+
+ Add a test case for bz#106618
+
+ test/Makefile.am | 3 +++
+ test/run-test.sh | 15 +++++++++++++--
+ test/test-bz106618.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 63 insertions(+), 2 deletions(-)
+
+commit 14c23a5715c529be175d8d6152cabd4ddad4e981
+Author: Akira TAGOH
+Date: Fri May 25 15:20:10 2018 +0900
+
+ Fix double-free
+
+ src/fcxml.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 3ea70f936832932fcd9502b0906ee9908bd04978
+Author: Alexander Larsson
+Date: Wed May 23 16:00:01 2018 +0200
+
+ Cache: Remove alias_table
+
+ There is really no need for this anymore
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=106618
+
+ src/fccache.c | 15 +++------------
+ src/fccfg.c | 15 ++-------------
+ src/fcint.h | 1 -
+ 3 files changed, 5 insertions(+), 26 deletions(-)
+
+commit c42402d0b8ada2472924619fc197a0394fbcd62c
+Author: Alexander Larsson
+Date: Wed May 23 15:15:33 2018 +0200
+
+ Cache: Rewrite relocated paths in earlier
+
+ This changes the rewriting of the FC_FILE values for relocated caches
+ to an earlier stage
+ while reading the cache. This is better, because it means all APIs
+ will report the
+ rewritten paths, not just the once that use the list apis.
+
+ We do this by detecting the relocated case and duplicating the
+ FcPattern and FcPatternElm
+ in an cache allocation (which will die with the cache) and then
+ reusing the FcValueLists
+ from the cache.
+
+ This means that in the rewritten case we will use some more memory,
+ but not the full
+ size of the cache. In a test here I had 800k of relocated caches,
+ but ~200k of wasted
+ on duplicating the objects.
+
+ This should fix https://bugs.freedesktop.org/show_bug.cgi?id=106618
+
+ src/fccfg.c | 44 +++++++++++++++++++++++++++---------
+ src/fcint.h | 5 ++++-
+ src/fclist.c | 36 ------------------------------
+ src/fcmatch.c | 34 ----------------------------
+ src/fcpat.c | 71
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ 5 files changed, 106 insertions(+), 84 deletions(-)
+
+commit a63b9c622e240ec0d8f9d83d286db1b55849f374
+Author: Alexander Larsson
+Date: Wed May 23 15:08:12 2018 +0200
+
+ Add FcCacheAllocate() helper
+
+ This lets you allocate a chunk of memory that will be freed when
+ the cache
+ is freed.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=106618
+
+ src/fccache.c | 36 ++++++++++++++++++++++++++++++++++++
+ src/fcint.h | 4 ++++
+ 2 files changed, 40 insertions(+)
+
+commit 94080c3d48686117b83acddf516258647b571f03
+Author: Akira TAGOH
+Date: Fri May 25 14:02:58 2018 +0900
+
+ Fix -Wstringop-truncation warning
+
+ src/fcmatch.c | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+commit 684c3ce6850c4168e127ea84432e7a9006296ff4
+Author: Akira TAGOH
+Date: Fri May 25 13:51:10 2018 +0900
+
+ Fix leaks
+
+ src/fcxml.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit f098adac54ab86b75a38f2d23fa706a1348f55ba
+Author: Chris Lamb
+Date: Tue May 15 22:11:24 2018 +0200
+
+ Ensure cache checksums are deterministic
+
+ Whilst working on the Reproducible Builds[0] effort, we noticed that
+ fontconfig generates unreproducible cache files.
+
+ This is due to fc-cache uses the modification timestamps of each
+ directory in the "checksum" and "checksum_nano" members of the
+ _FcCache
+ struct. This is so that it can identify which cache files are valid
+ and/or require regeneration.
+
+ This patch changes the behaviour of the checksum calculations
+ to prefer
+ the value of the SOURCE_DATE_EPOCH[1] environment variable over the
+ directory's own mtime. This variable can then be exported by build
+ systems to ensure reproducible output.
+
+ If SOURCE_DATE_EPOCH is not set or is newer than the mtime of the
+ directory, the existing behaviour is unchanged.
+
+ This work was sponsored by Tails[2].
+
+ [0] https://reproducible-builds.org/
+ [1] https://reproducible-builds.org/specs/source-date-epoch/
+ [2] https://tails.boum.org/
+
+ doc/fontconfig-user.sgml | 6 ++++-
+ src/fccache.c | 59
+ +++++++++++++++++++++++++++++++++++++++++++-----
+ 2 files changed, 58 insertions(+), 7 deletions(-)
+
+commit 0b85e77ede3497b8533b8fcb67d03d8ad174998d
+Author: Akira TAGOH
+Date: Sun May 13 16:21:58 2018 +0900
+
+ Bug 106459 - fc-cache doesn't use -y option for .uuid files
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=106459
+
+ src/fccache.c | 48 +++++++++++++++++++++++++++++++++++++-----------
+ test/run-test.sh | 25 +++++++++++++++++++++++++
+ 2 files changed, 62 insertions(+), 11 deletions(-)
+
+commit cfb21c7d85d2b1fc457dcd644e6b850b5cccf26a
+Author: Akira TAGOH
+Date: Sun May 13 14:48:10 2018 +0900
+
+ Bug 106497 - better error description when problem reading font
+ configuration
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=106497
+
+ configure.ac | 2 +-
+ src/fcxml.c | 20 +++++++++++++++++++-
+ 2 files changed, 20 insertions(+), 2 deletions(-)
+
+commit af964f789762df0b023c8cfd7ea622045892cb54
+Author: Akira TAGOH
+Date: Fri May 11 22:15:39 2018 +0900
+
+ Add a test case for 90-synthetic.conf
+
+ test/Makefile.am | 11 ++++++--
+ test/run-test-conf.sh | 36 ++++++++++++++++++++++++
+ test/test-90-synthetic.json | 68
+ +++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 112 insertions(+), 3 deletions(-)
+
+commit f665852df90cd5a28c3040af8f484999ca3dfa4e
+Author: Akira TAGOH
+Date: Fri May 11 21:39:50 2018 +0900
+
+ Add a testrunner for conf
+
+ configure.ac | 9 ++
+ test/Makefile.am | 7 ++
+ test/test-conf.c | 328
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 344 insertions(+)
+
+commit 307639cff143341cb10273db1a19264ba28b247e
+Author: Akira TAGOH
+Date: Fri May 11 20:48:30 2018 +0900
+
+ Bug 43367 - RFE: iterator to peek objects in FcPattern
+
+ Add various APIs to obtain things in FcPattern through the iterator
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=43367
+
+ doc/fcpattern.fncs | 111 ++++++++++++++++++++++-
+ fontconfig/fontconfig.h | 33 +++++++
+ src/fcdbg.c | 15 ++--
+ src/fcdefault.c | 32 ++++---
+ src/fcformat.c | 22 ++---
+ src/fcint.h | 9 ++
+ src/fcpat.c | 233
+ +++++++++++++++++++++++++++++++++++++++---------
+ 7 files changed, 372 insertions(+), 83 deletions(-)
+
+commit 454923709a1a1e480554c400e053aea9a1ba951a
+Author: Akira TAGOH
+Date: Thu May 10 22:01:29 2018 +0900
+
+ Change the emboldening logic again
+
+ enable emboldening when request was >= bold and font was <= medium
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=106460
+
+ conf.d/90-synthetic.conf | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 730deada8cf609157d07b7c2bf2985672614c4c0
+Author: Tom Anderson
+Date: Tue Apr 24 11:15:58 2018 -0700
+
+ Add FONTCONFIG_SYSROOT environment variable
+
+ doc/fontconfig-user.sgml | 4 ++++
+ src/fccfg.c | 5 ++++-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+commit c78afa906699933e87889895ca2039887943b639
+Author: Akira TAGOH
+Date: Thu Apr 19 11:45:45 2018 +0900
+
+ Fix typo in doc
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=106128
+
+ doc/fontconfig-user.sgml | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit 7ad010e80bdf8e41303e322882ece908f5e04c74
+Author: Tom Anderson
+Date: Wed Apr 11 17:24:43 2018 -0700
+
+ Use realfilename for FcOpen in _FcConfigParse
+
+ realfilename is the file name after sysroot adjustments. It should
+ be used
+ instead of filename in the call to FcOpen() which forwards the name
+ directly to
+ open().
+
+ Though I don't explicitly request a sysroot, I was getting error
+ messages saying
+ "failed reading config file". This CL fixes the error spam.
+
+ src/fcxml.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c60ed9ef66e59584f8b54323018e9e6c69925c7e
+Author: Tom Anderson
+Date: Wed Apr 11 11:39:56 2018 -0700
+
+ Fix undefined-shift UBSAN errors
+
+ The expression "1 << 31" will cause UBSAN to complain with this
+ error message:
+ runtime error: left shift of 1 by 31 places cannot be represented
+ in type 'int'
+
+ The same operation on unsigned types is fine, however. This CL
+ replaces the
+ strings "1 <<" with "1U <<".
+
+ fc-lang/fc-lang.c | 2 +-
+ src/fcfreetype.c | 10 +++++-----
+ src/fcint.h | 2 +-
+ src/fclang.c | 10 +++++-----
+ 4 files changed, 12 insertions(+), 12 deletions(-)
+
+commit a8a6efa805fc03e790214e8a0bc55843a258d774
+Author: Behdad Esfahbod
+Date: Sat Mar 31 19:19:36 2018 +0200
+
+ Share name-mapping across instances
+
+ Continuation of previous commit.
+
+ Makes scanning Voto Serif GX fast again.
+
+ src/fcfreetype.c | 22 ++++++++++++++++------
+ 1 file changed, 16 insertions(+), 6 deletions(-)
+
+commit fa13f8835c2819e693c7250e0d6729e22f0509c2
+Author: Behdad Esfahbod
+Date: Sat Mar 31 18:36:20 2018 +0200
+
+ Fix name scanning
+
+ In 161c738 I switched from linear name scanning to binary searching.
+ That, however, ignored the fact that there might be more than one
+ name table entry for each pair we want to query.
+
+ To fix that and retain bsearch, I now get all name entries first,
+ sort them, and use for bsearching.
+
+ This fixes https://bugs.freedesktop.org/show_bug.cgi?id=105756
+
+ This makes scaning Voto Serif GX twice slower though, since we are
+ creating and sorting the list for each instance. In the next commit,
+ I'll share this list across different instances to fix this.
+
+ src/fcfreetype.c | 293
+ +++++++++++++++++++++++++++++++++++--------------------
+ 1 file changed, 185 insertions(+), 108 deletions(-)
+
+commit 31269e3589e0e6432d12f55db316f4c720a090b5
+Author: Akira TAGOH
+Date: Wed Mar 28 18:54:37 2018 +0900
+
+ Do not ship fcobjshash.h
+
+ src/Makefile.am | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+commit 2cf2e79cb66e29b97bd640a565e4817022f6fdb5
+Author: Akira TAGOH
+Date: Wed Mar 28 18:53:52 2018 +0900
+
+ Fix make check fail when srcdir != builddir.
+
+ test/Makefile.am | 16 +++++++---------
+ test/run-test.sh | 3 ++-
+ 2 files changed, 9 insertions(+), 10 deletions(-)
+
+commit 58f52853d5689e897525a5926c1a222340d3f404
+Author: Behdad Esfahbod
+Date: Thu Mar 15 07:51:06 2018 -0700
+
+ Minor: fix warnings
+
+ test/test-name-parse.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 2938e4d72da40f6bb0d22086c519a9852a820f40
+Author: Akira TAGOH
+Date: Thu Mar 15 12:54:02 2018 +0900
+
+ call setlocale
+
+ fc-cache/fc-cache.c | 2 ++
+ fc-cat/fc-cat.c | 2 ++
+ fc-list/fc-list.c | 2 ++
+ fc-match/fc-match.c | 2 ++
+ fc-pattern/fc-pattern.c | 2 ++
+ fc-query/fc-query.c | 2 ++
+ fc-scan/fc-scan.c | 2 ++
+ 7 files changed, 14 insertions(+)
+
+commit 98eaef69af1350e459bf9c175476d3b772968874
+Author: Akira TAGOH
+Date: Thu Mar 15 12:17:52 2018 +0900
+
+ Leave the locale setting to applications
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=105492
+
+ fc-conflist/fc-conflist.c | 2 ++
+ src/fccfg.c | 22 ++--------------------
+ 2 files changed, 4 insertions(+), 20 deletions(-)
+
+commit fb7be6d60586302e89b7bbc894b91cb6cd33fbf3
+Author: Akira TAGOH
+Date: Wed Mar 14 21:42:11 2018 +0900
+
+ Add a testcase for FcNameParse
+
+ test/Makefile.am | 4 +++
+ test/test-name-parse.c | 90
+ ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 94 insertions(+)
+
+commit 4699406a68321179b14fae7412f828e2f37a7033
+Author: Akira TAGOH
+Date: Wed Mar 14 18:31:30 2018 +0900
+
+ Add the value of the constant name to the implicit object in the
+ pattern
+
+ For objects which has been changed the object type to FcTypeRange.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=105415
+
+ src/fcname.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 923b5be626a6e03fbaeee0b5cd6d0246c2f8f36f
+Author: Akira TAGOH
+Date: Wed Mar 14 12:35:05 2018 +0900
+
+ Do not override locale if already set by app
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=105492
+
+ src/fccfg.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+commit 198358dd8ff858c9e36531a7406ccb2246ae77b7
+Author: Akira TAGOH
+Date: Mon Mar 12 11:49:58 2018 +0900
+
+ Allow the constant names in the range
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=105415
+
+ src/fcname.c | 34 +++++++++++++++++++++++++++++-----
+ 1 file changed, 29 insertions(+), 5 deletions(-)
+
+commit af687139f2866a736f294c7c54f9ea57219a079b
+Author: Akira TAGOH
+Date: Sat Mar 10 20:47:54 2018 +0900
+
+ Add uuid to Requires.private in .pc only when pkgconfig macro found it
+
+ configure.ac | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+commit 07bd14c5c7fed103020dc9b630d6a254861ada07
+Author: Akira TAGOH
+Date: Fri Mar 9 11:55:43 2018 +0900
+
+ Fix the build issue again on MinGW with enabling nls
+
+ src/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit bb50f62b58b5057f80f3775f91fa94b225fc6672
+Author: Akira TAGOH
+Date: Thu Mar 8 18:19:32 2018 +0900
+
+ Use the builtin uuid for OSX
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=105366
+
+ configure.ac | 19 +++++++++++++++++--
+ 1 file changed, 17 insertions(+), 2 deletions(-)
+
+commit f075ca1aeaedbc288d42a70df5cf2fd069ea0d10
+Author: Akira TAGOH
+Date: Tue Mar 6 12:31:12 2018 +0900
+
+ Bump version to 2.13.0
+
+ README | 12 ++++++++++--
+ configure.ac | 2 +-
+ fontconfig/fontconfig.h | 4 ++--
+ 3 files changed, 13 insertions(+), 5 deletions(-)
+
+commit 24b4a57193f89d348402de0f7bf4630ae3b5f5e7
+Author: Akira TAGOH
+Date: Tue Mar 6 12:31:09 2018 +0900
+
+ Bump the libtool revision
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8c96285d216e4fec2d83386dfd49030dfc947a4b
+Author: Akira TAGOH
+Date: Fri Mar 2 13:30:00 2018 +0900
+
+ Initialize an array explicitly
+
+ Patch from Kurt Kartaltepe
+
+ src/fcfreetype.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e300d863f564f0b7b52fd6fdc1987afb5c116730
+Author: Akira TAGOH
+Date: Fri Mar 2 13:19:38 2018 +0900
+
+ Fix a build issue on MinGW with enabling nls
+
+ src/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 5d32ee914be7ea3a8bafe73a49786b5ce2c98cfd
+Author: Akira TAGOH
+Date: Mon Feb 19 13:22:20 2018 +0900
+
+ Add Simplified Chinese translations
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=105123
+
+ po-conf/LINGUAS | 1 +
+ po-conf/zh_CN.po | 140 +++++++++++++
+ po/LINGUAS | 1 +
+ po/zh_CN.po | 608
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 750 insertions(+)
+
+commit 2fc42310cdc679bdc1f2f8f11ababad167c97fdd
+Author: Akira TAGOH
+Date: Thu Feb 15 22:01:54 2018 +0900
+
+ Bump version to 2.12.93
+
+ README | 36 ++++++++++++++++++++++++++++++++++--
+ configure.ac | 2 +-
+ fontconfig/fontconfig.h | 2 +-
+ 3 files changed, 36 insertions(+), 4 deletions(-)
+
+commit 147b083851bd5ba97a17de4496c484c9609a8f52
+Author: Akira TAGOH
+Date: Thu Feb 15 22:01:45 2018 +0900
+
+ Add missing files to ship
+
+ its/Makefile.am | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit 0394cb7829d16a902e2eebdcc4f00db3774916b8
+Author: Akira TAGOH
+Date: Mon Feb 5 13:31:00 2018 +0900
+
+ Ensure the user config dir is available in the list of config dirs
+ on the fallback config
+
+ src/fcinit.c | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+commit 34b5c949d51fcc8eafe2301ca8f539f735e31522
+Author: Akira TAGOH
+Date: Mon Feb 5 12:47:01 2018 +0900
+
+ Do not mix up font dirs into the list of config dirs
+
+ fc-cache/fc-cache.c | 2 +-
+ src/fccfg.c | 8 --------
+ src/fcinit.c | 2 +-
+ src/fcint.h | 4 ----
+ src/fcxml.c | 7 +++++--
+ 5 files changed, 7 insertions(+), 16 deletions(-)
+
+commit 5710377301f7193f133103cede00e81a2051eb51
+Author: Olivier Crête
+Date: Thu Feb 1 10:52:40 2018 +0000
+
+ Fix cross-compilation by passing CPPFLAGS to CPP
+
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ef748b39e022ce98d5aa8110d713368cf39f0ebf
+Author: Akira TAGOH
+Date: Tue Jan 23 22:27:17 2018 +0900
+
+ Take effects on dir, cachedir, acceptfont, and rejectfont only
+ when loading
+
+ Those elements takes effects immediately during parsing config files
+ so makes them conditional to ignore on scanning.
+
+ src/fcxml.c | 30 +++++++++++++++++-------------
+ 1 file changed, 17 insertions(+), 13 deletions(-)
+
+commit 73cc842d1dd866e4a6fda4aa422cb4a9c7a9832f
+Author: Akira TAGOH
+Date: Mon Jan 15 12:57:05 2018 +0900
+
+ Revert some removal from 7ac6af6
+
+ autogen.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 91f0fd84607efcc7196e5ee232794c055f25511e
+Author: Akira TAGOH
+Date: Sun Jan 14 19:49:06 2018 +0900
+
+ Do not add cflags and libs coming from pkg-config file.
+
+ Using Requires is peferable way.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=104622
+
+ configure.ac | 10 ++++++++--
+ fontconfig.pc.in | 4 ++--
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+commit 4ff7155f5c96a02f2cd3542e8546c76c632c315a
+Author: Alexander Larsson
+Date: Fri Jan 12 16:52:39 2018 +0100
+
+ FcHashTableAddInternal: Compare against the right key
+
+ We were comparing the passed in key with the ready-to-insert key
+ rather than the key in the hashtable, so if you ever had a hash
+ conflicts we'll never insert the new item.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=101889
+
+ src/fchash.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit fd2ad1147ad9565841372e56e6bb939c0f843ac5
+Author: Behdad Esfahbod
+Date: Tue Jan 9 10:54:55 2018 +0100
+
+ Fix undefined-behavior signed shifts
+
+ src/fccharset.c | 6 +++---
+ src/fcfreetype.c | 4 ++--
+ src/ftglue.h | 12 ++++++------
+ 3 files changed, 11 insertions(+), 11 deletions(-)
+
+commit 7ac6af665ba3e098a097cab869e814bdbe34952d
+Author: Akira TAGOH
+Date: Tue Jan 9 13:51:31 2018 +0900
+
+ clean up
+
+ autogen.sh | 85
+ ++++++++++--------------------------------------------------
+ configure.ac | 2 --
+ 2 files changed, 13 insertions(+), 74 deletions(-)
+
+commit 94683a1255c065a7f8e7fadee9de605f3eaf9ac7
+Author: Behdad Esfahbod
+Date: Mon Jan 8 09:55:41 2018 +0000
+
+ Use FT_Done_MM_Var if available
+
+ configure.ac | 2 +-
+ src/fcfreetype.c | 4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+commit 97488fd72577a86ffd52bbb42d781bad0dd723cf
+Author: Akira TAGOH
+Date: Sat Jan 6 18:53:27 2018 +0900
+
+ export GETTEXTDATADIR to refer the local .its/.loc file instead of
+ using --its option
+
+ Makefile.am | 2 +-
+ configure.ac | 1 +
+ its/Makefile.am | 6 ++++++
+ {src => its}/fontconfig.its | 0
+ {src => its}/fontconfig.loc | 0
+ po-conf/Makevars | 4 ++--
+ po-conf/POTFILES.in | 34 ++++++++++++++++++++++++++++++++++
+ src/Makefile.am | 5 -----
+ 8 files changed, 44 insertions(+), 8 deletions(-)
+
+commit 030e2e4e9473532de5ef6bf4c7905bdf653dc6ef
+Author: Behdad Esfahbod
+Date: Fri Jan 5 14:33:17 2018 +0000
+
+ Fix leak
+
+ src/fcfreetype.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 9c90f06b405abdc5ae2d92f5b614e0d19d11f783
+Author: Akira TAGOH
+Date: Fri Jan 5 22:14:58 2018 +0900
+
+ Remove POTFILES.in until new release of gettext is coming...
+
+ po-conf/POTFILES.in | 34 ----------------------------------
+ 1 file changed, 34 deletions(-)
+
+commit b2da36e92265c82e598cdea670ec436f9b592af0
+Author: Akira TAGOH
+Date: Fri Jan 5 22:12:37 2018 +0900
+
+ Use the native ITS support in gettext
+
+ and drop the dependency of itstool.
+ To get this working, need to patch out to fix a crash:
+ http://git.savannah.gnu.org/cgit/gettext.git/commit/?id=a0cab23332a254e3500cac2a3a984472d02180e5
+
+ configure.ac | 7 -------
+ po-conf/Makevars | 6 ++++--
+ po-conf/POTFILES.in | 34 ++++++++++++++++++++++++++++++++++
+ po/Makevars | 2 +-
+ 4 files changed, 39 insertions(+), 10 deletions(-)
+
+commit a2e0ebf3922d4ac682162e63ec7b209ef58f3c7c
+Author: Akira TAGOH
+Date: Fri Jan 5 18:23:08 2018 +0900
+
+ Add files to enable ITS support in gettext
+
+ src/Makefile.am | 5 +++++
+ src/fontconfig.its | 4 ++++
+ src/fontconfig.loc | 6 ++++++
+ 3 files changed, 15 insertions(+)
+
+commit 6aa0bde5ecd6a545228fc6b59e7e54b8f1eea7eb
+Author: Akira TAGOH
+Date: Fri Jan 5 16:05:58 2018 +0900
+
+ trivial fix
+
+ test/test-migration.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit b8a225b3c3495942480377b7b3404710c70be914
+Author: Tom Anderson
+Date: Wed Jan 3 11:42:45 2018 -0800
+
+ Allow overriding symbol visibility.
+
+ Fontconfig symbols were hardcoded to be either hidden or exported.
+ This patch
+ adds configurable symbol visibility. This is useful for projects
+ that want to
+ do in-tree fontconfig builds and not export any symbols, otherwise
+ they would
+ conflict with the system library's symbols
+
+ Chromium is a project that does in-tree fontconfig builds, and
+ the workaround
+ currently used is "#define visibility(x) // nothing" [1] and
+ building with
+ "-fvisibility=hidden".
+ [1]
+ https://cs.chromium.org/chromium/src/third_party/fontconfig/BUILD.gn?rcl=ce146f1f300988c960e1eecf8a61b238d6fd7f7f&l=62
+
+ fontconfig/fcprivate.h | 9 ++++++++-
+ src/makealias | 4 ++--
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+commit 37fb4a989e6243bceebadb8120f458d8d5b82c45
+Author: Behdad Esfahbod
+Date: Wed Jan 3 16:51:18 2018 +0000
+
+ Support FC_WIDTH as double as well
+
+ src/fcfreetype.c | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+commit 1fa9cb78c1120e11e27e2a84f59b3fb239b165df
+Author: Behdad Esfahbod
+Date: Wed Jan 3 16:48:54 2018 +0000
+
+ Remove hack for OS/2 weights 1..9
+
+ src/fcfreetype.c | 8 +-------
+ src/fcweight.c | 20 +-------------------
+ 2 files changed, 2 insertions(+), 26 deletions(-)
+
+commit d7d40b5aa8216f30a38492bd2bde5884c492c82d
+Author: Akira TAGOH
+Date: Thu Jan 4 20:42:34 2018 +0900
+
+ Bump version to 2.12.92
+
+ README | 33 +++++++++++++++++++++++++++++++--
+ configure.ac | 2 +-
+ fontconfig/fontconfig.h | 2 +-
+ 3 files changed, 33 insertions(+), 4 deletions(-)
+
+commit 3642d71724e7c40f44753c1f2e6d8fb2c88a3e50
+Author: Akira TAGOH
+Date: Thu Jan 4 20:23:16 2018 +0900
+
+ Add FcReadLink to wrap up readlink impl.
+
+ src/fccfg.c | 4 ++--
+ src/fccompat.c | 19 +++++++++++++++++++
+ src/fcint.h | 5 +++++
+ 3 files changed, 26 insertions(+), 2 deletions(-)
+
+commit 767e3aa7c50c2a707b42d9eda879b1046558bb6f
+Author: Akira TAGOH
+Date: Thu Jan 4 20:32:46 2018 +0900
+
+ Fix compiler warnings
+
+ src/fccfg.c | 2 +-
+ src/fcdir.c | 4 ++++
+ src/fcfreetype.c | 4 ++--
+ test/test-bz131804.c | 1 -
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+commit 706535e10715938c10e65e727feb607373ac1a47
+Author: Behdad Esfahbod
+Date: Wed Jan 3 15:59:24 2018 +0000
+
+ Add FcWeightTo/FromOpenTypeDouble()
+
+ No idea why I didn't add these as double to begin with.
+
+ doc/fcweight.fncs | 42 ++++++++++++++++++++++++++++++++----------
+ fontconfig/fontconfig.h | 6 ++++++
+ src/fcfreetype.c | 16 ++++++++--------
+ src/fcweight.c | 24 ++++++++++++++++++------
+ 4 files changed, 64 insertions(+), 24 deletions(-)
+
+commit 97898b1158542d3bc5f8a95fe2aa1829512cceb8
+Author: Akira TAGOH
+Date: Wed Jan 3 22:15:11 2018 +0900
+
+ Fix the mis-ordering of ruleset evaluation in a file with include
+ element
+
+ src/fccfg.c | 8 ++++++--
+ src/fcxml.c | 22 ++++++++++++++++++++++
+ 2 files changed, 28 insertions(+), 2 deletions(-)
+
+commit 5cfd594c71345bcb91a56100fc3bbfef15253a95
+Author: Akira TAGOH
+Date: Tue Jan 2 19:04:45 2018 +0900
+
+ do not check the existence of itstool on win32
+
+ configure.ac | 21 ++++++++++++---------
+ 1 file changed, 12 insertions(+), 9 deletions(-)
+
+commit f8e22fd6469cd14fe13ba657b5c5b66a884b614d
+Author: Behdad Esfahbod
+Date: Wed Dec 20 12:21:20 2017 -0500
+
+ Put back accidentally removed code
+
+ src/fcmatch.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 6d1d44d5ec5100a3db850dddd7b4e4196e8a5cdb
+Author: Behdad Esfahbod
+Date: Tue Dec 19 15:51:16 2017 -0500
+
+ Let pattern FC_FONT_VARIATIONS override standard axis variations
+
+ Ie. flip the merge order.
+
+ src/fcmatch.c | 20 +++++++++++---------
+ 1 file changed, 11 insertions(+), 9 deletions(-)
+
+commit 650b051a2562ab5813d0671323e00f31cd79b37b
+Author: Behdad Esfahbod
+Date: Tue Dec 19 15:04:25 2017 -0500
+
+ Set font-variations settings for standard axes in variable fonts
+
+ This is the last piece of the puzzle for variable-font support in
+ fontconfig. This takes care of automatically setting the variation
+ settings when user requests a weight / width / size that has variation
+ in the matched font.
+
+ src/fcmatch.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/fcpat.c | 10 ++++++++--
+ 2 files changed, 60 insertions(+), 4 deletions(-)
+
+commit 288d3348122a695615c39d82142d988e56064b9f
+Author: Behdad Esfahbod
+Date: Mon Dec 18 23:51:17 2017 -0500
+
+ Minor
+
+ fc-pattern/fc-pattern.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 57ff677b1bd73acbf371955afe8d6399a06d46ac
+Author: Behdad Esfahbod
+Date: Mon Dec 18 21:28:23 2017 -0500
+
+ Remove a debug abort()
+
+ Ouch!
+
+ src/fcmatch.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit aa85a2b3b6b652c079e895865e800e3d9b60a5f5
+Author: Akira TAGOH
+Date: Tue Dec 19 12:16:48 2017 +0900
+
+ Try to get current instance of FcConfig as far as possible
+
+ src/fcmatch.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 0b59a65a71b5482aab63a2fe7eff2820f2512941
+Author: Alexander Larsson
+Date: Mon Dec 18 16:17:10 2017 +0100
+
+ fchash: Fix replace
+
+ When we replace a bucket in the hashtable we have to update the
+ next pointer too, or we lose all the other elements that hashed to
+ this key.
+
+ src/fchash.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 7ca28c2fedb34c1db5ee3116d335f15195859db0
+Author: Behdad Esfahbod
+Date: Mon Dec 18 21:22:21 2017 -0500
+
+ Don't crash
+
+ Not proper fix necessarily. But fixes this crash:
+ https://bugs.freedesktop.org/show_bug.cgi?id=101889#c81
+
+ src/fcmatch.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e83f8777d555b40127f7035b5639955a70ad7dfd
+Author: Akira TAGOH
+Date: Mon Dec 18 21:45:00 2017 +0900
+
+ Disable uuid related code on Win32
+
+ configure.ac | 9 +++++++--
+ src/fccache.c | 19 ++++++++++++++++++-
+ src/fchash.c | 4 ++++
+ 3 files changed, 29 insertions(+), 3 deletions(-)
+
+commit 182186e53a38d2c8b82d0a1785f6873f2b54316a
+Author: Akira TAGOH
+Date: Mon Dec 18 21:26:29 2017 +0900
+
+ Do not update mtime with creating .uuid
+
+ src/fccache.c | 26 ++++++++++++++++++++++++++
+ test/run-test.sh | 13 +++++++++++++
+ 2 files changed, 39 insertions(+)
+
+commit c1e48b0c1439007b41887177ef7b34e4d75e3a31
+Author: Akira TAGOH
+Date: Mon Dec 18 20:05:44 2017 +0900
+
+ Add a test case for uuid creation
+
+ test/run-test.sh | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 43 insertions(+)
+
+commit 8ab4d679959815feb0c383e1e17953fe1c46091f
+Author: Akira TAGOH
+Date: Mon Dec 18 20:05:14 2017 +0900
+
+ Replace uuid in the table properly when -r
+
+ src/fccache.c | 7 ++++++-
+ src/fchash.c | 37 ++++++++++++++++++++++++++++++++-----
+ src/fcint.h | 4 ++++
+ 3 files changed, 42 insertions(+), 6 deletions(-)
+
+commit 0378790ca362757061bff83c8a344991f1f829c6
+Author: Akira TAGOH
+Date: Mon Dec 18 20:04:13 2017 +0900
+
+ Add missing doc of FcDirCacheCreateUUID
+
+ doc/fccache.fncs | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+commit 57eaf0ba7ea7f88510053688f3c3c4658da83596
+Author: Akira TAGOH
+Date: Mon Dec 18 16:41:04 2017 +0900
+
+ Returns false if key is already available in the table
+
+ src/fchash.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit dd21876e64db4eaf592297e97355ffdf87f7d2f6
+Author: Akira TAGOH
+Date: Mon Dec 18 12:09:14 2017 +0900
+
+ Update .uuid only when -r is given but not -f.
+
+ fc-cache/fc-cache.c | 3 +++
+ fontconfig/fontconfig.h | 5 +++++
+ src/fcdir.c | 2 +-
+ src/fcint.h | 5 -----
+ 4 files changed, 9 insertions(+), 6 deletions(-)
+
+commit dd1a92911b1abc4c266ad33d88ec8161342f0d69
+Author: Akira TAGOH
+Date: Mon Dec 18 11:53:25 2017 +0900
+
+ cleanup files
+
+ test/Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit bad64a7e1f84c982da1f86f45faa10426dfce654
+Author: Akira TAGOH
+Date: Thu Dec 14 15:44:20 2017 +0900
+
+ Bump version to 2.12.91
+
+ README | 138
+ +++++++++++++++++++++++++++++++++++++++++++++++-
+ configure.ac | 2 +-
+ fontconfig/fontconfig.h | 2 +-
+ 3 files changed, 138 insertions(+), 4 deletions(-)
+
+commit 1f84aa196d0ed2dae6176e0137eaae4449a6ca7c
+Author: Akira TAGOH
+Date: Thu Dec 14 15:42:39 2017 +0900
+
+ Bump the libtool revision
+
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 8d02dbbd9784e3e9ae5f45cb96b790645f09fcf6
+Author: Akira TAGOH
+Date: Thu Dec 14 15:42:22 2017 +0900
+
+ Fix "make check" fail again
+
+ test/Makefile.am | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit a6797cd5c2d430d22f689240eb4318f2d91fd677
+Author: Akira TAGOH
+Date: Tue Dec 5 21:57:19 2017 +0900
+
+ Fix distcheck error
+
+ test/Makefile.am | 4 ++--
+ test/run-test.sh | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 1b2279d6b5118fc00bc028340d14fe1e345a4ab4
+Author: Akira TAGOH
+Date: Fri Nov 24 10:53:39 2017 +0530
+
+ thread-safe functions in fchash.c
+
+ src/fchash.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 4758144492cf694b9d762733bc0907c0dad5b34d
+Author: Akira TAGOH
+Date: Mon Nov 20 17:46:47 2017 +0530
+
+ Fix the testcase for env not enabled
+ PCF_CONFIG_OPTION_LONG_FAMILY_NAMES in freetype
+
+ test/run-test.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit abe91a1694bb6b89c51c7d61af23bf2607c4c4be
+Author: Akira TAGOH
+Date: Mon Nov 20 14:33:18 2017 +0530
+
+ Use smaller prime for hash size
+
+ src/fchash.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c4b2787ba41006d60c964438fec17f15d75f03c0
+Author: Akira TAGOH
+Date: Mon Nov 20 13:46:55 2017 +0530
+
+ cleanup
+
+ doc/fcpattern.fncs | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+commit 5af21201e1bf2daf2bae4b684243bc62dd2c7ee7
+Author: Akira TAGOH
+Date: Wed Nov 15 23:30:26 2017 +0900
+
+ Add a testcase for bind-mounted cachedir
+
+ test/run-test.sh | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+
+commit 2f486f6584f3c0d6d1c7eadfbc56cd13a8f3122f
+Author: Akira TAGOH
+Date: Wed Nov 15 23:24:24 2017 +0900
+
+ Don't call FcStat when the alias has already been added
+
+ Similar changes to 3a3d6ea applies to fclist and fcmatch.
+
+ src/fclist.c | 49 ++++++++++++++++++++++---------------------------
+ src/fcmatch.c | 47 ++++++++++++++++++++++-------------------------
+ 2 files changed, 44 insertions(+), 52 deletions(-)
+
+commit 665a5d30443cee9ef0eb977857ed2d19ed9f3cb6
+Author: Akira TAGOH
+Date: Wed Nov 15 23:00:31 2017 +0900
+
+ Fix a typo
+
+ src/fchash.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6b82c7083565d646b8a08d17dbcb41bd998a5a3c
+Author: Akira TAGOH
+Date: Wed Nov 15 23:00:23 2017 +0900
+
+ Fix memory leak
+
+ src/fccache.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit da071b32d41f91856a5e211c1fea7192d33ef09f
+Author: Akira TAGOH
+Date: Wed Nov 15 16:34:02 2017 +0900
+
+ update
+
+ git.mk | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+commit 8f88b1c47cb7918aa65ed415f64e04464b1653c9
+Author: Akira TAGOH
+Date: Wed Nov 15 16:10:49 2017 +0900
+
+ abstract hash table functions
+
+ src/Makefile.am | 1 +
+ src/fccache.c | 241
+ +++++++-------------------------------------------------
+ src/fccfg.c | 21 ++++-
+ src/fcdir.c | 2 +-
+ src/fchash.c | 181 ++++++++++++++++++++++++++++++++++++++++++
+ src/fcint.h | 51 ++++++++++--
+ src/fclist.c | 6 +-
+ src/fcmatch.c | 5 +-
+ 8 files changed, 283 insertions(+), 225 deletions(-)
+
+commit 68ff99c4142e25989409f465e392b1bb3042494d
+Author: Akira TAGOH
+Date: Wed Nov 15 16:08:30 2017 +0900
+
+ cleanup
+
+ fontconfig/fontconfig.h | 3 ---
+ src/fcpat.c | 30 ------------------------------
+ 2 files changed, 33 deletions(-)
+
+commit b01bf646f110cacfaeb5fe097475d3582fa6cd33
+Author: Akira TAGOH
+Date: Tue Oct 3 13:08:54 2017 +0900
+
+ Destroy the alias and UUID tables when all of caches is unloaded
+
+ When a cache contains no fonts, it will be unloaded immediately.
+ Previously the certain alias and UUID entries will be purged at that
+ time though,
+ this doesn't work when the targeted directory has sub-directories.
+ To avoid the unnecessary cache creation with the md5-based naming,
+ try to keep them
+ as far as possible.
+ Although this way seems not perfectly working if the first directory
+ to look up is like that
+
+ src/fccache.c | 63
+ +++++++++++++++++++++++++----------------------------------
+ 1 file changed, 27 insertions(+), 36 deletions(-)
+
+commit d7133f4ed7071c6ac257e8d4de0e438e22ca0254
+Author: Akira TAGOH
+Date: Mon Oct 2 21:17:06 2017 +0900
+
+ Don't call FcStat when the alias has already been added
+
+ We could assume that the targeted location is mapped at the different
+ place
+ when there are in the alias table.
+
+ src/fccfg.c | 21 +++++++--------------
+ 1 file changed, 7 insertions(+), 14 deletions(-)
+
+commit cf5acaed9621990d890a0dfd655494d7242aba26
+Author: Akira TAGOH
+Date: Sat Sep 23 18:49:55 2017 +0900
+
+ Replace the path of subdirs in caches as well
+
+ src/fccfg.c | 22 +++++++++++++++++++++-
+ 1 file changed, 21 insertions(+), 1 deletion(-)
+
+commit 6d3b306cbecac22f4e0974c1a6e836289bd522f4
+Author: Akira TAGOH
+Date: Tue Sep 19 20:21:22 2017 +0900
+
+ Replace the original path to the new one
+
+ src/fclist.c | 6 +++---
+ src/fcmatch.c | 2 ++
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+commit 6f226ad67e4373fa62359d1a7b94400d200e66ed
+Author: Akira TAGOH
+Date: Thu Sep 7 19:43:59 2017 +0900
+
+ Replace the font path in FcPattern to what it is actually located.
+
+ src/fclist.c | 41 ++++++++++++++++++++++++++++++++++++++++-
+ src/fcmatch.c | 32 ++++++++++++++++++++++++++++++++
+ 2 files changed, 72 insertions(+), 1 deletion(-)
+
+commit 85d9de58ed093ade638b51697fc3a23309e5d5a6
+Author: Akira TAGOH
+Date: Wed Aug 2 11:02:19 2017 +0100
+
+ Add new API to find out a font from current search path
+
+ doc/fcpattern.fncs | 10 ++++
+ fontconfig/fontconfig.h | 3 ++
+ src/fccache.c | 127
+ +++++++++++++++++++++++++++++++++++++++++++++++-
+ src/fcint.h | 3 ++
+ src/fcpat.c | 30 ++++++++++++
+ 5 files changed, 171 insertions(+), 2 deletions(-)
+
+commit 7b48fd3dd406b926f0e5240b211f72197ed538a9
+Author: Akira TAGOH
+Date: Wed Sep 6 17:01:19 2017 +0900
+
+ Use uuid-based cache filename if uuid is assigned to dirs
+
+ configure.ac | 8 +++
+ src/Makefile.am | 3 +-
+ src/fccache.c | 211
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/fcdir.c | 1 +
+ src/fcint.h | 4 ++
+ 5 files changed, 220 insertions(+), 7 deletions(-)
+
+commit 64895e719dd8d18c52a31d66cd189915bc8c00b8
+Author: Akira TAGOH
+Date: Mon Nov 20 17:20:34 2017 +0530
+
+ Add the check of PCF_CONFIG_OPTION_LONG_FAMILY_NAMES back
+
+ This isn't enabled by default in freetype so need to check it for
+ testsuites
+
+ configure.ac | 13 +++++++++++++
+ test/Makefile.am | 12 +++++++++++-
+ test/{out.expected => out.expected-long-family-names} | 0
+ test/out.expected-no-long-family-names | 8 ++++++++
+ test/run-test.sh | 2 +-
+ 5 files changed, 33 insertions(+), 2 deletions(-)
+
+commit e73b5dcbf2248b538e06bc92a71700dacbec983b
+Author: Akira TAGOH
+Date: Thu Nov 16 11:37:36 2017 +0900
+
+ Correct debugging messages to load/scan config
+
+ src/fcxml.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 676d8699cc2e812f02e661842be4221c7549c511
+Author: Akira TAGOH
+Date: Thu Nov 16 11:31:02 2017 +0900
+
+ Allow autoreconf through autopoint for gettext things
+
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 2ed243f323e603ac917a236a48b468e9c523da35
+Author: Akira TAGOH
+Date: Tue Nov 14 20:55:24 2017 +0900
+
+ Validate cache more carefully
+
+ Reject caches when FcPattern isn't a constant.
+ This is usually unlikely to happen but reported.
+ I've decided to add more validation since this isn't reproducible
+ and easy to have a workaround rather than investigating 'why'.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=103237
+
+ src/fccache.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 12eb7be46610178c74fbe24ae518e20957cda1ea
+Author: Akira TAGOH
+Date: Wed Nov 8 22:18:01 2017 +0900
+
+ another workaround to avoid modifying by gettextize...
+
+ autogen.sh | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 3c55ef4b278be8fff1296af0cd1d3f97388416e4
+Author: Akira TAGOH
+Date: Wed Nov 8 22:03:49 2017 +0900
+
+ missing an open parenthesis
+
+ fc-cache/fc-cache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 23ba0dc10d5a1415d020043274a3e9608c5c5a39
+Author: Akira TAGOH
+Date: Tue Nov 7 15:13:46 2017 +0900
+
+ workaround to avoid modifying by gettextize
+
+ Makefile.am | 3 +--
+ autogen.sh | 8 +++++++-
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 9a0fcb948fe7346f6c68028b2e54ab600a2a2a6f
+Author: Akira TAGOH
+Date: Thu Mar 27 15:10:44 2014 +0900
+
+ Add the ruleset description support
+
+ Trying to address what these configuration files really do.
+ This change allows to see the short description that mention
+ the purpose of the content in the config file and obtain
+ them through API.
+
+ This change also encourage one who want to make some UI for
+ the user-specific configuration management. it is the main
+ purpose of this change for me though.
+
+ Aside from that, I've also made programs translatable. so
+ we see more dependencies on the build time for gettext,
+ and itstool to generate PO from xml.
+
+ Makefile.am | 14 +-
+ autogen.sh | 13 +-
+ conf.d/10-autohint.conf | 5 +
+ conf.d/10-hinting-full.conf | 6 +
+ conf.d/10-hinting-medium.conf | 6 +
+ conf.d/10-hinting-none.conf | 6 +
+ conf.d/10-hinting-slight.conf | 6 +
+ conf.d/10-no-sub-pixel.conf | 5 +
+ conf.d/10-scale-bitmap-fonts.conf | 4 +
+ conf.d/10-sub-pixel-bgr.conf | 5 +
+ conf.d/10-sub-pixel-rgb.conf | 5 +
+ conf.d/10-sub-pixel-vbgr.conf | 5 +
+ conf.d/10-sub-pixel-vrgb.conf | 5 +
+ conf.d/10-unhinted.conf | 5 +
+ conf.d/11-lcdfilter-default.conf | 5 +
+ conf.d/11-lcdfilter-legacy.conf | 5 +
+ conf.d/11-lcdfilter-light.conf | 5 +
+ conf.d/20-unhint-small-vera.conf | 5 +
+ conf.d/25-unhint-nonlatin.conf | 4 +
+ conf.d/30-metric-aliases.conf | 5 +
+ conf.d/40-nonlatin.conf | 5 +
+ conf.d/45-generic.conf | 6 +
+ conf.d/45-latin.conf | 5 +
+ conf.d/49-sansserif.conf | 5 +
+ conf.d/50-user.conf | 5 +
+ conf.d/51-local.conf | 5 +
+ conf.d/60-generic.conf | 5 +
+ conf.d/60-latin.conf | 5 +
+ conf.d/65-fonts-persian.conf | 4 +
+ conf.d/65-khmer.conf | 4 +
+ conf.d/65-nonlatin.conf | 5 +
+ conf.d/69-unifont.conf | 4 +
+ conf.d/70-no-bitmaps.conf | 5 +
+ conf.d/70-yes-bitmaps.conf | 5 +
+ conf.d/80-delicious.conf | 4 +
+ conf.d/90-synthetic.conf | 4 +
+ configure.ac | 17 +
+ doc/fcconfig.fncs | 35 ++
+ fc-cache/fc-cache.c | 80 +++--
+ fc-cat/fc-cat.c | 46 +--
+ fc-conflist/Makefile.am | 60 ++++
+ fc-conflist/fc-conflist.c | 142 ++++++++
+ fc-conflist/fc-conflist.sgml | 135 ++++++++
+ fc-list/fc-list.c | 40 ++-
+ fc-match/fc-match.c | 46 +--
+ fc-pattern/fc-pattern.c | 36 +-
+ fc-query/fc-query.c | 36 +-
+ fc-scan/fc-scan.c | 30 +-
+ fc-validate/Makefile.am | 2 +-
+ fc-validate/fc-validate.c | 42 ++-
+ fontconfig/fontconfig.h | 25 +-
+ fonts.conf.in | 5 +
+ git.mk | 15 +
+ local.conf | 5 +
+ po-conf/ChangeLog | 12 +
+ po-conf/LINGUAS | 1 +
+ po-conf/Makevars | 78 +++++
+ po-conf/POTFILES.in | 0
+ po/ChangeLog | 12 +
+ po/LINGUAS | 1 +
+ po/Makevars | 78 +++++
+ po/POTFILES.in | 11 +
+ src/Makefile.am | 4 +-
+ src/fccfg.c | 675
+ ++++++++++++++++++++++++--------------
+ src/fcdbg.c | 10 +-
+ src/fcinit.c | 1 +
+ src/fcint.h | 113 ++++++-
+ src/fcptrlist.c | 198 +++++++++++
+ src/fcxml.c | 179 +++++++---
+ 69 files changed, 1916 insertions(+), 449 deletions(-)
+
+commit 0c149259e4cc8070f6c8bf149290abb1367f340a
+Author: Akira TAGOH
+Date: Tue Nov 7 14:46:10 2017 +0900
+
+ doc: trivial update
+
+ doc/fcfreetype.fncs | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 14d70d3a8ae6f2652305daeb019e518f7e0c505b
+Author: Akira TAGOH
+Date: Thu Sep 21 17:06:17 2017 +0900
+
+ Bump version to 2.12.6
+
+ README | 22 ++++++++++++++++++++--
+ configure.ac | 2 +-
+ fontconfig/fontconfig.h | 2 +-
+ 3 files changed, 22 insertions(+), 4 deletions(-)
+
+commit 3f96450be0291e4903ebccf601e5af46b55cd193
+Author: Akira TAGOH
+Date: Thu Sep 21 17:05:51 2017 +0900
+
+ Update libtool revision
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a7953dbf47b30fbbe499ad6a4a97396a7942232a
+Author: Alban Browaeys
+Date: Mon Oct 16 15:36:58 2017 +0200
+
+ Fixes cleanup
+
+ Remove leftover references to run-test271.sh.
+
+ test/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 90271ae0798dfbdb0d9dce85caf914bee99eca4e
+Author: Alexander Kanavin
+Date: Wed Oct 11 17:40:09 2017 +0300
+
+ src/fcxml.c: avoid double free() of filename
+
+ It's also freed after bail1, so no need to do it here.
+
+ src/fcxml.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit f4a2a1e577f6d6fe40469fb0ab68eb0b5f42465c
+Author: Behdad Esfahbod
+Date: Wed Oct 11 17:26:52 2017 +0200
+
+ Remove assert
+
+ src/fcfreetype.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit c41c9220181b203d1cf1f6435f6e3735cb7c84ac
+Author: Bastien Nocera
+Date: Thu Oct 5 12:17:59 2017 +0200
+
+ conf: Prefer system emoji fonts to third-party ones
+
+ Prefer the system provided emoji fonts on systems which provide one,
+ such as Windows, MacOS and Android, even if the Emoji One or Emoji Two
+ fonts are installed.
+
+ This also allows free software OSes such as GNOME to prefer the Emoji
+ One font, which is not used in other OSes and therefore has a unique
+ brand identity, by installing them and only them by default.
+
+ Users can use more capable fonts while Emoji One and Emoji Two
+ catch up
+ by installing a font otherwise already used by another system, such as
+ Google's freely redistributable Noto Emoji font.
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1496761
+
+ conf.d/45-generic.conf | 16 +++++++++-------
+ conf.d/60-generic.conf | 5 +++--
+ 2 files changed, 12 insertions(+), 9 deletions(-)
+
+commit 9fde3461e3aae3afc57ed100dc7784045e591766
+Author: Akira TAGOH