15 stable releases

Uses old Rust 2015

5.1.0 Jul 8, 2020
5.0.1 Mar 25, 2020
4.0.9 Dec 8, 2019
4.0.7 Sep 20, 2018
2.11.1 Nov 27, 2015

#1029 in Graphics APIs

Download history 6950/week @ 2023-11-24 5617/week @ 2023-12-01 6438/week @ 2023-12-08 6543/week @ 2023-12-15 5902/week @ 2023-12-22 6351/week @ 2023-12-29 6798/week @ 2024-01-05 6858/week @ 2024-01-12 6879/week @ 2024-01-19 6979/week @ 2024-01-26 6731/week @ 2024-02-02 7275/week @ 2024-02-09 7110/week @ 2024-02-16 7221/week @ 2024-02-23 7424/week @ 2024-03-01 3550/week @ 2024-03-08

26,307 downloads per month
Used in 80 crates (2 directly)

MIT license

2MB
40K SLoC

C 21K SLoC // 0.1% comments M4 8K SLoC // 0.2% comments Shell 7.5K SLoC // 0.2% comments Bitbake 2K SLoC Automake 1K SLoC // 0.3% comments RPM Specfile 107 SLoC // 0.1% comments Rust 52 SLoC // 0.1% comments
                          Fontconfig
         Font configuration and customization library
                        Version 2.11.1
                          2014-03-24

Check INSTALL for compilation and installation instructions. Report bugs to https://bugs.freedesktop.org in the fontconfig module.

2.11.1

Akira TAGOH (31): do not build test-migration for Win32 Fix build issue on Debian/kFreeBSD 7.0 Update ax_pthread.m4 to the latest version Fix the dynamic loading issue on NetBSD Use stat() if there are no d_type in struct dirent Fix a build issue on Solaris 10 Change the default weight on match to FC_WEIGHT_NORMAL Warn if no nor elements in Correct DTD Re-scan font directories only when it contains subdirs Fix typo Bug 72086 - Check for gperf in autogen.sh Simplify to validate the availability of posix_fadvise Simplify to validate the availability of scandir Fix a typo Fix a build issue on platforms where doesn't support readlink() Improve the performance issue on rescanning directories Bug 73686 - confdir is not set correctly in fontconfig.pc Update zh_hk.orth clean up the unused files Add missing license headers Update the use of autotools' macro Fix a crash issue when empty strings are set to the BDF properties Add a doc for FcDirCacheRescan Add missing #include <sys/statvfs.h> in fcstat.c Fix incompatible API on AIX with random_r and initstate_r Fallback to lstat() in case the filesystem doesn't support d_type in struct dirent Update doc to include the version info of `since when' Bug 73291 - poppler does not show fl ligature Add README describes the criteria to add/modify the orthography files Fix autoconf warning, warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS

Alan Coopersmith (3): Leave room for null terminators in arrays Avoid memory leak when NULL path passed to FcStrBuildFilename Avoid null pointer dereference in FcNameParse if malloc fails

Behdad Esfahbod (1): Bug 72380 - Never drop first font when trimming

Frederic Crozat (2): Fix inversion between Tinos and Cousine in the comment Add metric aliases for additional Google ChromeOS fonts

Jehan (1): Defaulting to LOCAL_APPDATA_FONTCONFIG_CACHE for Win32 build

Ross Burton (1): fc-cache: --sysroot option takes an argument

2.11

Akira TAGOH (15): Do not create a config dir for migration when no config files nor dirs Add a test case of the migration for config place Fix memory leaks in FcFreeTypeQueryFace Bug 68955 - Deprecate / remove FC_RASTERIZER Copy all values from the font to the pattern if the pattern doesn't have the element Fix a crash when FcPattern is set to null on FcFontSetList() and FcFontList() Add the description of -q option to the man page avoid reading config.h twice clean up Add the relative path for to fonts.conf if the parent path is same to fonts.conf Workaround the race condition issue on updating cache exit with the error code when FcNameParse() failed Add missing doc for FcStrListFirst and fix a typo Bump libtool revision Update CaseFolding.txt to Unicode 6.3

Jan Alexander Steffens (heftig) (1): Further changes to 30-metric-aliases.conf

W. Trevor King (1): doc/fccharset.fncs: Describe the map format in more detail

2.10.95 (2.11 RC5)

Akira TAGOH (2): Fix a typo Fix a crash

2.10.94 (2.11 RC4)

Akira TAGOH (25): Bug 64906 - FcNameParse() should ignore leading whitespace in parameters Fix a comparison of constant warning with clang Fix a shift count overflow on 32bit box Fix a incompatible pointer warning on NetBSD Add FcTypeUnknown to FcType to avoid comparison of constant -1 Fix the behavior of intermixed tests end edits in match Ignore scandir() check on mingw Use INT_MAX instead of unreliable hardcoding value Add FC_UNUSED to FC_ASSERT_STATIC macro to avoid compiler warning Rework to apply the intermixed test and edit elements in one-pass trivial code optimization Correct fontconfig.pc to add certain dependencies for build Correct fontconfig.pc to add certain dependencies for static build Fix wrong edit position Bug 67809 - Invalid read/write with valgrind when assigning something twice warn deprecated only when migration failed Bug 67845 - Match on FC_SCALABLE Bug 16818 - fontformat in match pattern is not respected? Bug 68340 - More metric compat fonts Bug 63399 - Add default aliases for Georgia, Garamond, Palatino Linotype, Trebuchet MS Fix a typo Fix a crash when non-builtin objects are edited Fix a wrong edit position when 'kind' is different Bug 68587 - copy qu.orth to quz.orth Add quz.orth to Makefile.am

Behdad Esfahbod (2): Minor Fix assertion

2.10.93 (2.11 RC3)

Akira TAGOH (10): Bug 62980 - matching native fonts with even :lang=en Ensure closing fp on error Obtain fonts data via FT_Face instead of opening a file directly Revert the previous change and rework to not export freetype API outside fcfreetype.c documented FC_HASH and FC_POSTSCRIPT_NAME Bug 63329 - make check fails: .. contents:: :depth: 2 Use the glob matching for filename Bug 63452 - conf.d/README outdated Fix missing OSAtomicCompareAndSwapPtrBarrier() on Mac OS X 10.4 Bug 63922 - FcFreeTypeQueryFace fails on postscripts fonts loaded from memory

Sebastian Freundt (1): build-chain, replace INCLUDES directive by AM_CPPFLAGS

2.10.92 (2.11 RC2)

Akira TAGOH (33): Fix the build fail on MinGW Bug 50497 - RFE: Add OpenType feature tags support Improve FcGetPrgname() to work on BSD Better fix for 2fe5ddfd Add missing file descriptor to F_DUPFD_CLOEXEC Fix mkstemp absence for some platform Fix installation on MinGW32 Add another approach to FC_PRGNAME for Solaris 10 or before remove the unnecessary code Bug 59385 - Do the right thing for intermixed edit and test elements Bug 23757 - Add mode="delete" to Modernize configure.ac Use AM_MISSING_PROG instead of hardcoding missing Revert "test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT" Use AM_MISSING_PROG instead of hardcoding missing Bug 50733 - Add font-file hash? Bug 60312 - DIST_SUBDIRS should never appear in a conditional Update FcMatchers definition logic Bump the cache version to 4 Add Culmus foundry to the vendor list Bug 60748 - broken conf.d/10-autohint.conf and conf.d/10-unhinted.conf Bug 60783 - Add Liberation Sans Narrow to 30-metric-aliases.conf Fix a typo Fix a crash when the object is non-builtin object Fix broken sort order with FcFontSort() Fix a memory leak Bug 59456 - Adding a --sysroot like option to fc-cache Do not copy FCLANG_OBJECT even if it's not available on the pattern Fix a SIGSEGV on FcPatternGet with NULL pattern Bug 38737 - Wishlist: support FC_POSTSCRIPT_NAME Minor cleanup Bump libtool revision Minor fix

Behdad Esfahbod (12): Resepct $NOCONFIGURE Ensure we find the uninstalled fontconfig header Copy all values from pattern to font if the font doesn't have the element Minor Bug 59379 - FC_PRGNAME Remove unused checks for common functions Minor Fix fc-cache crash caused by looking up NULL object incorrectly Fix FC_PRGNAME default Fix readlink failure Accept digits as part of OpenType script tags Fix crash with FcConfigSetCurrent(NULL)

Christoph J. Thompson (1): Use the PKG_INSTALLDIR macro.

Colin Walters (1): build: Only use PKG_INSTALLDIR if available

Quentin Glidic (2): test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT Use LOG_COMPILER and AM_TESTS_ENVIRONMENT

2.10.91 (2.11 RC1)

Akira TAGOH (19): Fix a potability issue about stdint.h Fix build issues on clean tree Do not show the deprecation warning if it is a symlink Fix a typo Fix the wrong estimation for the memory usage information in fontconfig Remove the duplicate null-check Remove the dead code clean up Fix a typo that accessing to the out of array Fix a memory leak Check the system font to be initialized Missing header file for _mkdir declaration Clean up the unused variable Bug 47705 - Using O_CLOEXEC missing header file to declare _mkdir Fix a build fail on mingw Fix a typo in the manpages template Bug 29312 - RFE: feature to indicate which characters are missing to satisfy the language support Update the date in README properly

Behdad Esfahbod (73): Fix typo Parse matrices of expressions Fix compiler warnings Fix unused-parameter warnings Fix more warnings Fix sign-compare warnings Fix warning Fix more warnings Fixup from 4f6767470f52b287a2923e7e6d8de5fae1993f67 Remove memory accounting and reporting Allow target="font/pattern/default" in elements Don't warn if an unknown element is used in an expression Unbreak build when FC_ARCHITECTURE is defined Remove unneeded stuff Enable fcarch assert checks even when FC_ARCHITECTURE is explicitly given Make tests run on Windows Initialize matrix during name parsing Adjust docs for recent changes Warn if appears in Make FC_DBG_OBJTYPES debug messages into warnings Refuse to set value to unsupported types during config too Add NULL check Don't crash in FcPatternDestroy with NULL pattern Don't crash in FcPatternFormat() with NULL pattern Minor Whitespace Deprecate FcName(Un)RegisterObjectTypes / FcName(Un)RegisterConstants Use a static perfect hash table for object-name lookup Switch .gitignore to git.mk Remove shared-str pool Fix build stuff Add build stuff for threadsafety primitives Add thread-safety primitives Make refcounts, patterns, charsets, strings, and FcLang thread-safe Make FcGetDefaultLang and FcGetDefaultLangs thread-safe Make FcInitDebug() idempotent Make FcDefaultFini() threadsafe Refactor; contain default config in fccfg.c Minor Make default-FcConfig threadsafe Minor Make FcCacheIsMmapSafe() threadsafe Minor Make cache refcounting threadsafe Add a big cache lock Make random-state initialization threadsafe Make cache hash threadsafe Make FcDirCacheDispose() threadsafe Make fcobjs.c thread-safe Warn about undefined/invalid attributes during config parsing Fixup fcobjs.c Remove FcSharedStr* Fix compiler warnings Minor Fix build and warnings on win32 Use CC_FOR_BUILD to generate source files Fix more warnings. Trying to fix distcheck Fix build around true/false Work around Sun CPP Really fix cross-compiling and building of tools this time Second try to make Sun CPP happy Ugh, add Tools.mk Minor Don't use blanks for fc-query Remove FcInit() calls from tools Add 10-scale-bitmap-fonts.conf and enable by default Oops, add the actual file Fix pthreads setup Fix memory corruption! Add pthread test Add atomic ops for Solaris Make linker happy

Jon TURNEY (1): Fix build when srcdir != builddir

2.10.2

Akira TAGOH (13): Bug 53585 - Two highly-visible typos in src/fcxml.c Fix for libtoolize's warnings Bug 54138 - X_OK permission is invalid for win32 access(..) calls Bug 52573 - patch required to build 2.10.x with oldish GNU C library headers deal with warnings as errors for the previous change Fix wrongly squashing for the network path on Win32. Fix syntax errors in fonts.dtd. autogen.sh: Add -I option to tell aclocal a place for external m4 files Use automake variable instead of cleaning files in clean-local Bug 56531 - autogen.sh fails due to missing 'm4' directory Bug 57114 - regression on FcFontMatch with namelang Update CaseFolding.txt to Unicode 6.2 Bug 57286 - Remove UnBatang and Baekmuk Batang from monospace in 65-nonlatin.conf

Behdad Esfahbod (1): Fix N'ko orthography

Jeremy Huddleston Sequoia (1): Remove CONFIG_FIXUPS_H guards, so multiple includes of "config.h" result in the correct values

2.10.1

Akira TAGOH (2): Fix a typo in fontconfig.pc Install config files first

2.10.0

Akira TAGOH (5): Bug 34266 - configs silently ignored if libxml2 doesn't support SAX1 interface Update CaseFolding.txt to Unicode 6.1 Fix a build fail with gcc 2.95, not supporting the flexible array members. Bump libtool revision Update INSTALL

2.9.92 (2.10 RC2)

Akira TAGOH (9): Bug 50835 - Deprecate FC_GLOBAL_ADVANCE Fix a typo and build fail. Fix a build fail on MINGW Fix the fail of make install with --disable-shared on Win32 clean up the lock file properly on even hardlink-not-supported filesystem. Rename configure.in to configure.ac Bug 18726 - RFE: help write locale-specific tests Bump libtool revision Update INSTALL

Marius Tolzmann (2): Fix newline in warning about deprecated config includes Fix warning about deprecated, non-existent config includes

2.9.91 (2.10 RC1)

Akira TAGOH (60): [doc] Update the path for cache files and the version. [doc] Update for cachedir. Revert "Fix a build fail on some environment." Revert "Fix a build fail on some environment" Fix a build issue due to the use of non-portable variables Get rid of the prerequisites from the sufix rules Bug 39914 - Please tag the cache directory with CACHEDIR.TAG fc-cache: improvement of the fix for Bug#39914. fcmatch: Set FcResultMatch at the end if the return value is valid. Bug 47703 - SimSun default family Bug 17722 - Don't overwrite user's configurations in default config Fix a memory leak in FcDirScanConfig() Bug 17832 - Memory leaks due to FcStrStaticName use for external patterns fcpat: Increase the number of buckets in the shared string hash table Fix the hardcoded cache file suffix Move workaround macros for fat binaries into the separate header file Bug 48020 - Fix for src/makealias on Solaris 10 Bug 24729 - [ne_NP] Fix ortho file doc: Add contains and not_contains operators and elements Use AC_HELP_STRING instead of formatting manually Use pkgconfig to check builddeps Bug 29341 - Make some fontconfig paths configurable Bug 22862 - ignores s Bug 26830 - Add search for libiconv non-default directory Bug 28491 - Allow matching on FC_FILE Bug 48573 - platform without regex do not have also REG_XXX defines Bug 27526 - Compatibility fix for old windows sytems Add --with-expat, --with-expat-includes and --with-expat-lib back. doc: Fix a typo of the environment variable name. Bug 25151 - Move cleanCacheDirectory() from fc-cache.c into Rework to avoid adding the unexpected value to ICONV_CFLAGS and ICONV_LIBS Fix a build issue again when no regex functions available C++11 requires a space between literal and identifier Bug 47721 - Add ChromeOS fonts to 30-metric-aliases.conf Create CACHEDIR.TAG when fc-cache is run or only when the cache directory is created at the runtime. Add --enable-iconv option to configure Bug 27765 - FcMatch() returns style in wrong language Disable iconv support anyway... Bug 39278 - make usage of mmap optional Output more verbose debugging log to show where to insert the element into the value list fonts.conf: keeps same binding for alternatives fcarch.c: get rid of the duplicate definition of FC_MAX Bug 19128 - Handling whitespace in aliases Bug 20411 - fontconfig doesn't match FreeDesktop directories specs Correct the example Bug 33644 - Fontconfig doesn't match correctly in fcatomic: fallback to create a directory with FcAtomicLock Move statfs/statvfs wrapper to fcstat.c and add a test for the mtime broken fs Fix the build fail on Solaris Fix a typo and polish the previous change Fix the wrong estimation for the memory usage information in fontconfig Bug 32853 - Export API to get the default language fcdefault: fallback if the environment variables are empty Add the default language to the pattern prior to do build the substitution fcdefault: no need to set FC_LANG in FcDefaultSubstitute() anymore fcdefault: Add the lang object at FcConfigSubstituteWithPat() only when kind is FcMatchPattern Bug 50525 - superfluous whitespace in the style Bump libtool revision doc: Fix distcheck error again... Generate bzip2-compressed tarball too

Jeremy Huddleston (1): fcarch: Check for architecture signature at compile time rather than configure time

Keith Packard (3): Use posix_fadvise to speed startup Extra ',' in AC_ARG_WITH(arch causes arch to never be autodetected Deal with architectures where ALIGNOF_DOUBLE < 4

Mark Brand (1): fix building for WIN32

Mikhail Gusarov (2): Move FcStat to separate compilation unit Fix cache aging for fonts on FAT filesystem under Linux

2.9

Akira TAGOH (28): Add charset editing feature. add some document for range and charset. Add the range support in blank element Add editing langset feature. add some documents Bug 24744 - No n'ko orthography Remove the unnecessary comment in ks.orth Bug 32965 - Asturian (ast-ES) language matching missing ḷḷḥ Add a missing file Bug 35517 - Remove Apple Roman cmap support Bug 40452 - Running 'fc-match --all' core dumps when no fonts are installed Get rid of the unexpected family name Bug 44826 - must contain only a single Bug 46169 - Pointer error in FcConfigGlobMatch Do not update stream->pos when seeking is failed. Bug 27385 - lcdfilter settings for freetype-2.3.12 not available in fontconfig-2.8.0 Add brx.orth and sat.orth Bug 41694 - FcCache functions have random-number-generator side effects Bug 23336 - unable to display bitmap-only (SFNT) TrueType or OpenType Check null value for given object to avoid possibly segfaulting Bug 19128 - Handling whitespace in aliases Fix distcheck error Update the version info Update to detect the uncommited changes properly Fix a build issue Fix a build fail on some environment Fix a build fail on some environment. Get rid of $< from Makefile.am

Alan Coopersmith (1): Fix compiler warnings

Behdad Esfahbod (54): [fc-cache] Document -r argument in man page [doc] Fix typo Bug 25508 configure assumes bash > 2.0 is on system Update INSTALL Add note about autogen.sh to INSTALL Fix doc typo More doc typo fixes Bug 18886 installation crashes if fontconfig already installed Bug 26157 Solaris/Sun C 5.8: compilation of 2.8.0 and 2.7.3 fails Bug 25152 Don't sleep(2) if all caches were uptodate Don't include unistd.h in fontconfig.h Accept TT_PLATFORM_MICROSOFT, TT_MS_ID_SYMBOL_CS from name table Whitespace More whitespace Remove all training whitespaces Fix comment Add fc-pattern cmdline tool Bug 29338 - fc-pattern.sgml, open para tag Add comments Bug 29995 - fc-cat does not invoke FcFini() Add new public API: FcCharSetDelChar() [fc-lang] Support excluding characters Bug 24729 - [ne_NP] Fix ortho file Add more copyright owners Cleanup copyright notices to replace "Keith Packard" with "the author(s)" Fix returned value Bug 28958 - lang=en matches other langs Make most generated-files cross-compiling-safe Make fc-arch stuff cross-compiling-safe Bump version Allow editing charset and lang in target="scan" Add support for into the DTD Skip elements with begin > end Doc nit Fix assertion failure on le32d4 Remove AM_MAINTAINER_MODE Update CaseFolding.txt to Unicode 6.0 Remove --enable-maintainer-mode from autogen.sh Bug 20113 - Uighur (ug) orthography incomplete Bug 30566 - fcformat.c:interpret_enumerate() passes uninitialized idx to FcPatternGetLangSet() Mark constant strings as constant More doc typo fixes Always define FcStat as a function Fix warning Bug 35587 - Add padding to make valgrind and glibc not hate each other [.gitignore] Update Bug 36577 - Updating cache with no-bitmaps disables bitmap fonts... Bug 26718 - "fc-match sans file" doesn't work Switch fc-match to use FcPatternFormat() Switch fc-cat to use FcPatternFormat() Fix stupid bug in FcFontSort() Bug 41171 - Invalid use of memset Fix parallel build Add FcPublic to FcLangSetUnion and FcLangSetSubtract

Brad Hards (1): Documentation fixes

Jeremy Huddleston (2): fontconfig.pc: Add variables for confdir and cachedir fontconfig.pc.in: Add sysconfdir, localstatedir, and PACKAGE

Jinkyu Yi (1): Bug 42423 - make default Korean font from Un to Nanum

MINAMI Hirokazu (1): Bug 43406 - typo of Japanese font name in conf.d/65-nonlatin.conf

Mike Frysinger (9): FcStrPlus: optimize a little delete unused variables FcStat: change to FcChar8 for first arg fc-cat: fix pointer warning FcName{,Get}Constant: constify string input fc-{list,match}: constify format string fix build warnings when using --with-arch FcObjectValidType: tweak -1 checking makealias: handle missing funcs better

Parag Nemade (2): Bug 25651 - Add ortho file for locale brx_IN Bug 25650 - Add ortho file for locale sat_IN

Pravin Satpute (4): Bug 27195 - need updates to ks.orth file Bug 43321 - Required corrections in urdu.orth file Bug 25653 - Add ortho file for locale doi_IN Bug 25652 - Add ortho file for locale mni_IN

2.8

Behdad Esfahbod (24): Clarify default confdir and cachedir better. Move FcAlign to fcint.h [fc-arch] Add FcAlign to arch signature [int] Define MIN/MAX/ABS macros Bump cache version up from 2 to 3 and fix FcLangSet caching/crash Remove unused macros [int] Remove fc_storage_type() in favor of direct access to v->type [int] Remove fc_value_* macros that did nothing other than renaming Enable automake silent rules [int] Remove more unused macros [xml] Remove unused code [arch] Try to ensure proper FcLangSet alignment in arch [lang] Fix serializing LangSet from older versions Make sure fclang.h and fcarch.h are built Remove bogus comment [fc-glyphname] Cleanup Makefile.am [src] Create fcglyphname.h automatically [fc-glyphname] Rename internal arrays to prefix with fc Clean up Makefile's a bit [fc-glyphname] Remove Adobe glyphlist [fc-case] Update CaseFolding.txt to Unicode 5.2.0 [fc-arch] Beautify the arch template [fc-arch] Rename architecture names to better reflect what they are Bump libtool revision in preparation for release

2.7.3

Behdad Esfahbod (2): Use default config in FcFileScan() and FcDirScan() Bump libtool version in preparation for release

Roozbeh Pournader (2): Correct Ewe (ee) orthography to use U+025B (bug #20711) Updated Arabic, Persian, and Urdu orthographies

2.7.2

Behdad Esfahbod (6): Improve charset printing ja.orth Comment out FULLWIDTH YEN SIGN (#22942) Bug 22037 - No Fonts installed on a default install on Windows Server 2003 Bug 23419 - "contains" expression seems not working on the fontconfig rule Revert "Fix FcNameUnparseLangSet()" and redo it Bump libtool version for release

Tor Lillqvist (3): Fix MinGW compilation Fix heap corruption on Windows in FcEndElement() Use multi-byte codepage aware string function on Windows

2.7.1

Behdad Esfahbod (16): git-tag -s again Fix win32 build Replace spaces with tabs in conf files Remove unused ftglue code Add Inconsolata to monospace config (#22710) Fix leak with string VStack objects Improve libtool version parsing (#22122) Use GetSystemWindowsDirectory() instead of GetWindowsDirectory() (#22037) Remove unused macros Fix FcNameUnparseLangSet() Fix doc syntax (#22902) TT_MS_ID_UCS_4 is really UTF-16BE, not UTF-32 [doc] Add ~/fonts.conf.d to user docs Hardcode /etc/fonts instead of @CONFDIR@ in docs (#22911) Bump libtool versions that 2.7.0 (I forgot to do back then) Update .gitignore

Karl Tomlinson (1): Don't change the order of names unnecessarily (#20128)

2.7

Alexey Khoroshilov (1): Use human-readable file names in the docs (bug #16278)

Behdad Esfahbod (119): Avoid C99ism in Win32 code (#16651) [doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985) When canonizing filenames, squash // and remove final / (#bug 16286) Add orth file for Maithili mai.orth (#15821) Replace RCS Id tags with the file name [doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272) Update Thai default families (#16223) Add ~/.fonts.conf.d to default config (#17100) [fc-match] Fix list of getopt options in --help Update man pages Add fc-query (#13019) Implement fc-list --verbose (#13015) [doc] Add const decorator for FcPatternDuplicate() Add FcPatternFilter() (#13016) [doc] Document that a zero rescanInterval disables automatic checks (#17103) Get rid of $Id$ tags [doc] Fix signature of FcConfigHome() Fix docs re 'orig' argument of FcPatternBuild and family Update sr.orth to actul subset of Cyrillic used by Serbian (#17208) Add Sindhi .orth file. (#17140) Add WenQuanYi fonts to default conf (#17262, from Mandriva) Handle -h and --help according to GNU Coding Standards (#17104) Document when config can be NULL (#17105) Add FcConfigReference() (#17124) Document how to free return value of FcNameUnparse() Don't leak FcValues string loaded through fcxml.c (#17661) Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361) Fix two more doc typos [.gitignore] Update Cleanup symlinks in "make uninstall" (bug #18885) [fccache] Consistently use FcStat() over stat() (bug #18195) Consistently use FcStat() over stat() in all places Use __builtin_popcount() when available (bug #17592) Fix compile with old FreeType that doesn't have FT_Select_Size() (bug #17498) Implement fc-list --quiet ala grep (bug #17141) 65-fonts-persian.conf Set foundry in target=scan instead of target=font Don't use identifier named complex Explicitly chmod() directories (bug #18934) Remove special-casing of FC_FILE in FcPatternPrint() [.gitignore] Update Implement FcPatternFormat and use it in cmdline tools (bug #17107) Fix comparison of family names to ignore leading space properly fcmatch.c Fix debug formatting [fcmatch] Use larger multipliers to enforce order [fcmatch] When matching, reserve score 0 for when elements don't exist [fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal() [doc] Note that fontset returned by FcConfigGetFonts should not be modified Make FcCharSetMerge() public Don't use FcCharSetCopy in FcCharSetMerge Oops. Fix usage output. Revive FcConfigScan() (bug #17121) Add fc-scan too that runs FcFileScan/FcDirScan Oops, fix FcPatternFilter [fc-match] Accept list of elements like fc-list (bug #13017) Cleanup all manpage.* files [fcmatch] Fix crash when no fonts are available. [fcfreetype] Fix typo in GB2312 encoding name string (#19845) Add ICONV_LIBS to fontconfig.pc.in (#19606) [win32] Fix usage of GetFullPathName() [win32] Expand "APPSHAREFONTDIR" to ../share/fonts relative to binary location [win32] Do not remove leading '\' such that network paths work [fccache] Make sure the cache is current when reusing from open caches Update Sinhala orthography (#19288) [cache] After writing cache to file, update the internal copy to reflect this Further update Sinhala orthography (#19288) [fcformat] Add support for width modifiers [fcformat] Refactor and restructure code for upcoming changes [fcformat] Add support for subexpressions [fcformat] Add element filtering and deletion [fcformat] Add conditionals [fcformat] Add simple converters [fcformat] Implement 'cescape', 'shescape', and 'xmlescape' converters [FcStrBuf] better handle malloc failure [fcformat] Add value-count syntax [fcformat] Implement 'delete', 'escape', and 'translate' filter functions [fcformat] Start adding builtins [fcformat] Refactor code to avoid malloc [fcformat] Add support for builtin formats [fcformat] Support indexing simple tags [fcformat] Support 'default value' for simple tags [fcformat] Implement array enumeration [fclang] Implement FcLangSetGetLangs() (#18846) [fcformat] Enumerate langsets like we do arrays of values [fcformat] Add a 'pkgkit' builtin that prints tags for font packages [fcformat] Add list of undocumented language features [fc-lang] Continue parsing after an "include" (#20179) Fix Fanti (fat) orth file (#20390) Fix Makefile's to not create target file in case of failure fcstr.c Embed a static 64-byte buffer in FcStrBuf [fcstr,fcxml] Don't copy FcStrBuf contents when we would free it soon [fcxml] Don't allocate attr array if there are no attributes [fcxml] Embed 8 static FcPStack objects in FcConfigParse [fcxml] Embed 64 static FcVStack objects in FcConfigParse fcxml.c Embed a static 64-byte attr buffer in FcPStack Call git tools using "git cmd" instead of "git-cmd" syntax Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files [fcformat] Fix default-value handling Document FcPatternFormat() format Makefile.am Don't clean ChangeLog in distclean Revert "[conf] Disable hinting when emboldening (#19904)" (#20599) [fc-lang] Fix bug in country map generation [fcstr] Remove unused variable [fc-lang] Make LangSet representation in the cache files stable [fc-cache] Remove obsolete sentence from man page Detect TrueType Collections by checking the font data header Mark matchers array const (#21935) Use/prefer WWS family/style (name table id 21/22) Simplify FcValueSave() semantics Add XXX note about Unicode Plane 16 Always set *changed in FcCharsetMerge [charset] Grow internal FcCharset arrays exponentially Remove unused prototypes and function [xml] Centralize FcExpr allocation [xml] Mark more symbols static [xml] Allocate FcExpr's in a pool in FcConfig [xml] Intern more strings Bug 22154 -- fontconfig.pc doesn't include libxml2 link flags Fix distcheck Remove keithp's GPG key id

Benjamin Close (1): Remove build manpage logfile if it exists

Chris Wilson (1): Reduce number of allocations during FcSortWalk().

Dan Nicholson (1): Let make expand fc_cachedir/FC_CACHEDIR (bug #18675)

Harald Fernengel (1): Don't use variables named 'bool' (bug #18851)

Harshula Jayasuriya (1): Fix Sinhala coverage (bug #19288)

Karl Tomlinson (1): Change FcCharSetMerge API

Mike FABIAN (1): [conf] Disable hinting when emboldening (#19904)

Peter (1): Make sure alias files are built first (bug 16464)

Rahul Bhalerao (1): Add config for new Indic fonts (bug #17856)

Roozbeh Pournader (60): Correct Sindhi orthography to use Arabic script (bug #17140) Remove Sinhala characters not in modern use (bug #19288) Add Filipino orth, alias Tagalog to Filipino (bug #19846) Split Mongolian orth to Mongolia and China (bug #19847) Fix doubly encoded UTF-8 in comments (bug #19848) Change Turkmen orth from Cyrillic to Latin (bug #19849) Rename Venda from "ven" to "ve" (bug #19852) Rename "ku" to "ku_am", add "ku_iq" (bug #19853). Add Kashubian (csb) orth file (bug #19866) Add Malay (ms) orthography (bug #19867) Add Kinyarwanda (rw) orthography (bug #19868) Add Upper Sorbian (hsb) orthography (bug #19870) Add Berber orthographies in Latin and Tifinagh scripts (bug #19881) Renamed az to az_az (bug #19889) Rename Igbo from "ibo" to "ig" (bug #19892) Remove punctuation symbols from Asturian orthography (bug #19893) Add Chhattisgarhi (hne) orthography (bug #19891) Use newly added Cyrillic letters for Kurdish (bug #20049) Add Kurdish in Turkey (ku_tr) orthography (bug #19891) Add Aragonese (an) orthography (bug #19891) Add Haitian Creole (ht) orthography (bug #19891) Ad Ganda (lg) orthography (bug #19891) Add Limburgan (li) orthography (bug #19891) Add Sardinian (sc) orthography (bug #19891) Add Sidamo (sid) and Wolaitta (wal) orthographies (bug #19891) Fix Bengali (bn) and Assamese (as) orthographies (bug #22924) Remove Euro Sign from all orthographies (bug #19865) Add Ottoman Turkish (ota) orthography (bug #20114) Divide Panjabi (pa) to that of Pakistan and India (bug #19890) Add Blin (byn) orthography (bug #19891) Add Papiamento (pap_aw, pap_an) orthographies (bug #19891) Add Crimean Tatar (crh) orthography (bug #19891) Switch Uzbek (uz) orthography to Latin (bug #19851) Update Azerbaijani in Latin (az_az) to present usage (bug #20173) Rename Avaric orthography from 'ava' to 'av' (bug #20174) Rename Bambara orthography from 'bam' to 'bm' (bug #20175) Rename Fulah orthography from 'ful' to 'ff' (bug #20177) Change Kashmiri (ks) orthography to Arabic script (bug #20200) Tighten Central Khmer (km) orthography (bug #20202) Remove digits and symbols from some Indic orthographies (bug #20204) Add Divehi (dv) orthography (bug #20207) Extend Crimean Tatar (crh) orthography (bug #19891) Update Serbo-Croatian (sh) orthography (bug #20368) Add Ewe (ee) orthography (bug #20386) Add Herero (hz) orthograhy (bug #20387) Add Akan (ak) and Fanti (fat) orthographies (bug #20390) Added Quechua (qu) orthography (bug #20392) Add Sango (sg) orthography (bug #20393) Add Tahitian (ty) orthography (bug #20391) Add Navajo (nv) orthography (bug #20395) Add Rundi (rn) orthography (bug #20398) Add Zhuang (za) orthography (bug #20399) Add orthographies for Oshiwambo languages (bug #20401) Add Shona (sn) orthography (bug #20394) Add Sichuan Yi (ii) orthography (bug #20402) Add Javanese (jv) orthography (bug #20403) Add Nauru (na) orthography (bug #20418) Add Kanuri (kr) orthography (bug #20438) Add Sundanese (su) orthography (bug #20440) Reorganize Panjabi/Punjabi and Lahnda orthographies (bug #19890)

Serge van den Boom (1): Correctly handle mmap() failure (#21062)

2.6

2.5.93 (2.6 RC3)

Alexey Khoroshilov (1): Fix FcStrDirname documentation. (bug 16068)

Behdad Esfahbod (1): Persian conf update. (bug 16066).

Evgeniy Stepanov (1): Fix index/offset for 'decorative' matcher. Bug 15890.

Glen Low (1): Fix Win32 build error: install tries to run fc-cache locally (bug 15928).

Keith Packard (8): Call FcFini to make memory debugging easier Fix a few memory tracking mistakes. Add extended, caps, dunhill style mappings. Freetype 2.3.5 (2007-jul-02) fixes indic font hinting. re-enable (bug 15822) Add a copy of dolt.m4 to acinclude.m4. Libs.private needs freetype libraries Oops. Fix for bug 15928 used wrong path for installed fc-cache. Ignore empty

elements

Neskie Manuel (1): Add Secwepemctsin Orthography. Bug 15996.

Sayamindu Dasgupta (1): FcConfigUptoDate breaks if directory mtime is in the future. Bug 14424.

2.5.92 (2.6 RC2)

Carlo Bramini (1): Add FreeType-dependent functions to fontconfig.def file. (bug 15415)

Changwoo Ryu (1): Korean font in the default config - replacing baekmuk with un (bug 13569)

Dennis Schridde (1): Proper config path for static libraries in win32

Eric Anholt (1): Fix build with !ENABLE_DOCS and no built manpages.

Frederic Crozat (1): Merge some of Mandriva configuration into upstream configuration. Bug 13247

Keith Packard (11): Use DOLT if available Work around for bitmap-only TrueType fonts that are missing the glyf table. Remove size and dpi values from bitmap fonts. Bug 8765. Add some sample cursive and fantasy families. Add --all flag to fc-match to show the untrimmed list. Bug 13018. Remove doltcompile in distclean Use of ":=" in src/Makefile.am is unportable (bug 14420) Make fc-match behave better when style is unknown (bug 15332) Deal with libtool 2.2 which doesn't let us use LT_ variables. (bug 15692) Allow for RC versions in README update git ignore doltcompile

Ryan Schmidt (1): fontconfig build fails if "head" is missing or unusable (bug 14304)

Sylvain Pasche (1): Fontconfig options for freetype sub-pixel filter configuration

2.5.91 (2.6 RC1)

Hongbo Zhao (1): Not_contain should use strstr, not strcmp on strings. (bug 13632)

Keith Packard (11): Move conf.avail/README to conf.d/README (bug 13392) Fix OOM failure case in FcPStackPush. Remove freetype requirement for build-time applications. Include fcftaliastail.h so that the freetype funcs are exported. Eliminate references to freetype from utility Makefile.am's Distribute new fcftint.h file Create new-version.sh to help with releases, update INSTALL instructions Distribute khmer font aliases Add more files to .gitignore new-version.sh was mis-editing files git-tag requires space after -m flag

2.5

Keith Packard (4): Document several function return values (Bug 13145). Document that Match calls FcFontRenderPrepare (bug 13162). Document that FcConfigGetFonts returns the internal fontset (bug 13197) Revert "Remove fcprivate.h, move the remaining macros to fcint.h."

Tor Lillqvist (1): Workaround for stat() brokenness in Microsoft's C library (bug 8526)

2.4.92 (2.5 RC2)

Behdad Esfahbod (14): Make fc-match --sort call FcFontRenderPrepare. Port fonts-persian.conf to new alias syntax with binding="same" Fix trivial bugs in edit-sgml.c Add FcGetLangs() and FcLangGetCharSet(). Add/update config files from Fedora. Split 40-generic.conf into 40-nonlatin.conf and 45-latin.conf Use binding="same" in 30-urw-aliases.conf and remove duplicate entries. Remove redundant/obsolete comments from conf files. Remove 20-lohit-gujarati.conf. It's covered by 25-unhint-nonlatin.conf now. Oops, fix Makefile.am. Remove 25-unhint-nonlatin.conf from default configuration by not linking it. Fix documented conf-file naming format in README Remove list of available conf files from README. Simplify/improve 30-metric-aliases.conf

Keith Packard (25): Also check configDirs mtimes in FcConfigUptoDate Respect "binding" attribute in entries. Correct documentation for FcAtomicLock (Bug 12947). Remove fcprivate.h, move the remaining macros to fcint.h. Correct documentation for FcConfigUptoDate (bug 12948). Document skipping of fonts from FcFileScan/FcDirScan. Make file_stat argument to FcDirCacheLoadFile optional. Clean up exported names in fontconfig.h. Track line numbers in sgml edit tool input. Typo error in function name: Inverval -> interval Don't check cache file time stamps when cleaning cache dir. Use FcLangDifferentTerritory instead of FcLangDifferentCountry. Verify documentation covers exposed symbols. Document previously undocumented functions. (bug 12963) Update documentation for FcStrCopyFilename (bug 12964). Update documentation for stale FcConfigGetConfig function. Have FcConfigSetCurrent accept the current configuration and simply return Remove references to FcConfigParse and FcConfigLoad. Replace incorrect documentation uses of 'char' with 'FcChar8' (bug 13002). Fix formatting syntax in doc/fccache.fncs Generate fccache.sgml, fcdircache.sgml and fclangset.sgml. Formatting syntax mistake in doc/fclangset.fncs. Link new function documentation into the fontconfig-devel.sgml Ignore new generated documentation Export FcConfig{G,S}etRescanInverval from .so, mark as deprecated.

2.4.91 (2.5 RC1)

Behdad Esfahbod (1): Update CaseFolding.txt to Unicode 5.1.0

Dwayne Bailey (1): Add/fix *.orth files for South African languages

Hideki Yamane (1): Handle Japanese fonts better. (debian bug #435971)

Keith Packard (32): rehash increment could be zero, causing rehash infinite loop. Work around FreeType bug when glyph name buffer is too small. Free temporary string in FcDirCacheUnlink (Bug #11758) Fix ChangeLog generation to avoid circular make dependency Store font directory mtime in cache file. Comment about mmaping cache files was misleading. Make FC_FULLNAME include all fullname entries, elide nothing. [bug 12827] Remove unneeded call to access(2) in fc-cache. Improve verbose messages from fc-cache. Verbose message about cleaning directories was imprecise Don't use X_OK bit when checking for writable directories (bug 12438) Have fc-cache remove invalid cache files from cache directories. FcConfigParseAndLoad doc was missing the last param. Place language name in constant array instead of pointer. Must not insert cache into hash table before completely validating. Eliminate relocations for glyph name table. Eliminate relocations from FcCodePageRange structure (bug 10982). Leave generated headers out of distribution (bug 12734). Move elements to the end of fonts.conf. Add BRAILLE PATTERN BLANK to list of blank glyphs. Replace makealias pattern with something supported by POSIX grep (bug 11083) FcInit should return FcFalse when FcInitLoadConfigAndFonts fails. (bug 10976) There is no U+1257 (bug 10899). Spelling errors in documentation. (bug 10879). Oops. Left debugging printf in previous commit. Handle UltraBlack weight. Fix parallel build in fontconfig/docs (bug 10481). Distribute man source files for command line programs (bug 9678). Ensure weight/slant values present even when style is supplied (bug 9313). fontconfig needs configure option to use gnu iconv (bug 4083). Match 'ultra' on word boundaries to detect ultra bold fonts. (bug 2511) Build fix for Solaris 10 with GCC.

Mike FABIAN (1): Avoid crashes if config files contain junk.

Stephan Kulow (1): Make FcPatternDuplicate copy the binding instead of always using Strong.

Tilman Sauerbeck (2): Store FcNoticeFoundries in read-only memory. Store FcVendorFoundries in read-only memory.

2.4.2

Han-Wen Nienhuys: FcStrCanonFileName buggy for mingw. (bug 8311) More fixes for Win32 building (bug 8311)

Kean Johnston: Don't use varargs CPP macros in fccache.c. (bug 8733)

Keith Packard: Remove documentation for non-existant FcConfigNormalizeFontDir. Build fontconfig.def from header files when needed. Detect and use available random number generator (bug 8308) Add sparc64 architecture string. FcStrCanonAbsoluteFilename should be static. Use explicit platform/nameid order when scanning ttf files. Warn (and recover) from config file without elements. Avoid writing uninitialized structure pad bytes to cache files. Fix grep pattern in makealias to work on non-Gnu grep (bug 8368). Add FcFreeTypeQueryFace external API. Bug #7311. Segfault scanning non-font files. Disallow scan edit of user vars. (#8767) Add space between type and formal in devel man pages (bug 8935)

Mike FABIAN: Do not clean cache files for different architectures

Peter Breitenlohner: A VPATH build of fontconfig-2.4.1 fails for various reasons. Bug 8933. Use instead of when documenting fonts.conf. Bug 8935. Fix fc-cat documentation (bug 8935).

2.4.1

Keith Packard: Update installation notes for 2.4 base. Add ppc64 signature. Bug 8227 Add signatures for m68k and mipsel (thanks debian buildd) Add warning flags to fc-cache build. Clean up warnings in fc-cache. Reimplement FcConfigAppFontAddDir; function was lost in 2.4.0.

2.4.0

David Turner: Replace character discovery loop with simpler, faster version.

James Cloos: Move files from conf.d to conf.avail Standardize conf.avail number prefixing convention Support all five possibilities for sub-pixel Move user and local conf file loading into conf.avail files Number the remaining conf.avail files Update Makefile.am to match conf.avail changes Replace load of conf.d in fonts.conf.in Make room for chunks from fonts.conf in conf.avail Re-order old conf.d files Move some section from fonts.conf into conf.avail files Update Makefile.am files Make conf.avail and conf.d work

Keith Packard: Create fc_cachedir at install time. Bug 8157. Reference patterns in FcCacheCopySet. Replace gnu-specific sed command with simple grep. Attempt to fix makealias usage for build on Mac OS X. Accept locale environment variables that do not contain territory. Merge branch 'jhcloos' Insert newly created caches into reference data structure. Add XML headers to new conf files. Move link make commands to conf.avail dir Rename conf.avail to conf.d Fix conf.d directory sorting. Include cachedir in fonts.dtd. Don't display tests for DESTDIR on make install. Split much of the configuration into separate files. Renumber files

2.3.97

Carl Worth: Rename FcPatternThawAll to FcPatternFini. Add a configuration file that disables hinting for the Lohit Gujarati font

Keith Packard: Various GCC 4 cleanups for signed vs unsigned char Finish INSTALL changes. .gitignore ChangeLog Merge branch 'fc-2_4_branch' to master Remove all .cvsignore files Hide private functions in shared library. Export functionality for utilities. Hide FreeType glue code from library ABI. Can't typecheck values for objects with no known type. Leave cache files mapped permanently. Reference count cache objects. Make cache reference counting more efficient. Oops, fc-lang broke when I added cache referencing. Correct reference count when sharing cache file objects. Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven) Update architecture signatures for x86-64 and ppc. Parallel build fix for fcalias.h and fcaliastail.h Charset hashing depended on uniqueness of leaves.

Patrick Lam: file Makefile.am was initially added on branch fc-2_4_branch. Modify config file to use Greek fonts before Asian fonts with Greek glyphs. Use libtool -no-undefined flag on all platforms. file ftglue.c was initially added on branch fc-2_4_branch. 2005-11-23 Frederic Crozat fcrozat@mandriva.com: reviewed by: plam file 10-fonts-persian.conf was initially added on branch fc-2_4_branch. Sort directory entries while scanning them from disk; prevents Heisenbugs file ln.orth was initially added on branch fc-2_4_branch. Fix typos in orth files. Reported by Denis Jacquerye. On Windows, unlink before rename. Reported by Tim Evans. file fc-match.sgml was initially added on branch fc-2_4_branch.

2.3.96

Keith Packard: Make path names in cache files absolute (NB, cache format change) Stop Eliminate pattern freezing Add .gitignore Construct short architecture name from architecture signature. Write caches to first directory with permission. Valid cache in FcDirCacheOpen. Eliminate NormalizeDir. Eliminate gratuitous stat/access calls per dir. Add architecture to cache filename. Eliminate global cache. Eliminate multi-arch cache code. Fix up fc-cache and fc-cat for no global cache changes. Eliminate ./ and ../ elements from font directory names when scanning. Regenerate x86 line in fcarch.tmpl.h to match change in cache data. Add x86-64 architecture and signature. During test run, remove cache directory to avoid stale cache usage. Add ppc architecture Revert to original FcFontSetMatch algorithm to avoid losing fonts. Rework cache files to use offsets for all data structures. Fix build problems caused by cache rework. FcCharSetSerialize was using wrong offset for leaves. Make fc-cat work. Rework Object name database to unify typechecking and object lookup. Skip broken caches. Cache files are auto-written, don't rewrite in fc-cache. Fix fc-cat again. Sigh. Use intptr_t instead of off_t inside FcCache structure. Serialized value lists were only including one value. Automatically remove invalid cache files. With no args, fc-cat now dumps all directories. Revert ABI changes from version 2.3 Change $(pkgcachedir) to $(fc_cachedir) in fc-cat and fc-cache Makefile.am Allow FcTypeLangSet to match either FcTypeLangSet or FcTypeString. Remove stale architecture signatures. Pass directory information around in FcCache structure. Freeze charsets. Fix fc-lang to use new charset freezer API. Fontset pattern references are relative to fontset, not array. Add some ignores Only rebuild caches for system fonts at make install time. Fix memory leaks in fc-cache directory cleaning code. Add @EXPAT_LIBS@ to Libs.private in fontconfig.pc (bug 7683) Avoid #warning directives on non-GCC compilers. (bug 7683) Chinese/Macau needs the Hong Kong orthography instead of Taiwan (bug 7884) Add Assamese orthography (as.orth). Bug #8050 Really only rebuild caches for system fonts at make install time. Fonts matching lang not territory should satisfy sort pattern lang. Prefer Bitstream Vera to DejaVu families. Guess that mac roman names with lots of high bits are actually SJIS. Document FC_DEBUG values (bug 6393). Document name \ escape syntax. Move Free family names to bottom of respective aliases. (bug 7429) Unify directory canonicalization into FcStrAddFilename. Allow font caches to contain newer version numbers Add FcMatchScan to resolve Delicious font matching issues (bug #6769) Fix missing initialization/destruction of new 'scan' target subst list. Don't segfault when string values can't be parsed as charsets or langsets. Using uninitialized (and wrong) variable in FcStrCopyFilename. Oops; missed the 60-delicious.conf file.

Patrick Lam: Keith Packard keithp@keithp.com 2006-04-27 Paolo Borelli (pborelli@katamail.com) reviewed by: plam 2006-05-31 Yong Li (rigel863@gmail.com) reviewed by: plam, Bedhad Esfahbod 2006-07-19 Jon Burgess (jburgess@uklinux.net) reviewed by: plam 2006-08-04 Keith Packard (keithp@keithp.com) reviewed by: plam

2.3.95

Match 'Standard Symbols L' for 'Symbol'. Add URW fonts as aliases for all of the PostScript fonts. (reported by Miguel Rodriguez). Fix a number of Coverity defects (Frederic Crozat). Speed up FcFontSort (fix suggested by Kenichi Handa). Fix error with charsets. Survive missing docbook2pdf. Compile on HP-UX, AIX, SGI and Windows (Cygwin, MinGW). Fix intel compiler warnings. Fix multiarch support (don't destroy multiarch files!) Require pkg-config. (Thanks Behdad; better solution wanted for libxml2 detection!) Fix typos in orth files and add orth for Lingala (reported by Denis Jacquerye). Remove debian/ directory. Add a configuration file that disables hinting for the Lohit Gujarati font (since the hinting distorts some glyphs quite badly). Sort directory entries while scanning them from disk; prevents Heisenbugs due to file ordering in a directory (due to Egmont Koblinger). Fix Wine's problem with finding fonts. (Reported by Bernhard Rosenkraenzer.) Fix the issues with GNU libiconv vs. libc iconv (which especially appear on Solarii); patch by Behdad Esfahbod, approach suggested by Tim Mooney.

2.3.94

fc-cat can take directories as input and creates old-style fonts.cache listings. fc-cache takes -r --really-force which blows away all old caches and regenerates. Robustness fixes, integer overflow fixes (notably to cache handling code), toast broken global cache files. Change binary format to make it compatible with static langset information (thanks to Takashi Iwai). Open hashed caches before fonts.cache-2 (Takashi Iwai). Fix FcFontSetMatch's algorithm, which used to unjustly kill fonts for not declaring certain elements (Takashi Iwai). Fix matching bug when multiple elements match; don't use the sum of all scores, but the best score (James Su). Make fc-lang more friendly to Windows systems. Remove archaic chars from Georgian charset; add Euro character to charsets for European languages. Fix treatment of broken PCF fonts that don't declare family names. Pass O_BINARY to open if appropriate (reported by Doodle). Normalize font directories to the form in which they appear in config files.
Add a record of the cached directory to the cache file. Perf optimizations (Dirk Mueller; some reported by Michael Meeks.) Don't loop infinitely on recursive symlinks. Make 'make distcheck' work with automake 1.6.3. Replace 'stamp' target with mkinstalldirs. Don't stop scanning if a directory in fonts.conf doesn't exist, because subsequent directories might exist. Put directory names into global cache (reported by Ronny V. Vindenes). Treat zh-hk fonts differently from zh-tw fonts. This patch may cause fontconfig to treat A-X fonts differently from A-Y fonts; please mail the fontconfig list if this causes any problems. Fix for unaligned memory accesses (Andreas Schwab). Fix treatment of cache directory as read from cache file; don't use string equality to determine if we have the right file, use inode equality. Properly skip past dir caches that contain zero fonts, as occurs in global caches (reported by Mike Fabian). Print out full pathname in fc-match -v (reported by Frederic Crozat). Fix bug where fc-match crashes when given DUMMY property to match on.

2.3.93

Create cache files in /var/cache/fontconfig with hashed filenames, if possible, for added FHS compliance.
Make fc-cat read both per-directory and global cache files.
Add config file for Persian fonts from Sharif FarsiWeb, Inc.
Major performance improvements by Dirk Mueller, Stephen Kulow, and Michael Matz at SuSE: in particular, speed up FcFontSetMatch, and inline many functions. Fix treatment of globs in config files, broken since 2.3.2 and discovered by Mathias Clasen. Don't use freetype internal headers (patch by Matthias Clasen).
Further space improvements: create langsets statically, so that they can live in .rodata. Properly align mmapped data structures to make e.g. ia64 happy.
Bug fixes.

2.3.92

Fix corrupted caches bugs from 2.3.91 (reported by Mike Fabian). Store only basename in the cache, reconstitute on demand (reported by James Cloos). Change the rule for artificial emboldening in fonts.conf.in. This enables the support for artificial emboldening included in cairo (patch by Zhe Su). Add FC_EMBEDDED_BITMAP object type to tell Xft/Cairo whether to load embedded bitmaps or not (patch by Jinghua Luo). Fix GCC4 warnings (some by Behdad Esfahbod). Support localized font family and style names; this has been reported to break old apps like xfd, but modern (gtk+/qt/mozilla) apps work fine (patch by Zhe Su). Prevent fc-list from escaping strings when printing them (reported by Matthias Clasen). Add valist sentinel markup for FcObjectSetBuild and FcPatternBuild (patch by Marcus Meissner). Add consts to variables so as to move arrays into .rodata (patch by Ross Burton). Modify config file to use Greek fonts before Asian fonts with Greek glyphs. (patch by Simos Xenitellis). Use libtool -no-undefined flag on all platforms (patch by Christian Biesinger).

2.3.91

Use libxml2 if requested or if expat not available. (Mathias Hasselmann) Fix multi-arch cache files: compute the position for the block to be added using info from OrigFile, not NewFile. (plam) Cast results of sizeof() to unsigned int to get rid of warnings on x86_64 (reported by Matthias Clasen). Use FcAtomic to rewrite cache files; don't unlink the fonts.cache-2 file even if there's no data to write; just write an empty cache file. (Reported by Lubos Lunak) Allocate room for the subdirectory names in each directory cache. (Reported by James Cloos)

2.3.90

Development release of mmap patch: load pattern information directly from cache files. (Patrick Lam)

2.3.2

Patch memory leaks in using iconv. (Reported by Chris Capoccia) Patch memory leaks in fc-cache. (Reported by Chris Capoccia) Fetch bitmap glyphs to get widths during font evaluation. (keithp) Share strings through FcObjectStaticName (Ross Burton) Windows build updates (Tor Lillqvist)

2.3.1

Be more careful about broken GSUB/GPOS tables (Manish Singh) Include debian packaging stuff in CVS (Josselin Mouette) Add more conf.d examples (Keith Packard) Make manuals build again (Keith Packard) Johap -> Johab (Funda Wang)

2.3.0

Fix memory leak of patterns rejected by configuration (#2518)

Create prototype /etc/fonts/conf.d directory and populate it with a few sample files. These samples are unused as the file names don't start with numbers.

Update documentation.

2.2.99

Verify cache for FC_FILE and FC_FAMILY in every entry (#2219)

Update blanks list from recent Unicode docs (#86)

Various small build fixes (#280, #2278,

Documentation fixes (#2085, #2284, #2285)

Add polite typechecking to config file loader (#229)

2.2.98

Share object name strings (Michael Meeks)

Eliminate a couple of codepoints from Russian orthography (John Thacker)

Add synthetic emboldening configuration changes (Jakub Pavelek)

Change FcFontSetSort to ignore language after fonts with the requested languages have been found. (Owen Taylor)

Add some RedHat font configuration changes (Owen Tayler).

Add full Unicode case folding support to case-ignoring string functions (Keith Packard)

Remove Han characters from Korean orthography (Tor Andersson)

2.2.97

Fc-cache sleeps before exiting to ensure filesystem timestamps are well ordered.

Added Punjai orthography.

The timestamp in fonts.conf is gone now. Too many problems.

The default font path includes all of the X fonts; use selectfont/rejectfont to eliminate bitmaps, as shown in the sample local.conf file.

configuration elements may now reference a directory. Files in that directory matching [0-9]* are loaded in UTF-8 collating sequence order.

configuration added to control which fonts are used.

fontformat font pattern elements built from the FT_Get_X11_Font_Format function in newer versions of FreeType.

'capability' list constructed from gsub/gpos and silf values in TrueType files.

Multi-lingual names (style, family, fullname) extracted and stored with parallel lang properties marking language.

2.2.96

Fix FcConfigUpToDate to actually check all font directories and eliminate a typo which completely prevented it from working (Lubos Lunak l.lunak@suse.cz)

Remove comma at end of FcResult enum definition for picky compilers.

2.2.95

Add FcResultOutOfMemory so FcFontSetMatch can return accurate error.

Replace MIN/MAX/ABS macros which happened to be in old FreeType releases with FC_MIN/FC_MAX/FC_ABS macros owned by fontconfig.

2.2.94

The 2.2.93 release was prepared with a broken libtool which created the shared library without the '.so' in the file names.

2.2.93

This is the third prerelease of fontconfig 2.3. Significant changes from 2.2.92 are:

o Use new FreeType #include syntax o use y_ppem field instead of 'height' in bitmap sizes rec - FreeType changed the semantics. Still uses height for older versions of FreeType o Don't construct program manuals unless docbook is available

2.2.92

o make distcheck work

2.2.91

o Switch to SGML manuals o Add FC_DUAL width spacing value o Add FcFini to close out fontconfig and release all memory

2.2

This is the third public release of fontconfig, a font configuration and customization library. Fontconfig is designed to locate fonts within the system and select them according to requirements specified by applications.

Fontconfig is not a rasterization library, nor does it impose a particular rasterization library on the application. The X-specific library 'Xft' uses fontconfig along with freetype to specify and rasterize fonts.

Keith Packard keithp@keithp.com

Dependencies

~8.5MB
~176K SLoC