Commit Graph

899 Commits

Author SHA1 Message Date
Behdad Esfahbod aeba5bf4b6 Decode MacRoman encoding in name table without iconv
iconv support was turned off by default in f30a5d76.
Some fonts, like Apple Color Emoji, only have their English
name in a MacRoman entry.  As such, decode MacRoman ourselves.
2014-07-24 15:28:09 -04:00
Behdad Esfahbod 07a0f511b1 Call FcInitDebug from FcFreeTypeQueryFace 2014-07-24 15:01:57 -04:00
Akira TAGOH 107b44f50b Don't add duplicate lang
Don't add duplicate lang from FC_LANG if the pattern already has.

https://bugs.freedesktop.org/show_bug.cgi?id=81186
2014-07-23 19:17:26 +09:00
Behdad Esfahbod 342b908b96 More mingw32 MemoryBarrier() fixup 2014-07-19 16:33:49 -04:00
Behdad Esfahbod 6781c6baef Update mingw32 MemoryBarrier from HarfBuzz
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=81228
2014-07-11 12:20:24 -04:00
Behdad Esfahbod da8233b0f2 Fixup previous commit 2014-07-06 18:26:03 -04:00
Behdad Esfahbod bb27d6969c Remove HASH from matching priorities
We deprecated FC_HASH, so doesn't make sense to sort on it.
2014-07-06 18:10:49 -04:00
Behdad Esfahbod 5674b8a663 Comments 2014-07-06 17:42:33 -04:00
Akira TAGOH 5b22776999 Fix a crash when no sysroot is given and failed to load the default fonts.conf 2014-07-04 18:04:52 +09:00
Behdad Esfahbod f5b4b2c1ed Fix charset unparse after recent changes 2014-07-04 01:43:47 -04:00
Behdad Esfahbod 940d27a197 Minor 2014-07-03 21:15:25 -04:00
Behdad Esfahbod e708e97c35 Change charset parse/unparse format to be human readable
Previous format was unusable.  New format is ranges of hex values.
To choose space character and Latin capital letters for example:

$ fc-pattern ':charset=20 41-5a'
Pattern has 1 elts (size 16)
	charset:
	0000: 00000000 00000001 07fffffe 00000000 00000000 00000000 00000000 00000000
(s)
2014-07-03 17:54:11 -04:00
Akira TAGOH dab60e4476 Rework for 5004e8e01f
Don't read/write from/to the XDG dirs even if XDG_*_HOME is set
and the home directory is disabled.
2014-06-30 15:12:32 +09:00
Akira TAGOH 5004e8e01f Don't read/write from/to the XDG dirs if the home directory is disabled 2014-06-30 12:39:31 +09:00
Akira TAGOH 6c3c2603b9 Fix a segfault
introduced by the previous commit d17f556153
2014-06-18 19:13:06 +09:00
Akira TAGOH d17f556153 Read the config files and fonts on the sysroot when --sysroot is given to fc-cache
Fix for e96d776088

https://bugs.freedesktop.org/show_bug.cgi?id=59456
2014-06-17 20:11:02 +09:00
Behdad Esfahbod 8f62ccaa96 Remove unused FcHash code now that FC_HASH is deprecated 2014-06-12 17:02:10 -04:00
Behdad Esfahbod 75abdaf5c8 Deprecate FC_HASH and don't compute it
It was added without proper measurement and a fuzzy possible
use-case (font servers) in mind, but reality check shows that
this significantly slows down caching.  As such, deprecate it
and do NOT compute hash during caching.

Makes caching two to three times faster (ignoring the 2 second
delay in fc-cache).
2014-06-12 17:02:10 -04:00
Akira TAGOH f44bfad235 Workaround another race condition issue
See https://bugzilla.redhat.com/show_bug.cgi?id=921706
2014-06-05 19:06:02 +09:00
Behdad Esfahbod 58acd993cb Allow passing NULL for file to FcFreeTypeQueryFace() 2014-05-16 15:08:52 -06:00
Behdad Esfahbod 3f992254f2 Rewrite hashing to use FT_Stream directly
This is more robust but introduces a small change in behavior:
For .pcf.gz fonts, the new code calculates the hash of the uncompressed
font data whereas the original code was calculating the hash of the
compressed data.

No big deal IMO.
2014-05-16 15:02:58 -06:00
Behdad Esfahbod 8284df49ef Further simplify hash code 2014-05-16 14:23:56 -06:00
Behdad Esfahbod 748e77e89f Simplify hash code 2014-05-16 14:10:06 -06:00
Behdad Esfahbod e4d8847eee Remove unused code 2014-05-16 13:45:44 -06:00
Akira TAGOH 48c8b7938a Allow the modification on FcTypeVoid with FcTypeLangSet and FcTypeCharSet
FcTypeVoid is likely to happen when 'lang' and 'charset'
is deleted by 'delete' or 'delete_all' mode in edit.
Without this change, any modification on them are simply
ignored.

This is useful to make a lot of changes, particularly
when one wants to add a few and delete a lot say.
2014-05-13 21:22:17 +09:00
Akira TAGOH fff91eee7d Fix a build issue with freetype <2.5.1 2014-03-26 12:22:02 +09:00
Akira TAGOH 3cd573fc1f Bug 71287 - size specific design selection support in OS/2 table version 5
This feature requires the FreeType 2.5.1 or later at the build time.

Besides <range> element allows <double> elements with this changes.

This may breaks the cache but not bumping in this change sets at this moment.
please be aware if you want to try it and run fc-cache before/after to
avoid the weird thing against it.
2014-03-26 12:19:04 +09:00
Akira TAGOH 39a2f1e8f9 Fallback to lstat() in case the filesystem doesn't support d_type in struct dirent 2014-03-05 18:29:29 +09:00
Akira TAGOH e310d2fac2 Fix incompatible API on AIX with random_r and initstate_r
https://bugs.freedesktop.org/show_bug.cgi?id=74603
2014-02-06 19:40:01 +09:00
Akira TAGOH 7d75653285 Add missing #include <sys/statvfs.h> in fcstat.c
https://bugs.freedesktop.org/show_bug.cgi?id=74602
2014-02-06 17:29:19 +09:00
Akira TAGOH 80081555fd Fix a crash issue when empty strings are set to the BDF properties 2014-01-31 11:10:02 +09:00
Akira TAGOH 5918d5bea5 Add missing license headers
https://bugs.freedesktop.org/show_bug.cgi?id=73401
2014-01-17 13:05:25 +09:00
Akira TAGOH 7a6622f25c Improve the performance issue on rescanning directories 2013-12-20 11:57:16 +09:00
Akira TAGOH 5c725f2f58 Fix a build issue on platforms where doesn't support readlink() 2013-12-16 17:44:37 +09:00
Behdad Esfahbod fee834a9c9 Bug 72380 - Never drop first font when trimming
Let me show it with an example.

Currently:

$ fc-match symbol
symbol.ttf: "Symbol" "Regular"

$ fc-match symbol --sort | head -n 1
Symbol.pfb: "Symbol" "Regular"

$ fc-match symbol --sort --all | head -n 1
symbol.ttf: "Symbol" "Regular"

I want to make sure the above three commands all return the same font.
Ie.  I want to make sure FcFontMatch() always returns the first font
from FcFontSort().  As such, never trim first font.
2013-12-09 21:22:49 -05:00
Akira TAGOH 5152115349 Simplify to validate the availability of posix_fadvise 2013-12-02 18:43:10 +09:00
Akira TAGOH 38acb08d97 Fix typo
Use FcTypeUnknown instead of -1 with type casting.
This seems missed when it was changed.

Patch from brian porter
2013-11-11 11:53:09 +09:00
Alan Coopersmith 0b7f42f777 Avoid null pointer dereference in FcNameParse if malloc fails
Reported by parfait 1.3:
Error: Null pointer dereference (CWE 476)
   Read from null pointer t
        at line 423 of src/fcname.c in function 'FcNameParse'.
          Function _FcObjectLookupOtherTypeByName may return constant 'NULL'
           at line 63, called at line 122 of src/fcobjs.c in function
           'FcObjectLookupOtherTypeByName'.
          Function FcObjectLookupOtherTypeByName may return constant 'NULL'
           at line 122, called at line 67 of src/fcname.c in function
           'FcNameGetObjectType'.
          Function FcNameGetObjectType may return constant 'NULL' at line 67,
           called at line 422 in function 'FcNameParse'.
          Null pointer introduced at line 63 of src/fcobjs.c in function
           '_FcObjectLookupOtherTypeByName'.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-11-05 11:44:23 +09:00
Alan Coopersmith 5b8380d52e Avoid memory leak when NULL path passed to FcStrBuildFilename
Reported by parfait 1.3:
   Memory leak of pointer sset allocated with FcStrSetCreate()
        at line 933 of src/fcstr.c in function 'FcStrBuildFilename'.
          sset allocated at line 927 with FcStrSetCreate().
          sset leaks when sset != NULL at line 932.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-11-05 11:43:41 +09:00
Akira TAGOH aa22e6e639 Warn if no <test> nor <edit> elements in <match>
This corrects an error message being reported at
  https://bugs.freedesktop.org/show_bug.cgi?id=71085
  Bug 71085 - "out of memory" errors on empty match element in fonts.conf

and somewhat works as a workaround for
  https://bugs.freedesktop.org/show_bug.cgi?id=59438
  Bug 59438 - Fix <alias> inside <match>
2013-10-31 21:48:27 +09:00
Akira TAGOH 525a135ccf Change the default weight on match to FC_WEIGHT_NORMAL 2013-10-28 11:54:04 +09:00
Akira TAGOH 06b388523d Fix build issue on Debian/kFreeBSD 7.0
There are posix_fadvise(2) but not POSIX_FADV_WILLNEED.
Patch from Ryo ONODERA.
2013-10-21 11:50:55 +09:00
Akira TAGOH 0203055520 Workaround the race condition issue on updating cache 2013-10-02 16:34:34 +09:00
Akira TAGOH 43f768b53f avoid reading config.h twice
config.h is read from fcint.h now so having a line of the sort of #include "config.h"
is duplicate.

Bug 69833 - Incorrect SIZEOF_VOID_P and ALIGNOF_DOUBLE definitions causes nasty warnings on MacOSX when building fat libraries
2013-09-26 17:51:15 +09:00
Akira TAGOH 8a174b6c51 Fix a crash when FcPattern is set to null on FcFontSetList() and FcFontList() 2013-09-24 11:14:57 +09:00
Akira TAGOH 5e6b8894ea Copy all values from the font to the pattern if the pattern doesn't have the element 2013-09-18 17:33:45 +09:00
Akira TAGOH a61e145304 Fix memory leaks in FcFreeTypeQueryFace 2013-09-09 19:59:31 +09:00
Akira TAGOH 3e5f70a16a Do not create a config dir for migration when no config files nor dirs 2013-09-02 20:51:46 +09:00
Akira TAGOH 272a99217b Fix a crash 2013-08-31 10:43:13 +09:00
Akira TAGOH fba9efecd2 Fix a wrong edit position when 'kind' is different 2013-08-26 12:47:07 +09:00