Commit Graph

205 Commits

Author SHA1 Message Date
Patrick Lam 4262e0b385 Overhaul the serialization system to create one mmapable file per directory
and distribute bytes for each directory from a single malloc for that
    directory. Store pointers as differences between the data pointed to
    and the pointer's address (s_off = s - v). Don't serialize data
    structures that never actually get serialized. Separate strings used
    for keys from strings used for values (in FcPatternElt and FcValue,
    respectively). Bump FC_CACHE_VERSION to 2.
2005-08-24 06:21:30 +00:00
Patrick Lam 212c9f437e #ifdef out old cache stuff, replace with first version of new mmapping
cache. Add *Read and *Write procedures which mmap in and write out the
    fontconfig data structures to disk. Currently, create cache in /tmp,
    with different sections for each architecture (as returned by uname's
    .machine field. Run the fc-cache binary to create a new cache file;
    fontconfig then uses this cache file on subsequent runs, saving lots of
    memory. Also fixes a few bugs and leaks.
2005-07-25 04:10:09 +00:00
Patrick Lam cd2ec1a940 Add functionality to allow fontconfig data structure serialization.
This patch allows the fundamental fontconfig data structures to be
    serialized. I've converted everything from FcPattern down to be able to
    use *Ptr objects, which can be either static or dynamic (using a union
    which either contains a pointer or an index) and replaced storage of
    pointers in the heap with the appropriate *Ptr object. I then changed
    all writes of pointers to the heap with a *CreateDynamic call, which
    creates a dynamic Ptr object pointing to the same object as before.
    This way, the fundamental fontconfig semantics should be unchanged; I
    did not have to change external signatures this way, although I did
    change some internal signatures. When given a *Ptr object, just run *U
    to get back to a normal pointer; it gives the right answer regardless
    of whether we're using static or dynamic storage.
I've also implemented a Fc*Serialize call. Calling FcFontSetSerialize
    converts the dynamic FcFontSets contained in the config object to
    static FcFontSets and also converts its dependencies (e.g. everything
    you'd need to write to disk) to static objects. Note that you have to
    call Fc*PrepareSerialize first; this call will count the number of
    objects that actually needs to be allocated, so that we can avoid
    realloc. The Fc*Serialize calls then check the static pointers for
    nullness, and allocate the buffers if necessary. I've tested the
    execution of fc-list and fc-match after Fc*Serialize and they appear to
    work the same way.
2005-06-28 03:41:02 +00:00
Keith Packard a65a77aecf The ka.orth file requires several characters which are not used anymore in
modern Georgian and which are missing in the free Georgian TrueType
    fonts downloadable at:
http://aiet.qartuli.net/docs/georgian_on_linux_en.php
reviewed by: Mike Fabian Bug: 3352
2005-05-20 15:56:51 +00:00
Keith Packard d8ae9c9219 Add SEE ALSO section (bug 2085)
Cross compiling fixes (bug 280)
reviewed by: Keith Packard <keithp@keithp.com>
2005-01-13 18:31:50 +00:00
Keith Packard 02748dd3b8 Add territory database
Reviewed by: Keith Packard
Remove Han characters from Korean orthography
2004-12-29 10:07:10 +00:00
Keith Packard 9af19286b0 Currently Russian (ru) requires 0406 and 0456 (І and і), but these were
eliminated in Russian in 1918 in favor of 0418 and 0438 (И and и),
    and don't even appear in KOI8-R. (The hypothesis that they don't appear
    in KOI8-R due to their similarity with Latin I and i is eliminated by
    their presence in KOI8-U.) I have a couple of fonts with Russian
    support that don't have the letter.
Therefore, 0406 and 0456 should be removed from or commented out of ru.orth
reviewed by: Keith Packard <keithp@keithp.com>
2004-12-09 19:36:30 +00:00
Keith Packard 46b51147d1 Change files from ISO-Latin-1 to UTF-8 2004-12-07 01:14:46 +00:00
Keith Packard 54560b013f Sleep for two seconds before exiting to make sure timestamps for future
changes have distinct mod times in the file system. Bug #1982.
Add Punjabi orthography. Bug #1671.
reviewed by: Keith Packard <keithp@keithp.com>
2004-12-05 06:19:46 +00:00
Keith Packard 4f27c1c0a3 Move existing fonts.conf to fonts.conf.bak
Add detection of iconv
Document new selectfont elements
Switch to UTF-8 in comment
Add fullname, and family/style/fullname language entries
Respect selectfont/*/glob
Add support for selectfont
Add multi-lingual family/style/fullname support
Expose FcListPatternMatchAny (which selectfont/*/pattern uses)
Add new FcPatternRemove/FcPatternAppend. FcObjectStaticName stores computed
    pattern element names which are required to be static.
2004-12-04 19:41:10 +00:00
Keith Packard 6ae6acf317 Add instructions for doing a release
clean up .spec file; perhaps this will be useful to somebody...
Update to 2.2.93
Make 'scanopen' static so GCC doesn't whine about lacking prototype
Add WARN_CFLAGS to pass -W flags for GCC systems
Change various char types around to match across function calls. Fixed bug
    in using available_sizes[i].height which is in pixels, not 64ths of a
    pixel.
2004-04-14 18:08:41 +00:00
Keith Packard b68b96464f Add Low Saxon orthography (Kenneth Rohde Christiansen <kenneth@gnu.org>)
Oops. Left 'newest.set' unset, which would miscompute the newest file
Add FcGetPixelSize to extract correct pixel size from bdf/pcf font
    properties (which report the wrong value in current FreeType)
Don't attempt to check for empty glyphs in non-scalable fonts; they have no
    outlines...
2004-02-07 07:13:48 +00:00
Roozbeh Pournader d3481737be Added orthographies for Iranian Azerbaijani and Kurdish, and Pashto (Afghan
and Pakistani).
Updated Urdu orthography with real data.
2004-01-03 18:27:29 +00:00
Keith Packard 4cbc3ee8fe Yet more cleanups to finish getting 'make distcheck' working This has been
tested to ensure that it even works from a _build directory.
2003-10-27 10:44:13 +00:00
Keith Packard 394b2bf046 Attempts to fix 'make distcheck' work. Things are progressing pretty well,
but there are still failures long into the process dealing with docs
    (as always).
The big changes here are mostly to make $(srcdir) != "." work correctly,
    fixing the docbook related sections and fc-lang were particularily
    tricky. Docbook refuses to load system entities from anywhere other
    than where the original .sgml file was located, so no luck looking in
    "." for the configure-generated version.sgml and confdir.sgml files.
fc-lang needed help finding .orth files; added a -d option to set the
    directory as the least evil of many options.
Now to go use a faster machine and try and wring out the last issues.
2003-10-27 06:30:29 +00:00
Owen Taylor 44f59f7168 Remove Georgian capitals, they aren't used for normal writing. (Bug #116) 2003-09-23 20:06:40 +00:00
Keith Packard f98ecf6339 Remove 0b82 and Tamil numbers from tamil orthography (Jungshik Shin
<jshin@mailaps.org>)
2003-05-06 14:26:34 +00:00
Keith Packard 996580dce5 Solaris porting fixes 2003-04-17 15:47:34 +00:00
Tor Lillqvist daeed6e048 Changes for Windows:
On Windows with gcc (a.k.a. mingw) build as a DLL.
We don't want to hardcode the fonts.conf file location in the DLL, so we
    look up the DLL location at run-time in a DllMain() function. The
    fonts.conf location is deduced from that.
The colon can't be used as path separator on Windows, semicolon is used
    instead. File path components can be separated with either slash or
    backslash. Absolute paths can also begin with a drive letter.
Add internal function FcStrLastSlash that strrchr's the last slash, or
    backslash on Windows.
There is no link() on Windows. For atomicity checks, mkdir a lock directory
    instead.
In addition to HOME, also look for USERPROFILE.
Recognize the special font directory token WINDOWSFONTDIR, to use the
    system's font directory.
Remove the fontconfig-def.cpp that was obsolete. Add fontconfig.def(.in),
    without internal functions.
Add a fontconfig-zip(.in) script, used to build a binary distribution.
2003-03-22 21:25:34 +00:00
Keith Packard 0eadb052fb Add letter ranges to speed lang lookups, change CVS tag 2003-03-05 05:48:53 +00:00
Keith Packard 0b5c5dd1be Switch RCS tag label 2003-03-05 04:26:06 +00:00
Owen Taylor 22dc6fc6db Sun Mar 2 14:16:17 2003 Owen Taylor <otaylor@redhat.com>
fontconfig.spec.in: Improvements from Red Hat spec file.
{fc-lang,fc-cache,fc-list}/Makefile.am: Add man pages.
docs/*.sgml: SGML fixes.
2003-03-03 01:13:11 +00:00
Keith Packard ff3f1f98ed Switch back to -version-info for fontconfig as its at minor 0. Add
--system-only to fc-cache. Fix FC_VERSION to match product version
    rather than .so version
2003-03-02 19:12:23 +00:00
Keith Packard 8fc10a72ad make dist works now. Update to 2.1.90 in preparation for eventual 2.2
release
2003-03-02 07:28:24 +00:00
Keith Packard f2aacf1ed9 Add remaining .cvsignore files 2003-02-24 17:52:44 +00:00
Keith Packard 20fa60c9ae Switch to automake 2003-02-24 17:18:50 +00:00
Keith Packard 48092073dd Update greek orthography from vvas@hal.csd.auth.gr (Vasilis Vasaitis) 2003-02-06 19:28:23 +00:00
Keith Packard c647f6f1e4 Build fclang.h before building library This required compiling the charset
funcs into fc-lang, which was done by refactoring code in fccharset.c
    and fcfreetype.c a bit
Updated ethiopic orthographies
Remove imake support
Install empty local.conf file if none is present
2003-02-06 17:46:06 +00:00
David Dawes 234397b429 633. Perform country-independent matching for Chinese languages in
fontconfig (#A.1406, Keith Packard).
2002-12-14 02:03:59 +00:00
Keith Packard 65fb1c6583 Elide historic cyrillic letters from several orthographies as they are
unnecessary for modern documents and ill supported by fonts
2002-10-21 17:03:47 +00:00
Keith Packard 0d5af2ef2d English orthography included 0xd. instead of 0xe. for several codepoints.
Oops
2002-10-02 16:15:54 +00:00
Keith Packard cb30af7204 Update latin and cyrillic orthographies by comparing those found at
evertype.com with those from eki.ee
2002-08-30 01:28:17 +00:00
Keith Packard d8d7395877 Reimplement FC_LANG as FcTypeLang, freeze patterns, other cleanup 2002-08-22 07:36:45 +00:00
Keith Packard fa244f3d88 Various config changes plus a couple of optimizations from Owen 2002-08-19 19:32:05 +00:00
Keith Packard eafc0e51af Clean up French orthography, update 639-1 list of supported languages 2002-08-12 22:20:11 +00:00
Keith Packard 8c8f72665a Add Afar, Amharic, Aymara, Bini, Dzongkha, Fijian, Hiri Motu, Interlingua,
Interlingue, Ido, Kikuyu, Burmese, Oromo, Somali, Swahili, Tigrinya,
    Tsonga, Twi, Uighur, Urdu, Xhosa and Zulu orthographies
2002-08-08 00:10:51 +00:00
Keith Packard 0d91b3c5ee Add Asturian, Old Church Slavonic, Friulian, Manx Gaelic, Cornish, Scots,
Syriac and Votic orthographies
2002-08-07 17:34:15 +00:00
Keith Packard 4534f30d21 Fix Imakefile to make fclang.h writable 2002-08-06 18:59:59 +00:00
Keith Packard eb2a2f838f Add Latin-1 characters needed by Welsh 2002-08-06 18:59:43 +00:00
Keith Packard 23cd70c4ef Add ngai tahu specific chars to maori orthography 2002-07-27 23:13:28 +00:00
Keith Packard 6864f62792 Trim ja orthography of a couple codepoints not found in kochi fonts 2002-07-13 20:33:05 +00:00
Keith Packard 1a0ee1e7c1 Fix typo in geez (ethiopic) orthography 2002-07-13 19:10:03 +00:00
Keith Packard c80d2ac486 Clean up some coverage files; a few accidentally included PUA values and
punctuation. Add debugging stuff to dump out missing codepoints during
    cache building when missing only a few
2002-07-12 21:06:03 +00:00
Keith Packard b4a2c1f012 Add a bunch more languages that use the Latin alphabet 2002-07-12 19:19:16 +00:00
Keith Packard 3f03d0c2ac Add nynorsk and bokml, remove double angle quotes from other languages 2002-07-12 09:13:32 +00:00
Keith Packard c2b971c898 Missed adding kumyk 2002-07-12 07:58:16 +00:00
Keith Packard f749c49cb4 Add devanagari and cyrillic languages. Add Geez 2002-07-12 07:52:16 +00:00
Keith Packard 1bae57ddc8 Use presentation forms for arabic matching, fix comment labeling persian
general forms
2002-07-10 21:57:23 +00:00
Keith Packard 2fcac34973 Trim ideographic punctuation and Suzhou numerals from zh-tw orthography.
Had accidentally swapped codePageRange bits for traditional and
    simplified chinese. Add persian (fa) and HKSCS (zh-hk). Fix possible
    bug in charset walking
2002-07-09 02:28:29 +00:00
Keith Packard e50b9ae711 Update iso639-2 language coverage info, fix Georgian orthography to
eliminate Mingrelian and Svan glyphs, use coverage for inclusion and
    OS/2 for Han exclusion, restructure fclang.c to use fclang.h from
    fc-lang dir
2002-07-08 07:31:53 +00:00
Keith Packard d6dabf3686 Add walloon, update fclang.c to include recent language additions 2002-07-07 19:30:53 +00:00
Keith Packard 2903c146aa Share more duplicate charset data 2002-07-07 19:18:51 +00:00
Keith Packard 6446b1511d Remove at and grave from latin languages, add copyright, license and RCS
header
2002-07-06 23:59:19 +00:00
Keith Packard 364a581d91 Add coverage documentation files 2002-07-06 23:22:03 +00:00
Keith Packard c1382a3d99 Add fc-lang program to generate language coverage tables 2002-07-06 23:21:37 +00:00