Commit Graph

509 Commits

Author SHA1 Message Date
Keith Packard 0f963b0d3e Segfault scanning non-font files. Disallow scan edit of user vars. (#8767)
Missing NULL font check before attempting to edit scanned pattern.
Also, <match target="scan"> rules are now checked to ensure all
edited variables are in the predefined set; otherwise, the resulting
cache files will not be stable.
2006-12-02 13:57:45 -08:00
Kean Johnston c9c6875014 Don't use varargs CPP macros in fccache.c. (bug 8733)
src/fccache.c uses a trick to try and use a function name that is also a
macro name. It does this using the varargs args() macro. Replace that
with separate macros for each number of formals.
2006-12-02 13:36:56 -08:00
Keith Packard 72ffe6536a Add FcFreeTypeQueryFace external API. Bug #7311.
Expose ability to build an FcPattern directly from an FT_Face
object.
2006-12-02 13:22:27 -08:00
Keith Packard 5e234d9e76 Fix grep pattern in makealias to work on non-Gnu grep (bug 8368).
grep -l -w '^foo' doesn't work on Solaris. Replace with
grep -l '^foo\>' instead which does. Also, grep -l will
report the filename more than once (!), so add | head -1
to pick just the first one.
2006-12-02 13:14:23 -08:00
Keith Packard 2b77216ee2 Avoid writing uninitialized structure pad bytes to cache files.
The union inside the FcValue structure contains pad bytes. Instead of
copying the whole structure to the cache block, copy only the initialized
fields to avoid writing whichever bytes serve as padding within the
structure.
2006-12-02 13:04:05 -08:00
Keith Packard 64d7e303df Warn (and recover) from config file without <cachedir> elements.
When updating from older fontconfig versions, if the config file
is not replaced, it will not contain <cachedir> elements. Lacking these,
fontconfig has no place to store cached font information and cannot operate
reasonably.

Add code to check and see if the loaded configuration has no cache
directories, and if so, warn the user and add both the default system cache
directory and the normal per-user cache directory.
2006-12-02 12:14:49 -08:00
Keith Packard 253ec7609c Use explicit platform/nameid order when scanning ttf files.
Instead of accepting whatever order names appear in the font file,
use an explicit ordering for both platform and nameid.

Platforms are high precedence than nameids.

The platform order is:

	microsoft, apple unicode, macintosh, (other)

The family nameid order is:

	preferred family, font family

The fullname nameid order is:

	mac full name, full name

The style nameid order is

	preferred subfamily, font subfamily

This will change the names visible to users in various application UIs, but
should not change how existing font names are matched as all names remain
present in the resulting database. The hope is that family names will, in
general, be less ambiguous. Testing here shows that commercial fonts
have longer names now while DejaVu has a shorter family name, and moves more
of the font description to the style name.
2006-12-02 11:47:07 -08:00
Keith Packard b5803016d7 FcStrCanonAbsoluteFilename should be static. 2006-11-12 17:15:55 -08:00
Han-Wen Nienhuys 0596d7296c More fixes for Win32 building (bug 8311)
Our build system barfs on autogen.sh, which ignores --noconfigure. Configure
needs a host of options to make the cross compile work in our case.

Fix typo in fccache.c
2006-09-17 17:03:33 -07:00
Han-Wen Nienhuys 1de7a4cc09 FcStrCanonFileName buggy for mingw. (bug 8311)
FcStrCanonFileName checks whether s[0] == '/', and recurses if not.

This only works on POSIX. On dos, this crashes with a stack overflow.

The patch attached splits this functionality in two functions
(FcStrCanonAbsoluteFilename) and uses GetFullPathName on windows to get an
absolute path.  It also fixes a number of other issues. With this patch,
LilyPond actually produces output on Windows.
2006-09-17 14:34:46 -07:00
Keith Packard cc104e6a91 Detect and use available random number generator (bug 8308)
Prefer random over lrand48 over rand
2006-09-17 14:20:18 -07:00
Keith Packard 706a1b367a Build fontconfig.def from header files when needed.
Instead of attempting to track exported symbols manually in
fontconfig.def.in, build it directly from the public fontconfig header files
to ensure it exports the public API.
2006-09-17 14:09:12 -07:00
Keith Packard 97c3d5b692 Reimplement FcConfigAppFontAddDir; function was lost in 2.4.0.
With the cache restructuring of 2.4.0, the ability to add
application-specific font files and directories was accidentally lost.
Reimplement this using by sharing the logic used to load configured font
directories.
2006-09-15 00:23:40 -07:00
Keith Packard 9419bb34f6 Fix conf.d directory sorting.
Sort was using broken comparison function.
2006-09-09 21:21:01 -07:00
Keith Packard 49b44b277f Insert newly created caches into reference data structure.
All caches used in the application must be in the cache reference list so
internal references can be tracked correctly. Failing to have newly created
caches in the list would cause the cache to be deallocated while references
were still present.
2006-09-09 16:41:58 -07:00
Keith Packard 5d2f7a9d92 Accept locale environment variables that do not contain territory.
Locale environment variables (LC_ALL, LC_CTYPE, LANG) must contain language,
and may contain territory and encoding. Don't accidentally require territory
as that will cause fontconfig to fall back to 'en'.
2006-09-09 10:04:42 -07:00
Keith Packard f6cfbe16bf Attempt to fix makealias usage for build on Mac OS X.
Avoid using fcalias.h or fcaliastail.h on systems which don't support it.
Provided solution still generates these files, but does not use them.
2006-09-07 15:17:10 -07:00
Keith Packard 6cff1dca81 Replace gnu-specific sed command with simple grep.
makealias was using a gnu-extension to sed addressing, replace that with a
simple (and more robuse) grep command. Also, found a bug in the public
header file that was leaving one symbol out of the process.
2006-09-07 14:37:52 -07:00
David Turner 31e0f03210 Replace character discovery loop with simpler, faster version.
The existing loop for discovering which characters map to glyphs is ugly and
inefficient. The replacement is functionally identical, but far cleaner and
faster.
2006-09-07 14:29:35 -07:00
Keith Packard 8d779ce4b3 Reference patterns in FcCacheCopySet.
As patterns are put into the font set copy, mark them as referenced so the
cache stays around while the font set is in use.
2006-09-07 14:22:16 -07:00
Keith Packard c3796ac606 Charset hashing depended on uniqueness of leaves.
Charset hashing actually use the value of the leaf pointers, which is
clearly wrong, especially now that charsets are not shared across multiple
font directories.
2006-09-06 17:45:40 -07:00
Keith Packard 08bef68701 Parallel build fix for fcalias.h and fcaliastail.h
These are built from the same script, but creating a single dependency rule
caused parallel make to run the script twice.
2006-09-06 17:43:08 -07:00
Keith Packard 23816bf9ac Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven)
Using a simple shell script that processes the public headers, two header
files are constructed that map public symbols to hidden internal aliases
avoiding the assocated PLT entry for referring to a public symbol.

A few mistakes in the FcPrivate/FcPublic annotations were also discovered
through this process
2006-09-05 02:24:01 -07:00
Keith Packard 323ecd0cd3 Correct reference count when sharing cache file objects.
Multiple maps of the same cache file share the same mapped object; bump the
cache object reference count in this case
2006-09-04 23:19:59 -07:00
Keith Packard 17389539a0 Make cache reference counting more efficient.
Eliminate need to reference cache object once per cached font, instead
just count the number of fonts used from the cache and bump the reference
count once by that amount. I think this makes this refernece technique
efficient enough for use.
2006-09-04 22:26:24 -07:00
Keith Packard 9e612141df Reference count cache objects.
Caches contain patterns and character sets which are reference counted and
visible to applications. Reference count the underlying cache object so that
it stays around until all reference objects are no longer in use.

This is less efficient than just leaving all caches around forever, but does
avoid eternal size increases in case applications ever bother to actually
look for changes in the font configuration.
2006-09-04 22:20:25 -07:00
Keith Packard 8fe2104a1e Leave cache files mapped permanently.
Without reference counting on cache objects, there's no way to know when
an application is finished using objects pulled from the cache. Until some
kinf of cache reference counting can be done, leave all cache objects mapped
for the life of the library (until FcFini is called). To mitigate the cost
of this, ensure that each instance of a cache file is mapped only once.
2006-09-04 13:59:58 -07:00
Keith Packard 9a9fd975a1 Can't typecheck values for objects with no known type.
Objects that aren't part of the built-in object list don't have predefined
types, so we can't typecheck them.
2006-09-04 12:46:01 -07:00
Keith Packard a04ac99f0f Hide FreeType glue code from library ABI.
FreeType glue code was escaping the shared library.
2006-09-04 02:13:13 -07:00
Keith Packard 4984242e36 Hide private functions in shared library. Export functionality for utilities.
Borrowing header stuff written for cairo, fontconfig now exposes in the
shared library only the symbols which are included in the public header
files. All private symbols are hidden using suitable compiler directives.

A few new public functions were required for the fontconfig utility programs
(fc-cat and fc-cache) so those were added, bumping the .so minor version number
in the process.
2006-09-04 00:47:07 -07:00
Keith Packard 34227592c2 Remove all .cvsignore files 2006-09-03 16:27:09 -07:00
Keith Packard e3b771a63e Using uninitialized (and wrong) variable in FcStrCopyFilename.
A typo from the change in where filename canonicalization occurs.
2006-09-02 23:09:44 -07:00
Keith Packard 04cedae0d5 Don't segfault when string values can't be parsed as charsets or langsets.
If parsing charsets or langsets fails, return a FcTypeVoid value instead of
a charset/langset value with a NULL pointer in it (which is invalid).
2006-09-02 20:23:31 -07:00
Keith Packard fb6e30ab3e Fix missing initialization/destruction of new 'scan' target subst list.
Forgot to initialize and destroy the new substitution list for the 'scan'
match target.
2006-09-02 20:07:29 -07:00
Keith Packard c2c6976d1a Add FcMatchScan to resolve Delicious font matching issues (bug #6769)
The Delicious family includes one named Delicious Heavy, a bold variant
which is unfortunately marked as having normal weight. Because the family
name is 'Delicious', fontconfig accidentally selects this font instead of
the normal weight variant. The fix here rewrites the scanned data by running
the scanned pattern through a new substitution sequence tagged with
<match target=scan>; a sample for the Delicious family is included to
demonstrate how it works (and fix Delicious at the same time).

Also added was a new match predicate -- the 'decorative' predicate which is
automatically detected in fonts by searching style names for key decorative
phrases like SmallCaps, Shadow, Embosed and Antiqua. Suggestions for
additional decorative key words are welcome. This should have little effect
on font matching except when two fonts share the same characteristics except
for this value.
2006-09-02 17:52:12 -07:00
Keith Packard 3b8a03c09d Allow font caches to contain newer version numbers
Use the version number inside the cache file to mark backward compatible
changes while continuing to reserve the filename number for incompatible
changes.
2006-09-02 14:54:14 -07:00
Keith Packard 9b511b2905 Unify directory canonicalization into FcStrAddFilename.
Instead of making filename canonicalization occur in multiple places, it
occurs only in FcStrAddFilename now, as all filenames pass through that
function at one point.
2006-09-02 14:52:37 -07:00
Keith Packard 7295c6f5fa Guess that mac roman names with lots of high bits are actually SJIS.
Many Japanese fonts incorrectly include names tagged as Roman encoding and
English language which are actually Japanese names in the SJIS encoding.
Guess that names with a large number of high bits set are SJIS encoded
Japanese names rather than English names.
2006-09-01 21:30:54 -07:00
Keith Packard 3bb1812f0d Fonts matching lang not territory should satisfy sort pattern lang.
A pattern specifying 'Chinese' (:lang=zh) without a territory should be
satisfied by any font supporting any Chinese lang. The code was requiring
that the lang tags match exactly, causing this sort to fail.
2006-09-01 15:33:27 -07:00
Keith Packard 5b8e43a48e Avoid #warning directives on non-GCC compilers. (bug 7683)
Detect GCC and use #warning only on GCC systems.
2006-09-01 12:36:31 -07:00
Keith Packard 09bd9ae2be Fontset pattern references are relative to fontset, not array.
Within a fontset, the patterns are stored as pointers in an array.
When stored as offsets, the offsets are relative to the fontset object
itself, not the base of the array of pointers.
2006-09-01 02:22:59 -07:00
Keith Packard 18b6857c64 Fix fc-lang to use new charset freezer API.
Charset freezer api now uses allocated object. Also required minor fixes to
charset freezer code to remove assumption that all input charsets are
persistant.
2006-09-01 01:49:47 -07:00
Keith Packard bc5e487f2a Pass directory information around in FcCache structure. Freeze charsets.
Instead of passing directory information around in separate variables,
collect it all in an FcCache structure. Numerous internal and tool
interfaces changed as a result of this.

Charsets are now pre-frozen before being serialized. This causes them to
share across multiple fonts in the same cache.
2006-09-01 01:15:14 -07:00
Keith Packard 551b6b2cd7 Allow FcTypeLangSet to match either FcTypeLangSet or FcTypeString.
Applications explicitly setting FC_LANG with string would fail due
to typechecking disallowing this case.
2006-08-31 18:16:00 -07:00
Keith Packard f57783d2e9 Revert ABI changes from version 2.3
Accidental ABI changes and additions were discovered by looking at the
differences in fontconfig.h. All of those have been reverted.
2006-08-31 14:38:18 -07:00
Keith Packard 0a87ce715e With no args, fc-cat now dumps all directories.
Automatically list all font directories when no arguments are given to
fc-cat. Also add -r option to recurse from specified cache directories.
fc-cat also now prints the cache filename in verbose mode, along with the
related directory name.
2006-08-31 11:56:43 -07:00
Keith Packard d8ab9e6c42 Automatically remove invalid cache files.
Cache files for missing or more recently modified directories are
automatically removed at the end of every fc-cache run.
2006-08-31 09:42:49 -07:00
Keith Packard e9a564e2cd Serialized value lists were only including one value.
The next pointer in the serialized value list wasn't getting set, so they
were truncated at a single value.
2006-08-31 09:07:32 -07:00
Keith Packard c50ea916b0 Use intptr_t instead of off_t inside FcCache structure.
This avoids OS-dependencies in the cache file structure.
2006-08-30 23:09:39 -07:00
Keith Packard 76abb77f26 Fix fc-cat again. Sigh.
Internal interfaces in cache management changed again...
2006-08-30 22:23:25 -07:00
Keith Packard 2d3387fd72 Skip broken caches. Cache files are auto-written, don't rewrite in fc-cache.
Validate cache contents and skip broken caches, looking down cache path for
valid ones.

Every time a directory is scanned, it will be written to a cache file if
possible, so fc-cache doesn't need to re-write the cache file. This makes
detecting when the cache was generated a bit tricky, so we guess that if the
cache wasn't valid before running and is valid afterwards, the cache file
was written.

Also, allow empty charsets to be serialized with null leaves/numbers.

Eliminate a leak in FcEdit by switching to FcObject sooner.

Call FcFini from fc-match to make valgrind happy.
2006-08-30 21:59:53 -07:00
Keith Packard 09f9f6f62a Rework Object name database to unify typechecking and object lookup.
Eliminate ancient list of object name databases and load names into single
hash table that includes type information. Typecheck all pattern values to
avoid mis-typed pattern elements.
2006-08-30 18:50:58 -07:00
Keith Packard c02886485b FcCharSetSerialize was using wrong offset for leaves. Make fc-cat work.
FcCharSetSerialize was computing the offset to the unserialized leaf,
which left it pointing at random data when the cache was reloaded.

fc-cat has been updated to work with the new cache structure.

Various debug messages extended to help diagnose serialization errors.
2006-08-30 13:51:03 -07:00
Keith Packard e3096d90fd Fix build problems caused by cache rework.
Pagesize no longer matters in architecture decisions, the entire cache file
is mmaped into the library. However, lots of intptr_t values are in use now,
so that value is important.

fc-lang now requires fcserialize.c, which has been added to the repository.
2006-08-30 04:24:03 -07:00
Keith Packard 7ce1967331 Rework cache files to use offsets for all data structures.
Replace all of the bank/id pairs with simple offsets, recode several
data structures to always use offsets inside the library to avoid
conditional paths. Exposed data structures use pointers to hold offsets,
setting the low bit to distinguish between offset and pointer.

Use offset-based data structures for lang charset encodings; eliminates
separate data structure format for that file.

Much testing will be needed; offsets are likely not detected everywhere in
the library yet.
2006-08-30 04:16:22 -07:00
Keith Packard 2a9179d889 Revert to original FcFontSetMatch algorithm to avoid losing fonts.
The fancy new FcFontSetMatch algorithm would discard fonts for the
wrong reasons; fc-match sans:lang=en,ja would discard all fonts without
Japanese support. This commit reverts to the original algorithm which
ensure that FcFontSetMatch always matches the first font in the
FcFontSetSort return list.
2006-08-28 11:51:12 -07:00
Keith Packard 7db39f7298 Regenerate x86 line in fcarch.tmpl.h to match change in cache data.
Also remove spurious printf of directory names.
2006-08-28 09:43:12 -07:00
Keith Packard 0d9e31c810 Eliminate ./ and ../ elements from font directory names when scanning.
FcStrCanonFilename eliminates ./ and ../ elements from pathnames through
simple string editing. Also, relative path names are fixed by prepending the
current working directory.
2006-08-27 23:40:51 -07:00
Keith Packard af180c4037 Fix up fc-cache and fc-cat for no global cache changes.
fc-cache and fc-cat use internal (fcint.h) APIs that have
changed with the elimination of the global cache.
2006-08-27 22:24:39 -07:00
Keith Packard 00f059e930 Eliminate global cache. Eliminate multi-arch cache code.
With the removal of the in-directory cache files, and the addition of
per-user cache directories, there is no longer any reason to preserve the
giant global cache file. Eliminating of this unifies the cache structure
and simplifies the overall caching strategies greatly.
2006-08-27 21:53:48 -07:00
Keith Packard cf65c0557e Add architecture to cache filename.
Make cache filenames unique by inserting the architecture name into the
filename.
2006-08-27 18:29:51 -07:00
Keith Packard db50cbdaf5 Eliminate NormalizeDir. Eliminate gratuitous stat/access calls per dir.
Normalized directory names offer protection against looped directory trees
but cost enormous numbers of system calls (stat per file in the hierarchy).
Also, cache file directory name contents are validated each time the
directory is modified, don't re-validate every time the cache file is loaded
with an access and stat call.
2006-08-27 18:19:39 -07:00
Keith Packard d2f786849c Write caches to first directory with permission. Valid cache in FcDirCacheOpen.
Previous policy was to attempt to update the cache in place and bail if that
didn't work. Now, search for the first writable directory and place the
cache file there instead. Furthermore, on startup, search directory list for
valid cache files instead of bailing if the first found cache file wasn't
valid.
2006-08-27 17:04:01 -07:00
Patrick Lam 7410e40bd9 2006-08-04 Keith Packard (keithp@keithp.com) reviewed by: plam
Make cache directories configurable. Simplify and correct some code which
    deals with per-directory caches.
2006-08-04 16:13:00 +00:00
Patrick Lam 62a4a8459a 2006-07-19 Jon Burgess (jburgess@uklinux.net) reviewed by: plam
Fix file-descriptor leak in FcGlobalCacheDestroy.
2006-07-19 02:14:28 +00:00
Patrick Lam 1c14f2d963 2006-05-31 Yong Li (rigel863@gmail.com) reviewed by: plam, Bedhad Esfahbod
TrueType Collection table offsets are absolute, not relative.
2006-06-02 18:48:30 +00:00
Patrick Lam 31b7e6d7f5 2006-04-27 Paolo Borelli (pborelli@katamail.com) reviewed by: plam
Make FcStrCopy slightly more efficient.
2006-04-28 07:00:25 +00:00
Patrick Lam 0037aad501 Keith Packard <keithp@keithp.com>
Reduce transient memory usage during config file parsing by allocating
    smaller buffers (64 seems to be a magic number).
2006-04-27 08:13:45 +00:00
Keith Packard 529291bef4 Eliminate pattern freezing 2006-04-27 07:54:07 +00:00
Keith Packard c1c3ba06d5 Make path names in cache files absolute (NB, cache format change) Stop
permitting cache files to be stored in font dirs. Bump cache magic.
    Don't include /fonts.cache-2 in cache hash construction.
reviewed by: Patrick Lam <plam@mit.edu>
2006-04-27 07:11:44 +00:00
Patrick Lam 73775d8f28 Fix the issues with GNU libiconv vs. libc iconv (which especially appear on
Solarii). Approach suggested by Tim Mooney.
reviewed by: plam
2006-04-25 15:33:07 +00:00
Patrick Lam f045376c08 Include $(top_srcdir), $(top_srcdir)/src before anything else.
Shuffle order of includes for building out of srcdir on win32.
reviewed by: plam
2006-04-25 05:57:41 +00:00
Patrick Lam 55e145b025 Prevent terrible perf regression by getting the if-condition right
(reported by Wouter Bolsterlee).
2006-04-20 16:57:50 +00:00
Patrick Lam 93f67dfc73 Dominic Lachowicz <cinamod@hotmail.com>
Implement mmap-like code for Windows using MapViewOfFile.
2006-04-19 16:53:50 +00:00
Patrick Lam c001a192af Bail gracefully if the cache file does not contain enough data. 2006-04-19 16:17:19 +00:00
Patrick Lam 8cfa0bbc82 Fix Gecko-exposed segfault from my last hack to FcObjectToPtrLookup.
Simplify code and get things straight.
2006-04-14 18:35:16 +00:00
Patrick Lam 2f02e38361 Fix memory leak (Coverity defect #2089).
Ignore script if subtable is missing (Coverity defect #2088).
Fix possible null pointer dereference (Coverity defect #784) and memory
    leak (Coverity defects #785, #786).
Don't copy FcCharSet if we're going to throw it away anyway. (Reported by
    Kenichi Handa).
reviewed by: plam
2006-04-12 14:36:36 +00:00
Patrick Lam a56e89ab4f Fix bad behaviour on realloc resulting in crash.
reviewed by: plam
2006-04-12 03:02:57 +00:00
Patrick Lam 5c90509c07 Don't crash if config is null (Coverity defect #984). 2006-04-12 02:38:28 +00:00
Patrick Lam 2de24638b2 Missing bits from previous patches.
Remove extra semi-colon.
Fix memory leak in error case (Coverity defects #776, #985).
Fix memory leaks (Coverity defects #779, #781) and memory use after free
    (Coverity defect #780).
reviewed by: plam
2006-04-11 16:54:24 +00:00
Patrick Lam 04f7d3e7fd Properly convert static charsets to dynamic charsets.
Fix memory leak in error case (Coverity defects #1820, #1821, #1822).
Fix memory leak (Coverity defect #1819).
prevent crash when invalid include line is parsed (Coverity defect #763).
Fix potential null pointer access (Coverity defect #1804).
Remove dead code (Coverity defect #1194).
Prevent potential null pointer access (Coverity defect #767), ensure error
    value is read (Coverity defect #1195).
reviewed by: plam
2006-04-11 14:20:59 +00:00
Patrick Lam ac0010940e Swap typo in order of ALIGN and dereferencing, fixing bug 6529. 2006-04-10 21:04:54 +00:00
Patrick Lam 3ea92166a0 Fix string memory leak (Coverity defect #1823).
Fix memory leak with hash collision (Coverity defect #1824).
reviewed by: plam
2006-04-10 19:33:03 +00:00
Patrick Lam c814c301ee Don't leak header in non-error case (Coverity defect #1825).
reviewed by: plam
2006-04-10 16:12:55 +00:00
Patrick Lam 65448e8b2a src/fcdir.c (FcDirScanConfig) Don't leak in error cases (Coverity defects
#777, #1826)
reviewed by: plam
2006-04-10 16:06:42 +00:00
Patrick Lam ae2aafe602 Fix double free (spotted by Coverity, CID #1965).
Check if pattern is not null before using it (Coverity defect #1883).
Fix memory leak with hash collision (Coverity defect #1829).
Fix memory leak when bail cases (Coverity defect #1828).
Don't leak directory name (Coverity defect #1827).
reviewed by: plam
2006-04-10 15:46:34 +00:00
Patrick Lam f23f5f388d SGI compilation fixes (reported by Christoph Bauer):
1) reorder union definition of _FcChar;
2) omit .stats =.
2006-04-07 17:37:09 +00:00
Patrick Lam 44415a079a Portability fixes for HP-UX (reported by Christoph Bauer). Replace
'__inline__' by AC_C_INLINE and 'inline'. Replace '__alignof__' by
    'fc_alignof'.
reviewed by: plam
2006-04-07 17:27:39 +00:00
Patrick Lam 91fe51b4f8 Move up #include of config.h. Fail if neither inttypes.h nor stdint.h is
available. Fixes bug 6171.
reviewed by: plam
2006-04-07 17:06:55 +00:00
Patrick Lam d6217cc6bc Patrick Lam <plam@mit.edu>
Make fontconfig compile under MinGW:
1) remove unneeded #includes;
2) make use of mmap and sysconf conditional;
3) replace rand_r by srand/rand if needed;
4) use chsize instead of ftruncate; and
5) update libtool exports file
2006-04-07 04:42:32 +00:00
Patrick Lam 3a342c5a6c Eliminate warning. 2006-04-07 04:19:49 +00:00
Patrick Lam 392fa276dc Reduce amount of dirty rss by const'ing some data structures.
Don't fail if we can't create or remove $(pkgcachedir) i.e.
    /var/cache/fontconfig. (reported by Quanah Gibson-Mount).
reviewed by: plam
2006-04-06 04:52:21 +00:00
Patrick Lam 0d745819a9 Fix intel compiler warnings: make many variables static, eliminate
duplicate names, reduce variable scopes, unsigned/signed printf
    formatting.
reviewed by: plam
2006-04-06 04:33:11 +00:00
Patrick Lam b17cf498be Fix multiarch support (don't destroy multiarch files!)
Require pkg-config. (Thanks Behdad; better solution wanted for libxml2
    detection!)
reviewed by: plam
2006-03-24 15:21:10 +00:00
Patrick Lam c022182231 On Windows, unlink before rename. Reported by Tim Evans. 2006-03-23 04:21:10 +00:00
Patrick Lam e3c6d3364c Sort directory entries while scanning them from disk; prevents Heisenbugs
due to file ordering in a directory.
reviewed by: plam
2006-03-08 19:10:57 +00:00
Patrick Lam d8951c0cc2 Remove stuff we don't use, make get_{char,short,long} functions of ftglue
macros to be inlined.
Code cleanups (excess prototype, old-style function definition).
reviewed by: plam
2006-03-08 02:30:43 +00:00
Patrick Lam 9226e04c69 Because we hacked FcPatternGet, we don't really need to expand the filename
again in FcPatternGetString.
2006-03-05 15:33:46 +00:00
Patrick Lam 618adbaf7b Ok, so some people (wine!) use FcPatternGet to fetch FC_FILE. Make that
work. Reported by Bernhard Rosenkraenzer.
2006-03-05 06:05:50 +00:00
Patrick Lam dc70c15aba Include inttypes.h instead of stdint.h if appropriate. 2006-03-03 18:35:42 +00:00