Commit Graph

1538 Commits

Author SHA1 Message Date
Behdad Esfahbod b6a23028be [fcformat] Add value-count syntax
The format '%{#family}' expands to the number of values for the element
'family', or '0' if no such element exists in the pattern.
2009-02-15 13:40:29 -08:00
Behdad Esfahbod dccbbe83ef [FcStrBuf] better handle malloc failure
If buffer has failed allocation, return NULL when done.
2009-02-15 13:40:28 -08:00
Behdad Esfahbod ced38254b4 [fcformat] Implement 'cescape', 'shescape', and 'xmlescape' converters 2009-02-15 13:40:28 -08:00
Behdad Esfahbod 2017a5eb79 [fcformat] Add simple converters
The format '%{family|downcase}' for example prints the lowercase of
the family element.  Three converters are defined right now:
'downcase', 'basename', and 'dirname'.
2009-02-15 13:40:27 -08:00
Behdad Esfahbod 7717b25ffd [fcformat] Add conditionals
The conditional '%{?elt1,elt2,!elt3{expr1}{expr2}}' will evaluate
expr1 if elt1 and elt2 exist in pattern and elt3 doesn't exist, and
expr2 otherwise.  The '{expr2}' part is optional.
2009-02-15 13:40:27 -08:00
Behdad Esfahbod 8c31a2434d [fcformat] Add element filtering and deletion
The filtering, '%{+elt1,elt2,elt3{subexpr}}' will evaluate subexpr
with a pattern only having the listed elements from the surrounding
pattern.

The deletion, '%{-elt1,elt2,elt3{subexpr}}' will evaluate subexpr
with a the surrounding pattern sans the listed elements.
2009-02-15 13:40:26 -08:00
Behdad Esfahbod d6506ff6ee [fcformat] Add support for subexpressions
The syntax is '{{expr}}'.  Can be used for aligning/justifying an entire
subexpr for example.
2009-02-15 13:40:26 -08:00
Behdad Esfahbod 27b3e2dddf [fcformat] Refactor and restructure code for upcoming changes
Also makes it thread-safe.
2009-02-15 13:40:26 -08:00
Behdad Esfahbod c493c3b770 [fcformat] Add support for width modifiers
One can do '%30{family}' for example.  Or '%-30{family}' for the
left-aligned version.
2009-02-15 13:40:25 -08:00
Behdad Esfahbod 967267556c Further update Sinhala orthography (#19288) 2009-02-15 13:40:25 -08:00
Behdad Esfahbod b697fa2523 [cache] After writing cache to file, update the internal copy to reflect this
Only do it for small caches though.  For large cache we'd better off loading
the cache file again, mmap()ing it.

Based on patch from Diego Santa Cruz.
2009-02-15 13:40:25 -08:00
Behdad Esfahbod ecce22d40c Update Sinhala orthography (#19288)
Patch from Harshula Jayasuriya.
2009-02-15 13:40:25 -08:00
Behdad Esfahbod 6bb5d72fe7 [fccache] Make sure the cache is current when reusing from open caches
Reported by Diego Santa Cruz.
2009-02-15 13:40:25 -08:00
Behdad Esfahbod f9feb587fa [win32] Do not remove leading '\\' such that network paths work
Raised by Diego Santa Cruz.
2009-02-15 13:40:24 -08:00
Behdad Esfahbod 1cdf7efb22 [win32] Expand "APPSHAREFONTDIR" to ../share/fonts relative to binary location
Proposed by Diego Santa Cruz.
2009-02-15 13:40:24 -08:00
Behdad Esfahbod e62058abb9 [win32] Fix usage of GetFullPathName()
Diego Santa Cruz pointed out that we are using that API wrongly.
The forth argument is a pointer to a pointer.  Turns out we don't
need that arugment and it accepts NULL, so just pass that.
2009-02-15 13:40:24 -08:00
Behdad Esfahbod c4d557ab90 Add ICONV_LIBS to fontconfig.pc.in (#19606) 2009-02-15 13:40:23 -08:00
Mike FABIAN 10609af4aa [conf] Disable hinting when emboldening (#19904)
Hinting will be done before Embolden in freetype2,
but in such case, Embolden will get wrong result
on some glyph contours after applying hinting.
Actually, hinting should be done after embolden, but we can't
fix it in current freetype2. So as a workaround, just turn off
hinting if we want to do embolden.
2009-02-15 13:40:23 -08:00
Roozbeh Pournader fe00689cdd Remove punctuation symbols from Asturian orthography (bug #19893)
Also fix the URL for orthography.
2009-02-15 13:40:23 -08:00
Roozbeh Pournader a4f651241e Rename Igbo from "ibo" to "ig" (bug #19892) 2009-02-15 13:40:23 -08:00
Roozbeh Pournader ff71a83c20 Renamed az to az_az (bug #19889) 2009-02-15 13:40:22 -08:00
Roozbeh Pournader e53956ee5e Add Berber orthographies in Latin and Tifinagh scripts (bug #19881) 2009-02-15 13:40:22 -08:00
Roozbeh Pournader 3765a7483e Add Upper Sorbian (hsb) orthography (bug #19870) 2009-02-15 13:40:21 -08:00
Roozbeh Pournader 9f54d9db29 Add Kinyarwanda (rw) orthography (bug #19868) 2009-02-15 13:40:21 -08:00
Roozbeh Pournader 3889de9e3c Add Malay (ms) orthography (bug #19867) 2009-02-15 13:40:21 -08:00
Roozbeh Pournader 0896d14ab7 Add Kashubian (csb) orth file (bug #19866) 2009-02-15 13:40:21 -08:00
Roozbeh Pournader a32870457e Rename "ku" to "ku_am", add "ku_iq" (bug #19853).
For Iraq, we are assuming its the same Arabic orthography used in Iran.

According to Ethnologue, Kurdish is written in Cyrillic in Armenia:
http://www.ethnologue.com/show_language.asp?code=kmr

Turkey and Syria need more research.
2009-02-15 13:40:21 -08:00
Roozbeh Pournader 2199c6e321 Rename Venda from "ven" to "ve" (bug #19852)
Since ISO 639-1 code exists, we should use it.
2009-02-15 13:40:20 -08:00
Roozbeh Pournader d7dd87649c Change Turkmen orth from Cyrillic to Latin (bug #19849) 2009-02-15 13:40:19 -08:00
Roozbeh Pournader b25a42963d Fix doubly encoded UTF-8 in comments (bug #19848) 2009-02-15 13:40:19 -08:00
Roozbeh Pournader f3c214a1cd Split Mongolian orth to Mongolia and China (bug #19847)
The orth file for Mongolia uses Cyrillic, while that of
China uses the classical Mongolian script.
2009-02-15 13:40:19 -08:00
Roozbeh Pournader 0d5f9a2592 Add Filipino orth, alias Tagalog to Filipino (bug #19846)
The previous Tagalog orthography used the Tagalog script, which is not in
modern use.
2009-02-15 13:40:19 -08:00
Roozbeh Pournader 2bf7d799bf Remove Sinhala characters not in modern use (bug #19288) 2009-02-15 13:40:19 -08:00
Roozbeh Pournader 2f3b07fe80 Correct Sindhi orthography to use Arabic script (bug #17140)
The previous version used the Devanagari script. But in both Pakistan and
India, Sindhi is generally written in Arabic. The Devanagari data could
prove to be useful, if we decide on how we should name such files (see
bug #17208 and bug #19869).
2009-02-15 13:40:18 -08:00
Behdad Esfahbod 574805478c [fcfreetype] Fix typo in GB2312 encoding name string (#19845)
This was causing failure when opening iconv converter, hence rendering
GB2312-encoded fonts with no other usable encoding unusable.
2009-02-15 13:40:18 -08:00
Karl Tomlinson 575ee6cddd Change FcCharSetMerge API
To only work on writable charsets.  Also, return a bool indicating whether
the merge changed the charset.

Also changes the implementation of FcCharSetMerge and FcCharSetIsSubset
2009-02-15 13:40:18 -08:00
Behdad Esfahbod b8860e2faf [fcmatch] Fix crash when no fonts are available. 2009-02-15 13:40:17 -08:00
Dan Nicholson c08216c6f4 Let make expand fc_cachedir/FC_CACHEDIR (bug #18675)
configure replaces a NONE prefix with the default prefix too late.
So we move fonts.conf creation to Makefile, such that prefix is correctly
expanded. Ugly, but works.
2009-02-15 13:40:16 -08:00
Behdad Esfahbod 98d765a53b Cleanup all manpage.* files
Recent doc2man generates files called manpage.log.  This was breaking build.
2009-02-13 16:55:08 -08:00
Behdad Esfahbod 41af588f54 [fc-match] Accept list of elements like fc-list (bug #13017)
Also make --verbose not ignore list of elements and only print those.
Update docs.
2009-02-13 16:54:07 -08:00
Behdad Esfahbod 263f16ced2 Oops, fix FcPatternFilter 2009-02-13 16:54:06 -08:00
Behdad Esfahbod 6bffe1a95b Add fc-scan too that runs FcFileScan/FcDirScan
This is quite similar to fc-query, but calling FcFileScan/FcDirScan instead
of FcFreeTypeQuery.
2009-02-13 16:54:06 -08:00
Behdad Esfahbod 4074fd254e Revive FcConfigScan() (bug #17121)
FcConfigScan() with parameters cache=NULL and force=FcTrue can be used
to scan font dirs without any caching side effect.
2009-02-13 16:54:06 -08:00
Behdad Esfahbod 46e405cb9a Oops. Fix usage output. 2009-02-13 16:54:06 -08:00
Behdad Esfahbod 25a09eb9bf Don't use FcCharSetCopy in FcCharSetMerge
The Copy function is actually a ref, not real copy.
2009-02-13 16:54:06 -08:00
Behdad Esfahbod d230cf144f Make FcCharSetMerge() public
That's needed for apps to be abled to do pruning themselves without
the performance penalty of recreating new charsets all the time.
2009-02-13 16:54:05 -08:00
Behdad Esfahbod 3b725d0a31 [doc] Note that fontset returned by FcConfigGetFonts should not be modified 2009-02-13 16:54:05 -08:00
Behdad Esfahbod 6d764a3f9b [fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal()
Except for the final FcFontRenderPrepare().  This way we have more
flexibility to do caching in FcFontMatch() while leaving FcFontSetMatch()
intact.
2009-02-13 16:54:05 -08:00
Behdad Esfahbod a5a384c5ff [fcmatch] When matching, reserve score 0 for when elements don't exist
Previously an index j was added to element score to prefer matches earlier
in the value list to the later ones.  This index started from 0, meaning
that the score zero could be generated for the first element.  By starting
j from one, scores for when the element exists in both pattern and font
can never be zero.  The score zero is reserved for when the element is
NOT available in both font and pattern.  We will use this property later.

This shouldn't change matching much.  The only difference I can think of
is that if a font family exists both as a bitmap font and a scalable
version, and when requesting it at the size of the bitmap version,
previously the font returned was nondeterministic.  Now the scalable
version will always be preferred.
2009-02-13 16:54:05 -08:00
Behdad Esfahbod c7641f2872 [fcmatch] Use larger multipliers to enforce order
Previously the matcher multiplied comparison results by 100 and added
index value to it.  With long lists of families (lots of aliases),
reaching 100 is not that hard.  That could result in a non-match early
in the list to be preferred over a match late in the list.  Changing
the multiplier from 100 to 1000 should fix that.

To keep things relatively in order, the lang multiplier is changed
from 1000 to 10000.
2009-02-13 16:54:05 -08:00