X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=src%2Ffclang.c;h=515e3cf74d29449b4717281c2b4134ccf8f7c83f;hb=212c9f437e959fbdc5fe344c67b8c1cf8ca63edb;hp=28b2d9b9c6965755b72b80981da54eafc7d3b1b3;hpb=e1b9d091c661b0e1d1e9f73c5c55ad53959c55c7;p=fontconfig.git diff --git a/src/fclang.c b/src/fclang.c index 28b2d9b..515e3cf 100644 --- a/src/fclang.c +++ b/src/fclang.c @@ -774,3 +774,31 @@ FcLangSetSerialize(FcLangSet *l) new.u.stat = p; return new; } + +FcBool +FcLangSetWrite (int fd, FcCache *metadata) +{ + metadata->langsets_length = langset_ptr; + metadata->langsets_offset = FcCacheNextOffset(fd); + + if (langset_ptr > 0) + { + lseek (fd, metadata->langsets_offset, SEEK_SET); + return write(fd, langsets, + metadata->langsets_length * sizeof(FcLangSet)) != -1; + } + return FcTrue; +} + +FcBool +FcLangSetRead (int fd, FcCache metadata) +{ + langsets = mmap(NULL, + metadata.langsets_length * sizeof (FcLangSet), + PROT_READ, + MAP_SHARED, fd, metadata.langsets_offset); + if (langsets == MAP_FAILED) + return FcFalse; + langset_count = langset_ptr = metadata.langsets_length; + return FcTrue; +}