fontconfig issueshttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues2022-07-01T06:16:02Zhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/4Use a public identifier for fonts.conf2022-07-01T06:16:02ZBugzilla Migration UserUse a public identifier for fonts.conf## Submitted by Owen Taylor
Assigned to **fon..@..op.org**
**[Link to original bug (#1281)](https://bugs.freedesktop.org/show_bug.cgi?id=1281)**
## Description
We have an open bug for Red Hat that the fonts.conf DTD should
be regi...## Submitted by Owen Taylor
Assigned to **fon..@..op.org**
**[Link to original bug (#1281)](https://bugs.freedesktop.org/show_bug.cgi?id=1281)**
## Description
We have an open bug for Red Hat that the fonts.conf DTD should
be registered in the system catlog so that, e.g., psgml mode can
find it:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=91968
Sounds reasonable to me. But fontconfig currently uses:
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
Using something along the lines of:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Would make it possible. (You don't really need both the public identifier
and the URL. I think you can omit either one, but I don't know the
syntax for omitting the public identifier offhand.)
Version: 2.2https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/5FcFontList "contain" semantics unproductive2022-07-01T06:16:02ZBugzilla Migration UserFcFontList "contain" semantics unproductive## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#107246)](https://bugs.freedesktop.org/show_bug.cgi?id=107246)**
## Description
If I want to list only fonts that have fontformat=TrueType or ...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#107246)](https://bugs.freedesktop.org/show_bug.cgi?id=107246)**
## Description
If I want to list only fonts that have fontformat=TrueType or fontformat=CFF, currently I can't:
behdad:~ 0$ fc-list :fontformat=truetype,cff
Returns empty.
This is because FcFontList interprets that as returning fonts that have both fontformat=truetype AND fontformat=cff. Code:
```
/*
* Font must have a containing value for every value in the pattern
*/
static FcBool
FcListValueListMatchAny (FcValueListPtr patOrig, /* pattern */
FcValueListPtr fntOrig) /* font */
{
FcValueListPtr pat, fnt;
for (pat = patOrig; pat != NULL; pat = FcValueListNext(pat))
{
for (fnt = fntOrig; fnt != NULL; fnt = FcValueListNext(fnt))
{
/*
* make sure the font 'contains' the pattern.
* (OpListing is OpContains except for strings
* where it requires an exact match)
*/
if (FcConfigCompareValue (&fnt->value,
FC_OP (FcOpListing, FcOpFlagIgnoreBlanks),
&pat->value))
break;
}
if (fnt == NULL)
return FcFalse;
}
return FcTrue;
}
```
I cannot imagine any scenario that this semantic is useful. I suggest we flip it from an AND to an OR.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/7Regular expression support in comparison for <test>2022-07-01T06:16:02ZBugzilla Migration UserRegular expression support in comparison for <test>## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#40648)](https://bugs.freedesktop.org/show_bug.cgi?id=40648)**
## Description
That would be useful to support the regexp for comparison. ...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#40648)](https://bugs.freedesktop.org/show_bug.cgi?id=40648)**
## Description
That would be useful to support the regexp for comparison. this possibly would helps to fix Bug#35118 with:
`<match>`
`<test name="lang" compare="regex">`
`<string>`pa.*`</string>`
`</test>`
...
`</match>`
Or Bug#28491 to make the match pattern for the filename only perhaps and Bug#13416 to merge the subfamilies?
Version: 2.8https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/8Provide CMap information for CID-keyed fonts2022-07-01T06:16:02ZBugzilla Migration UserProvide CMap information for CID-keyed fonts## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#90161)](https://bugs.freedesktop.org/show_bug.cgi?id=90161)**
## Description
just an idea to make more convenience for PostScript and PDF.## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#90161)](https://bugs.freedesktop.org/show_bug.cgi?id=90161)**
## Description
just an idea to make more convenience for PostScript and PDF.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/12FcConfigAppFontAddFile equivalent that takes memory or FT_Face2022-07-01T06:16:02ZBugzilla Migration UserFcConfigAppFontAddFile equivalent that takes memory or FT_Face## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#78450)](https://bugs.freedesktop.org/show_bug.cgi?id=78450)**
## Description
One common request is to use Pango with a custom font. The way ...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#78450)](https://bugs.freedesktop.org/show_bug.cgi?id=78450)**
## Description
One common request is to use Pango with a custom font. The way I recommend doing that is by creating a custom FcConfig and adding custom fonts to it and using pango against that config.
However, currently only fonts on disk can be added to a config. Lets fix that to either get a memory buffer, or a FT_Face, similar to FcFreeTypeQueryFace. We probably need to add a FcFileScan() variant too.
Perhaps better to add Memory() version to avoid FreeType dependency in non fcfreetype.h API.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/14RFE: allow use of iso 15924 codes2022-07-01T06:16:02ZBugzilla Migration UserRFE: allow use of iso 15924 codes## Submitted by Nicolas Mailhot
Assigned to **fon..@..op.org**
**[Link to original bug (#18727)](https://bugs.freedesktop.org/show_bug.cgi?id=18727)**
## Description
There are a lot of scripts in the wild and the most accurate sta...## Submitted by Nicolas Mailhot
Assigned to **fon..@..op.org**
**[Link to original bug (#18727)](https://bugs.freedesktop.org/show_bug.cgi?id=18727)**
## Description
There are a lot of scripts in the wild and the most accurate standard way to specify them is using iso 15924 codes
http://www.unicode.org/iso15924/iso15924-codes.html
Please make it possible to write font patterns using iso 15924 codes in fonts.conf
Version: 2.6https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/17API redesign2022-07-01T06:16:03ZBugzilla Migration UserAPI redesign## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#48755)](https://bugs.freedesktop.org/show_bug.cgi?id=48755)**
## Description
there are some cases I feel an urge to cleanup/redesign fon...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#48755)](https://bugs.freedesktop.org/show_bug.cgi?id=48755)**
## Description
there are some cases I feel an urge to cleanup/redesign fontconfig API though, let me add a note here for a chance to do so in the future.
1. the API prefix isn't intuitive to find out where it's included in.
e.g. FcDirCache* in fccache.c but some is in fcdir.c. and some can see in fcfs.c, fslist.c and fcmatch.c. for FcFontSet as well.
2. some APIs is hard to imagine the functionality from the name
e.g. FcDirCacheRead() vs FcDirCacheLoad()
3. FcCacheDir() vs FcConfigGetCacheDirs()
it implies from the name it may behaves similarly but FcCacheDir() returns the font directory at this moment.
4. function doesn't take any structure as its prefix implies
e.g. FcConfigFilename() etc
5. FcConfigAppFontAddFile() and FcConfigAppFontAddDir()
that could be integrated into one and branch if it's a file or a directory?
6. In doc, FcConfigSubstitute() and FcDefaultSubstitute() are required to get FcFontMatch() and FcFontSort() working though, it's actually optional to do in the program. guess there may be a reason to do so but that looks to me like an error of API design.
may update more later...
Version: 2.9https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/18FcNameParse() ignores non-builtin elements2022-07-01T06:16:03ZBugzilla Migration UserFcNameParse() ignores non-builtin elements## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#19331)](https://bugs.freedesktop.org/show_bug.cgi?id=19331)**
## Description
FcNameParse() only parses elements that it knows. That's becaus...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#19331)](https://bugs.freedesktop.org/show_bug.cgi?id=19331)**
## Description
FcNameParse() only parses elements that it knows. That's because it needs to know the type of the element. I like to see it parse everything though, and it can do a heuristic at detecting the type, or look at the end of the value to see if there are type specifiers.
Version: 2.4https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/20switching-off libfontconfig.dll.a target if configured without shared lib.2022-07-01T06:16:03ZBugzilla Migration Userswitching-off libfontconfig.dll.a target if configured without shared lib.## Submitted by suzuki toshiya
Assigned to **fon..@..op.org**
**[Link to original bug (#26828)](https://bugs.freedesktop.org/show_bug.cgi?id=26828)**
## Description
Created attachment 33672
disable DLL targets if configured withou...## Submitted by suzuki toshiya
Assigned to **fon..@..op.org**
**[Link to original bug (#26828)](https://bugs.freedesktop.org/show_bug.cgi?id=26828)**
## Description
Created attachment 33672
disable DLL targets if configured without shared lib
src/Makefile.am has 2 DLL-related install targets for Win32,
install-libtool-import-lib and fontconfig.lib.
When I run configure --disable-shared --enable-static on
cygwin environment, libfontconfig.dll.a, libfontconfig-XXX.dll
are not built, so DLL-related targets are not installable.
So I propose to disable DLL-related targets when configured
without shared library, like this. Also patch is attached.
diff --git a/configure.in b/configure.in
index b4a27e9..001146d 100644
--- a/configure.in
+++ b/configure.in
@@ -67,6 +67,7 @@ AC_PROG_MAKE_SET
PKG_PROG_PKG_CONFIG
dnl ==========================================================================
+AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes")
case "$host" in
*-*-mingw*)
@@ -76,11 +77,13 @@ case "$host" in
os_win32=no
esac
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
+AM_CONDITIONAL(BUILD_WIN32_DLL, test "$os_win32" = "yes" -a "$enable_shared" = "yes")
if test "$os_win32" = "yes"; then
AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
+AM_CONDITIONAL(BUILD_MS_IMPORT_LIB, test x$ms_librarian = xyes -a "$enable_shared" = "yes")
WARN_CFLAGS=""
if test "x$GCC" = "xyes"; then
diff --git a/src/Makefile.am b/src/Makefile.am
index 406e85e..9110cde 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,7 +21,7 @@
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-if OS_WIN32
+if BUILD_WIN32_DLL
export_symbols = -export-symbols fontconfig.def
@@ -45,7 +45,7 @@ fontconfig_def_dependency =
endif
-if MS_LIB_AVAILABLE
+if BUILD_MS_IMPORT_LIB
# Microsoft import library install/uninstall
**Patch 33672**, "disable DLL targets if configured without shared lib":
[disable-dll.diff](/uploads/3a45751d0b64d1447aa6bdc5a1867f23/disable-dll.diff)
Version: 2_1https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/22Add desktopname object like prgname2022-07-01T06:16:03ZBugzilla Migration UserAdd desktopname object like prgname## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#96650)](https://bugs.freedesktop.org/show_bug.cgi?id=96650)**
## Description
That might be useful if someone wants to have different beh...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#96650)](https://bugs.freedesktop.org/show_bug.cgi?id=96650)**
## Description
That might be useful if someone wants to have different behavior in the configuration against current desktop session.
The usecase is e.g. the default hinting in GNOME is hintslight and KDE seems hintmedium. one may wants to have different default hinting for non native-desktop applications among desktops.
the desktopname object may be compared to $XDG_CURRENT_DESKTOP.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/23Element for whether FreeType's patented bytecode-interpretter is available2022-07-01T06:16:03ZBugzilla Migration UserElement for whether FreeType's patented bytecode-interpretter is available## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#17101)](https://bugs.freedesktop.org/show_bug.cgi?id=17101)**
## Description
And use it in FcDefaultSubstitute, such that user can choose hin...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#17101)](https://bugs.freedesktop.org/show_bug.cgi?id=17101)**
## Description
And use it in FcDefaultSubstitute, such that user can choose hinting/subpixel settings based on whether BCI is available.
This can be checked using:
#include <ft2build.h>
#include FT_CONFIG_OPTION_H
int has_bci =
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1
#else
0
#endif
;
Other interesting option to expose is FT_CONFIG_OPTION_SUBPIXEL_RENDERING.
Version: 2.4https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/24Include TTF_NAME table fields in fontconfig's cache2022-07-01T06:16:03ZBugzilla Migration UserInclude TTF_NAME table fields in fontconfig's cache## Submitted by Nicolas Spalinger
Assigned to **fon..@..op.org**
**[Link to original bug (#18340)](https://bugs.freedesktop.org/show_bug.cgi?id=18340)**
## Description
Please include in the fontconfig cache the information contain...## Submitted by Nicolas Spalinger
Assigned to **fon..@..op.org**
**[Link to original bug (#18340)](https://bugs.freedesktop.org/show_bug.cgi?id=18340)**
## Description
Please include in the fontconfig cache the information contained in the following fields of the NAME table to allow better exposure of the existing font metadata contained in both open and restricted fonts.
These are standard fields already taken into account in Freetype:
in include/freetype/ttnameid.h
#define TT_NAME_ID_COPYRIGHT 0
#define TT_NAME_ID_FONT_FAMILY 1
#define TT_NAME_ID_FONT_SUBFAMILY 2
#define TT_NAME_ID_UNIQUE_ID 3
#define TT_NAME_ID_FULL_NAME 4
#define TT_NAME_ID_VERSION_STRING 5
#define TT_NAME_ID_PS_NAME 6
#define TT_NAME_ID_TRADEMARK 7
#define TT_NAME_ID_MANUFACTURER 8
#define TT_NAME_ID_DESIGNER 9
#define TT_NAME_ID_DESCRIPTION 10
#define TT_NAME_ID_VENDOR_URL 11
#define TT_NAME_ID_DESIGNER_URL 12
#define TT_NAME_ID_LICENSE 13
#define TT_NAME_ID_LICENSE_URL 14
Then the cache can be queried for this information: utilities like fc-list or fc-match can report on the licensing/author/foundry for each font in the cache by default or via a parameter. Dedicated commands like fc-license could also be created.
Version: 2.6https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/25RFE: Accessor functions to the structure members2022-07-01T06:16:03ZBugzilla Migration UserRFE: Accessor functions to the structure members## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#90923)](https://bugs.freedesktop.org/show_bug.cgi?id=90923)**
## Description
fontconfig should disallow the direct access to the structu...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#90923)](https://bugs.freedesktop.org/show_bug.cgi?id=90923)**
## Description
fontconfig should disallow the direct access to the structure members to applications. it keeps ABI compatibility in general and avoid unnecessary crashes against unexpected pointer access say.
maybe targeting on fontconfig3.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/30Prioritize fonts that support a territory-less language variant when no exact...2019-06-13T12:08:21ZBugzilla Migration UserPrioritize fonts that support a territory-less language variant when no exact language match## Submitted by Caolán McNamara
Assigned to **fon..@..op.org**
**[Link to original bug (#35118)](https://bugs.freedesktop.org/show_bug.cgi?id=35118)**
## Description
Created attachment 44237
implement suggestion
When fontconfig m...## Submitted by Caolán McNamara
Assigned to **fon..@..op.org**
**[Link to original bug (#35118)](https://bugs.freedesktop.org/show_bug.cgi?id=35118)**
## Description
Created attachment 44237
implement suggestion
When fontconfig matches by language tag, and the language tag supplied does not match exactly a known fontconfig language tag then fontconfig considers a list of all fonts that provide support for at least a variant language of the language tag.
It doesn't however prioritize fonts that support a territory-less variant, which is likely the best one to use under these circumstances.
i.e. practically
fc-match :lang=pa-IN
will generate a list of "pa" fonts and "pa-pk" fonts and fairly arbitrarily return one of that list.
so for me I get
"Droid Sans Arabic" because that supports "pa-pk", but anything that provided just "pa" would be a better choice.
e.g. see https://bugzilla.redhat.com/show_bug.cgi?id=682716
Attached is an implementation to effectively sort "xx" before "xx-*" when no exact "xx-yy" was found.
**Patch 44237**, "implement suggestion":
[sort.nonterritory.first.patch](/uploads/1e755759f3e889c0c825fefdaa4241de/sort.nonterritory.first.patch)
Version: 2.8https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/33Support ISO 14496-28 Composite Font Representation2020-04-02T13:28:21ZBugzilla Migration UserSupport ISO 14496-28 Composite Font Representation## Submitted by Sascha Brawer
Assigned to **fon..@..op.org**
**[Link to original bug (#96693)](https://bugs.freedesktop.org/show_bug.cgi?id=96693)**
## Description
Could fontconfig support the Composite Font Representation of ISO ...## Submitted by Sascha Brawer
Assigned to **fon..@..op.org**
**[Link to original bug (#96693)](https://bugs.freedesktop.org/show_bug.cgi?id=96693)**
## Description
Could fontconfig support the Composite Font Representation of ISO 14496-28?
https://blogs.adobe.com/CCJKType/2012/04/cfr.html
At Google, we’re considering to release CFR files for grouping the myriad of Noto fonts into a few families such as "Noto Sans", "Noto Serif", and "Noto Mono". The total number of glyphs exceeds 64K, so we cannot just ship Noto Sans etc. as one gigantic OpenType file. Instead, we need a mechanism for declaring a virtual font. CFR has the advantage of being standardized. However, as of June 2016, Apple is the only platform that implements CFR. But perhaps fontconfig could follow Apple in that regard? Anyhow, here’s a draft CFR file for Noto Sans, which might help to illustrate the CFR syntax:
https://github.com/googlei18n/noto-fonts/issues/707#issuecomment-224503236
For downloading the official specification document (+errata) from ISO, search for "14496-28" on this page:
http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html
— Sascha Brawer, sascha@brawer.ch / sascha@google.comhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/34Optimize family name matching in sort and match functions2021-02-22T19:24:04ZBugzilla Migration UserOptimize family name matching in sort and match functions## Submitted by Karl Tomlinson
Assigned to **fon..@..op.org**
**[Link to original bug (#19376)](https://bugs.freedesktop.org/show_bug.cgi?id=19376)**
## Description
Currently the time for a FcFont(Set)Sort with trim = false (or fo...## Submitted by Karl Tomlinson
Assigned to **fon..@..op.org**
**[Link to original bug (#19376)](https://bugs.freedesktop.org/show_bug.cgi?id=19376)**
## Description
Currently the time for a FcFont(Set)Sort with trim = false (or for a
FcFont(Set)Match) I assume) is typically dominated by comparing family names.
By the time aliases are added to the sort pattern there are typically 80-100
family names in the pattern (p). For 300 to 500 fonts (some of which will
have family names for each language) (n), that is p * n ~ 40,000
case-insensitive string comparisons.
I think a sensible approach to optimizing this would be to sort the families
in the sort pattern (removing duplicates, recording the score for each family,
and remembering to consider the binding) so that each family lookup is
O(log p) and the total complexity is O((n + p) log p).
This would be faster whenever n >> log p, which is almost always the case.
(Behdad was considering something similar. I think this is slightly different
from what Behdad had in mind, but perhaps he thought of this too.)
(I guess the same argument could be applied to any (sortable) property, but it
is typically only family properties that have so many values.)
(The sorted family list is essentially a cheap hash table. I'm guessing that
looking up a family in a sorted list is going to be cheaper ~O(log p), assuming there are not too many similar family names), than generating a hash for the family O(length of string).)
Version: 2_1https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/36Make fc-query warn about non-WWS compliant fonts2019-12-08T10:39:08ZBugzilla Migration UserMake fc-query warn about non-WWS compliant fonts## Submitted by Nicolas Mailhot
Assigned to **fon..@..op.org**
**[Link to original bug (#22338)](https://bugs.freedesktop.org/show_bug.cgi?id=22338)**
## Description
(it would be nice if there was a fc-query component in fontconfi...## Submitted by Nicolas Mailhot
Assigned to **fon..@..op.org**
**[Link to original bug (#22338)](https://bugs.freedesktop.org/show_bug.cgi?id=22338)**
## Description
(it would be nice if there was a fc-query component in fontconfig BTW)
Since MS' WWS naming model makes stuff simpler for application authors, and will be required in new window code, it would be mighty nice if fc-query warned in its general report if a font file didn't respect this model.
Respecting the WWS model is declaring fields 21 and 22 or 16 in 17 in ways that respect WWS (only weight, width and slant in sytles)
This way we can point FLOSS authors to fc-query as linting tools and promote font naming our apps can handle easily
Version: 2.6https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/37Provide FcFontSort-like API without having the fallbacks2018-08-20T21:45:34ZBugzilla Migration UserProvide FcFontSort-like API without having the fallbacks## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#8053)](https://bugs.freedesktop.org/show_bug.cgi?id=8053)**
## Description
Keith has this idea of for performance reasons rebuilding FcFontSo...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#8053)](https://bugs.freedesktop.org/show_bug.cgi?id=8053)**
## Description
Keith has this idea of for performance reasons rebuilding FcFontSort results
from FcFontMatch followed by a generic fallback list. This doesn't work for
various cases, including for ":lang=en,ja" for example.
To be able to do something like that we need a new API that returns a list of
fonts explicitly chosen to fulfill the requested pattern (including stuff added
by the config file.) That list then can be expanded by a generic fallback list
by the application. Not sure how easy is to implement this.
Example:
[behdad@home ~]$ fc-match --sort | head -n 5
DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book"
DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book"
DejaVuLGCSans-ExtraLight.ttf: "DejaVu LGC Sans" "ExtraLight"
DejaVuLGCSans-BoldOblique.ttf: "DejaVu LGC Sans" "Bold Oblique"
n019003l.pfb: "Nimbus Sans L" "Regular"
[behdad@home ~]$ fc-match --sort :lang=fa | head -n 5
roya.ttf: "Roya" "Regular"
DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book"
DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book"
DejaVuLGCSans-ExtraLight.ttf: "DejaVu LGC Sans" "ExtraLight"
DejaVuLGCSans-BoldOblique.ttf: "DejaVu LGC Sans" "Bold Oblique"
[behdad@home ~]$ fc-match --sort :lang=fa,ja | head -n 5
roya.ttf: "Roya" "Regular"
sazanami-gothic.ttf: "Sazanami Gothic" "Gothic-Regular"
DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book"
DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book"
DejaVuLGCSans-ExtraLight.ttf: "DejaVu LGC Sans" "ExtraLight"
[behdad@home ~]$ fc-match --sort Nazli:lang=fa,ja | head -n 5
nazli.ttf: "Nazli" "Regular"
sazanami-gothic.ttf: "Sazanami Gothic" "Gothic-Regular"
DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book"
DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book"
DejaVuLGCSans-ExtraLight.ttf: "DejaVu LGC Sans" "ExtraLight"
Version: 2_1https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/41objects for target="pattern" is inherited to the result of FcMatchFont2018-08-20T21:45:51ZBugzilla Migration Userobjects for target="pattern" is inherited to the result of FcMatchFont## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#53323)](https://bugs.freedesktop.org/show_bug.cgi?id=53323)**
## Description
The quote from the document:
use rgb sub-pixel ord...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#53323)](https://bugs.freedesktop.org/show_bug.cgi?id=53323)**
## Description
The quote from the document:
use rgb sub-pixel ordering to improve glyph appearance on
LCD screens. Changes affecting rendering, but not matching
should always use target="font".
So the following rule should be affected to the result of FcPattern for FcMatchFont:
`<match target="pattern">`
`<edit name="rgba" mode="assign">`
`<const>`rgb`</const>`
`</edit>`
`</match>`
but it does:
$ fc-match -v | grep rgba
rgba: 1(i)(s)
This behavior messes up the rule of target="font".
Aside from that, right now fontconfig warns when editing the user-defined object on target="scan" though, we should do it for others if it's not desirable and for target="pattern" and target="font" too.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/42lang attribute support for family tag2018-08-20T21:45:54ZBugzilla Migration Userlang attribute support for family tag## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#68377)](https://bugs.freedesktop.org/show_bug.cgi?id=68377)**
## Description
`<family>` tag is used for `<alias>` though, sometimes want...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#68377)](https://bugs.freedesktop.org/show_bug.cgi?id=68377)**
## Description
`<family>` tag is used for `<alias>` though, sometimes wants to add the family conditionally, particularly for certain language. `<alias>` is capable to have `<test>` elements but may be a good idea to have the lang attribute to `<family>` as another syntactic sugar:
`<alias>`
`<family>`serif`</family>`
`<prefer>`
...
`<family lang="ja">`MS Mincho`</family>`
<family lang="zh-cn,zh-tw">AR PL ShanHeiSun Uni`</family>`
...
`</prefer>`
`</alias>`
interpreted like:
`<match>`
`<test name="family">`
`<string>`serif`</string>`
`</test>`
`<test name="lang">`
`<string>`ja`</string>`
`</test>`
`<edit name="family" mode="prepend">`
`<string>`MS Mincho`</string>`
`</edit>`
`</match>`
`<match>`
`<test name="family">`
`<string>`serif`</string>`
`</test>`
`<test name="lang">`
`<string>`zh-cn`</string>`
`</test>`
`<edit name="family" mode="prepend">`
`<string>`AR PL ShanHeiSun Uni`</string>`
`</edit>`
`</match>`
`<match>`
`<test name="family">`
`<string>`serif`</string>`
`</test>`
`<test name="lang">`
`<string>`zh-tw`</string>`
`</test>`
`<edit name="family" mode="prepend">`
`<string>`AR PL ShanHeiSun Uni`</string>`
`</edit>`
`</match>`https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/46Postscript name matching issues2019-06-21T08:12:08ZBugzilla Migration UserPostscript name matching issues## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#107242)](https://bugs.freedesktop.org/show_bug.cgi?id=107242)**
## Description
Dominik and I are looking at postscriptname matching in Chrome...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#107242)](https://bugs.freedesktop.org/show_bug.cgi?id=107242)**
## Description
Dominik and I are looking at postscriptname matching in Chrome, and I found a couple issues with it.
1. The code seems to want to ignore space and dash as delimiters:
```
static double
FcComparePostScript (const FcValue *v1, const FcValue *v2, FcValue *bestValue)
{
const FcChar8 *v1_string = FcValueString (v1);
const FcChar8 *v2_string = FcValueString (v2);
int n;
size_t len;
*bestValue = FcValueCanonicalize (v2);
if (FcToLower (*v1_string) != FcToLower (*v2_string) &&
↦ *v1_string != ' ' && *v2_string != ' ')
↦ return 1.0;
n = FcStrMatchIgnoreCaseAndDelims (v1_string, v2_string, (const FcChar8 *)" -");
len = strlen ((const char *)v1_string);
return (double)(len - n) / (double)len;
}
```
But in actual testing I don't see dash ignored. NOT ignoring dash is actually correct and desired behavior. I just don't understand why it's not ignored by the code currently.
Inside FcStrCaseWalkerNext(), delims are not checked when fulfilling request from w->read:
```
static FcChar8
FcStrCaseWalkerNext (FcCaseWalker *w, const char *delims)
{
FcChar8↦ r;
if (w->read)
{
↦ if ((r = *w->read++))
↦ return r;
↦ w->read = 0;
}
do
{
↦ r = *w->src++;
} while (r != 0 && delims && strchr (delims, r));
if ((r & 0xc0) == 0xc0)
↦ return FcStrCaseWalkerLong (w, r);
if ('A' <= r && r <= 'Z')
r = r - 'A' + 'a';
return r;
}
```
Ie, `if ((r = *w->read++))` needs to also check delims...https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/47Add a FC_LOCALE_LANG element2018-08-20T21:46:18ZBugzilla Migration UserAdd a FC_LOCALE_LANG element## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#17311)](https://bugs.freedesktop.org/show_bug.cgi?id=17311)**
## Description
This would be quite similar to FC_LANG, except that it holds the...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#17311)](https://bugs.freedesktop.org/show_bug.cgi?id=17311)**
## Description
This would be quite similar to FC_LANG, except that it holds the default language of the locale, not the language we are looking for fonts for.
The idea is that an application (Pango) looking for a font to render English always passes en as lang. However, in CJK locales, it may be desirable to select the same font for Latin as well as CJK. With the proposed element, a conf file can check whether FC_LOCALE_LANG is CJK and in that case, add the CJK font as the single preferred font. All this without affecting the case of not running under a CJK locale.
Version: 2.4https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/49[patch] Allow fontconfig to use 3 components in locales2018-08-20T21:46:25ZBugzilla Migration User[patch] Allow fontconfig to use 3 components in locales## Submitted by Koop Mast
Assigned to **fon..@..op.org**
**[Link to original bug (#92776)](https://bugs.freedesktop.org/show_bug.cgi?id=92776)**
## Description
Created attachment 119343
Support 3 component locales
Linux only supp...## Submitted by Koop Mast
Assigned to **fon..@..op.org**
**[Link to original bug (#92776)](https://bugs.freedesktop.org/show_bug.cgi?id=92776)**
## Description
Created attachment 119343
Support 3 component locales
Linux only supports locales with 2 components while POSIX supports
locales with 3 components.
DragonFly and FreeBSD both follow POSIX, which causes fontconfig to
give the following warning:
% env LC_CTYPE=sr_Cyrl_RS.UTF-8 leafpad
Fontconfig warning: ignoring sr_Cyrl_RS.UTF-8: not a valid region tag
For more information about the POSIX documentation:
http://tools.ietf.org/html/bcp47
Chapter 2.1.1 goes over formatting and Appendix-A has more examples.
**Patch 119343**, "Support 3 component locales":
[0001-Support-3-component-locales.patch](/uploads/a49842028169b9604a3b4bf52b4284a1/0001-Support-3-component-locales.patch)
Version: 2.11https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/50fontconfig should change to BCP 47 language tags2019-12-08T10:44:30ZBugzilla Migration Userfontconfig should change to BCP 47 language tags## Submitted by Roozbeh Pournader
Assigned to **fon..@..op.org**
**[Link to original bug (#19869)](https://bugs.freedesktop.org/show_bug.cgi?id=19869)**
## Description
Presently, the language model for fontconfig is based on the R...## Submitted by Roozbeh Pournader
Assigned to **fon..@..op.org**
**[Link to original bug (#19869)](https://bugs.freedesktop.org/show_bug.cgi?id=19869)**
## Description
Presently, the language model for fontconfig is based on the RFC 3066 model of language tags, which is not future-proof. The language model should switch to that of current BCP 47 (RFC 4646). Or an extended version that adds ISO 639-3 codes (RFC 4646bis): the ISO 639-3 codes are already in use in various localization communities.
The main difference would be supporting script subtags. An HTML author may have Kurdish in the Arabic script, and it wouldn't care/know if it's for Iran or Iraq. So it can tag that part of the page as ku-Arab. The browser can later request fonts for ku-Arab from fontconfig, instead of automagically finding it is probably ku-IR to fontconfig.
For existing glibc locales, and applications that use that data to render fonts (pango?), "@" would translate to "-x-", converting locales like sr_RS@latin to valid BCP 47 tags like "sr-RS-x-latin" which we can support as an alias/copy of sr-Latn. This way, we would be handling glibc tags as what they really are: private use subtags. Alternatively, we can ask the applications to convert sr_RS@latin to sr-Latn-RS themselves somehow, which we will match with our sr-Latn.
This would also make maintaining orth files somehow easier and cleaner, as the languages written in different scripts won't be separated by countries, but by scripts. We will have a ku-Arab, with ku-IR and ku-IQ aliasing/including it, a ku-Latn, with ku-TR aliasing it, and a ku-Cyrl, with no alias until we find more information on which Kurdish .
Over time, country code language codes are supposed to disappear, so if somebody really wants ku-IR, he SHOULD say "ku-Arab-IR", which makes matching and everything much easier too.
Version: 2.6
### Blocking
* [Bug 17208](https://bugs.freedesktop.org/show_bug.cgi?id=17208)https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/54No language tag modifiers support2018-08-20T21:47:46ZBugzilla Migration UserNo language tag modifiers support## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#42900)](https://bugs.freedesktop.org/show_bug.cgi?id=42900)**
## Description
There are no modifiers support in fontconfig, particularly ...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#42900)](https://bugs.freedesktop.org/show_bug.cgi?id=42900)**
## Description
There are no modifiers support in fontconfig, particularly in FcGetDefaultLang() and FcLang*
Version: 2.8
### Blocking
* [Bug 25647](https://bugs.freedesktop.org/show_bug.cgi?id=25647)
* [Bug 25648](https://bugs.freedesktop.org/show_bug.cgi?id=25648)
* [Bug 25650](https://bugs.freedesktop.org/show_bug.cgi?id=25650)
* [Bug 25652](https://bugs.freedesktop.org/show_bug.cgi?id=25652)
* [Bug 27849](https://bugs.freedesktop.org/show_bug.cgi?id=27849)
* [Bug 27850](https://bugs.freedesktop.org/show_bug.cgi?id=27850)https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/56RFE: fontconfig-level locl patching2019-12-08T10:47:47ZBugzilla Migration UserRFE: fontconfig-level locl patching## Submitted by Nicolas Mailhot
Assigned to **fon..@..op.org**
**[Link to original bug (#18723)](https://bugs.freedesktop.org/show_bug.cgi?id=18723)**
## Description
Due to Han unification and other similar stuff parts of some fon...## Submitted by Nicolas Mailhot
Assigned to **fon..@..op.org**
**[Link to original bug (#18723)](https://bugs.freedesktop.org/show_bug.cgi?id=18723)**
## Description
Due to Han unification and other similar stuff parts of some fonts may not be suitable for all locales.
This is handled by the locl flag in modern opentype fonts.
However there are still many non-opentype fonts in the wild, and it is not possible to convert them all at once (when the license permits it).
There should be a way in fontconfig for font distributors to patch in via a config file the locl characteristics of a font.
Version: 2.6https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/57changing the matcher function for family to forward matching2018-08-20T21:47:59ZBugzilla Migration Userchanging the matcher function for family to forward matching## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#65638)](https://bugs.freedesktop.org/show_bug.cgi?id=65638)**
## Description
The issue was raised at Red Hat Bugzilla:
https://bugzill...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#65638)](https://bugs.freedesktop.org/show_bug.cgi?id=65638)**
## Description
The issue was raised at Red Hat Bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=956453
Adding all of variants of fonts as aliases are not realistic. I'd suggest to change the matcher function for family name from the exact matching to the forward matching and give the certain score against how many strings is being remained in the buffer.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/61hard dependency on scandir2018-08-20T21:48:42ZBugzilla Migration Userhard dependency on scandir## Submitted by Riccardo Mottola
Assigned to **fon..@..op.org**
**[Link to original bug (#91088)](https://bugs.freedesktop.org/show_bug.cgi?id=91088)**
## Description
Hi,
building on solaris 9 (and older) fails because the existi...## Submitted by Riccardo Mottola
Assigned to **fon..@..op.org**
**[Link to original bug (#91088)](https://bugs.freedesktop.org/show_bug.cgi?id=91088)**
## Description
Hi,
building on solaris 9 (and older) fails because the existing scandir() implementatino is inside the UCB layer (additional -I and -L flags needed) but it is also slightly different in the parameters (direct vs. dirent). I couldn't get configure to pass, I don't even know about the code. Perhaps it can be done, but it is worth?
https://answers.yahoo.com/question/index?qid=1006050301563
Some other odd OSs apparently do not have scandir() available at all.
I propose to have a fallback version supplied to make fontconfig more portable.
E.g. look at this patch NetBSD applies in its portable package:
http://pkgsrc.se/files.php?messageId=20140715144835.1658296@cvs.netbsd.org
Instead of enabling for just one OS, perhaps it should be enabled it configure fails the test.
Thanks, Riccardohttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/63RBGA Order options for moden panels (Pentile, RGBG, OLED)2018-08-20T21:48:53ZBugzilla Migration UserRBGA Order options for moden panels (Pentile, RGBG, OLED)## Submitted by Redsandro
Assigned to **fon..@..op.org**
**[Link to original bug (#106219)](https://bugs.freedesktop.org/show_bug.cgi?id=106219)**
## Description
Created attachment 139058
Subpixel pattern for Lenovo OLED screens
...## Submitted by Redsandro
Assigned to **fon..@..op.org**
**[Link to original bug (#106219)](https://bugs.freedesktop.org/show_bug.cgi?id=106219)**
## Description
Created attachment 139058
Subpixel pattern for Lenovo OLED screens
* Cinnamon version 3.4.6
* Distribution - Mint 18.3 x64
There are no RBGA Order options for moden panels (Pentile, RGBG, OLED etc) in Font Settings.
Raised here: https://github.com/linuxmint/Cinnamon/issues/7107
Redirected to freedesktop/fontconfig.
Lenovo Yoga Carbon OLED, for example, has pixels that could be simplified as:
RB
GB
**Attachment 139058**, "Subpixel pattern for Lenovo OLED screens":
![oled_pattern](/uploads/6150843b277ff305e8656ef5a0bcf51f/oled_pattern.png)https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/65Warn if config is wrong2018-08-20T21:49:03ZBugzilla Migration UserWarn if config is wrong## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#82582)](https://bugs.freedesktop.org/show_bug.cgi?id=82582)**
## Description
I know we don't do full xml validation against the DTD, but at l...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#82582)](https://bugs.freedesktop.org/show_bug.cgi?id=82582)**
## Description
I know we don't do full xml validation against the DTD, but at least, we should be able to catch many nonsensical configs, for example, someone trying this:
`<match target="font">`
`<or>`
`<test name="family" compare="contains">`
`<string>`MYingHeiB5HK`</string>`
`</test>`
`<test name="family" compare="contains">`
`<string>`MYingHeiGB18030`</string>`
`</test>`
`<test name="family" compare="contains">`
`<string>`MSung GB18030`</string>`
`</test>`
`<test name="family" compare="contains">`
`<string>`MSung B5HK`</string>`
`</test>`
`</or>`
<!-- Turn on light auto-hint -->
<!-- Turn off sub-pixel anti-aliasing -->
`<edit name="hinting" mode="assign">``<bool>`true`</bool>``</edit>`
`<edit name="autohint" mode="assign">``<bool>`true`</bool>``</edit>`
`<edit name="hintstyle" mode="assign">``<const>`hintslight`</const>``</edit>`
`<edit name="antialias" mode="assign">``<bool>`true`</bool>``</edit>`
`<edit name="rgba" mode="assign">``<const>`none`</const>``</edit>`
`</match>`
The problem is, `<or>` doesn't go in `<match>`, and `<test>` doesn't go in `<or>`. It just edits the pattern unconditionally!
I *think* the correct way to write it is:
`<match target="font">`
`<test name="family" compare="contains">`
`<or>`
`<string>`MYingHeiB5HK`</string>`
`<string>`MYingHeiGB18030`</string>`
`<string>`MSung GB18030`</string>`
`<string>`MSung B5HK`</string>`
`</or>`
`</test>`
I hear in the past (with 2.7.x), this used to work:
`<match target="font">`
`<test name="family" compare="contains">`
`<string>`MYingHeiB5HK`</string>`
`<string>`MYingHeiGB18030`</string>`
`<string>`MSung GB18030`</string>`
`<string>`MSung B5HK`</string>`
`</test>`
<!-- Turn on light auto-hint -->
<!-- Turn off sub-pixel anti-aliasing -->
`<edit name="hinting" mode="assign">``<bool>`true`</bool>``</edit>`
`<edit name="autohint" mode="assign">``<bool>`true`</bool>``</edit>`
`<edit name="hintstyle" mode="assign">``<const>`hintslight`</const>``</edit>`
`<edit name="antialias" mode="assign">``<bool>`true`</bool>``</edit>`
`<edit name="rgba" mode="assign">``<const>`none`</const>``</edit>`
`</match>`
but with 2.11.x started warning about multiple strings in `<test>`...https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/69RFE: native build support on MSVC2019-06-20T09:22:19ZBugzilla Migration UserRFE: native build support on MSVC## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#56381)](https://bugs.freedesktop.org/show_bug.cgi?id=56381)**
## Description
just to keep it in mind...
there has been two proposals po...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#56381)](https://bugs.freedesktop.org/show_bug.cgi?id=56381)**
## Description
just to keep it in mind...
there has been two proposals posted to the list. one is from Pavel Koshevoy:
http://lists.freedesktop.org/archives/fontconfig/2012-October/004425.html
one is from Dos Santos, Oliveira:
http://lists.freedesktop.org/archives/fontconfig/2012-October/004436.htmlhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/73Preserve binding when preparing patterns2018-08-20T21:49:46ZBugzilla Migration UserPreserve binding when preparing patterns## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#90330)](https://bugs.freedesktop.org/show_bug.cgi?id=90330)**
## Description
In FcFontRenderPrepare(), matching values are always added with ...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#90330)](https://bugs.freedesktop.org/show_bug.cgi?id=90330)**
## Description
In FcFontRenderPrepare(), matching values are always added with binding=strong. If we change that to retain the binding of the matched value and also add API to get binding, then we can have a recommended way to determine whether font fallback happened.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/77Code obfuscation results in memory leaks reported by Valgrind, AddressSanitizer2021-10-25T20:32:16ZBugzilla Migration UserCode obfuscation results in memory leaks reported by Valgrind, AddressSanitizer## Submitted by Zoltán Böszörményi
Assigned to **fon..@..op.org**
**[Link to original bug (#96535)](https://bugs.freedesktop.org/show_bug.cgi?id=96535)**
## Description
Fontconfig uses pointer arithmetics to compute the distance f...## Submitted by Zoltán Böszörményi
Assigned to **fon..@..op.org**
**[Link to original bug (#96535)](https://bugs.freedesktop.org/show_bug.cgi?id=96535)**
## Description
Fontconfig uses pointer arithmetics to compute the distance from an object base pointer to a member structure and the result is stored in intptr_t type members.
This causes reported memory leaks in fontconfig in applications compiled with GCC's AddressSanitizer and Valgrind, too.
The fact that the size of intptr_t always equals to the size of a pointer makes this whole thing look like code obfuscation.
It also slows down the code slightly. Pointer arithmetics and storing the result is always slower than just storing the pointer value.
The amount of reported memory leaks in AddressSanitizer is so much that it makes genuine debugging hard, like searching for a needle in a haystack.
Please, use real pointers instead of intptr_t.
Version: 2.11https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/80moving matcher definition schemas into external resources2018-08-20T21:50:36ZBugzilla Migration Usermoving matcher definition schemas into external resources## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#68043)](https://bugs.freedesktop.org/show_bug.cgi?id=68043)**
## Description
That would be good to have matcher definition schemas in th...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#68043)](https://bugs.freedesktop.org/show_bug.cgi?id=68043)**
## Description
That would be good to have matcher definition schemas in the configuration, including the type of value and the priority of matcher. this would allows users to add the own objects for evaluation to be matched.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/82Language bindings...2022-02-12T22:41:52ZBugzilla Migration UserLanguage bindings...## Submitted by Behdad Esfahbod
Assigned to **Akira TAGOH `@tagoh`**
**[Link to original bug (#90274)](https://bugs.freedesktop.org/show_bug.cgi?id=90274)**
## Description
Perhaps using gobject-introspection, like we do in HarfBuz...## Submitted by Behdad Esfahbod
Assigned to **Akira TAGOH `@tagoh`**
**[Link to original bug (#90274)](https://bugs.freedesktop.org/show_bug.cgi?id=90274)**
## Description
Perhaps using gobject-introspection, like we do in HarfBuzz...
G-I sucks for non-GObject projects though; a SWIG or even ctypes alternative might be easier. Not sure. Just filing the request for now.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/85Make it build with MSVC2018-08-20T21:50:57ZBugzilla Migration UserMake it build with MSVC## Submitted by Ignacio Casal Quinteiro
Assigned to **fon..@..op.org**
**[Link to original bug (#97237)](https://bugs.freedesktop.org/show_bug.cgi?id=97237)**
## Description
On our downstream gtk-win32 project we are maintaining a...## Submitted by Ignacio Casal Quinteiro
Assigned to **fon..@..op.org**
**[Link to original bug (#97237)](https://bugs.freedesktop.org/show_bug.cgi?id=97237)**
## Description
On our downstream gtk-win32 project we are maintaining a patch for quite a while already to make it build with MSVC. It would be great if somebody could take the interesting parts from it and push it upstream:
https://github.com/wingtk/gtk-win32/blob/master/fontconfig/fontconfig.patchhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/90FIR filters with custom constants from fontconfig2019-07-25T05:16:11ZBugzilla Migration UserFIR filters with custom constants from fontconfig## Submitted by Robin Johnson
Assigned to **fon..@..op.org**
**[Link to original bug (#27386)](https://bugs.freedesktop.org/show_bug.cgi?id=27386)**
## Description
There have been a number of subjective patches around for altering...## Submitted by Robin Johnson
Assigned to **fon..@..op.org**
**[Link to original bug (#27386)](https://bugs.freedesktop.org/show_bug.cgi?id=27386)**
## Description
There have been a number of subjective patches around for altering the FIR constants used in ./freetype-2.3.12/src/base/ftlcdfil.c
I've seen at least 4 different sets of values:
light: { 0, 85, 86, 85, 0 }
default: { 0x10, 0x40, 0x70, 0x40, 0x10 }
gentoo-bug306053:{ 0x1C, 0x38, 0x55, 0x38, 0x1C }
russian forum: {8, 28, 100, 80, 40};
Here was the Gentoo bug:
http://bugs.gentoo.org/show_bug.cgi?id=306053
We told the user to take it upstream, he never did, but it came up again.
Here's the google cache of Russian forum post, as the original seems to have gone:
http://tinyurl.com/yl5kyup
Can we please introduce a way to set the constants from fontconfig, and let the users duke it out amongst themselves?
Version: 2.8https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/93Support for sFamilyClass font attribute to allow searching by serif style2018-08-20T21:51:56ZBugzilla Migration UserSupport for sFamilyClass font attribute to allow searching by serif style## Submitted by Eric Wasylishen
Assigned to **Akira TAGOH `@tagoh`**
**[Link to original bug (#29497)](https://bugs.freedesktop.org/show_bug.cgi?id=29497)**
## Description
The OpenType spec has a field called sFamilyClass in the r...## Submitted by Eric Wasylishen
Assigned to **Akira TAGOH `@tagoh`**
**[Link to original bug (#29497)](https://bugs.freedesktop.org/show_bug.cgi?id=29497)**
## Description
The OpenType spec has a field called sFamilyClass in the required OS/2 table, which allows the font designer to classify the font based on a "family class" (e.g. serif, sans-serif) and "family subclass" (e.g. modern, old style).
See:
http://www.microsoft.com/typography/otspec/os2.htm#fc
and:
http://www.microsoft.com/typography/otspec/ibmfc.htm
It would be really nice if Fontconfig read this field from fonts and allowed searching based on it (probably treating it as two separate fields: maybe FC_FAMILY_CLASS and FC_FAMILY_SUBCLASS?)
In my opinion, this kind of classification would be really useful to present to users for choosing fonts. I would be happy to write a patch if you think this is a good idea.. :-)
Version: 2_1
### Blocking
* [Bug 30225](https://bugs.freedesktop.org/show_bug.cgi?id=30225)https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/94FcConfigReinitialize loses all config settings2018-08-20T21:52:06ZBugzilla Migration UserFcConfigReinitialize loses all config settings## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#17123)](https://bugs.freedesktop.org/show_bug.cgi?id=17123)**
## Description
AppFonts, EnableHome, RescanInterval.
It should copy them from o...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#17123)](https://bugs.freedesktop.org/show_bug.cgi?id=17123)**
## Description
AppFonts, EnableHome, RescanInterval.
It should copy them from old config to new config for the least.
Version: 2.4https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/97Support variation selectors2018-08-20T21:52:22ZBugzilla Migration UserSupport variation selectors## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#82266)](https://bugs.freedesktop.org/show_bug.cgi?id=82266)**
## Description
I think can support this internally by including a unicode,selec...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#82266)](https://bugs.freedesktop.org/show_bug.cgi?id=82266)**
## Description
I think can support this internally by including a unicode,selector pair as (selector<<21)|unicode value in the charset, but provide new API to the charset for querying. Or maybe expose that convention all the way to the API. Here's some code to that extent:
unsigned int var_num = 0;
if (variation_selector - 0xFE00u < 16)
var_num = variation_selector - 0xFE00 + 1;
else if (variation_selector - 0xE0100u < (256 - 16))
var_num = variation_selector - 0xE0100 + 17;
unicode = (var_num << 21) | unicode;
Note that currently FcCharSetPutLeaf has:
ucs4 >>= 8;
if (ucs4 >= 0x10000)
return FcFalse;
so the top byte of the ucs4 has been unused. Unfortunately the top byte is not enough as there are 256 values to fit, not 255 :(.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/98Config format (and api?) to define virtual families2018-08-20T21:52:25ZBugzilla Migration UserConfig format (and api?) to define virtual families## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#90428)](https://bugs.freedesktop.org/show_bug.cgi?id=90428)**
## Description
Right now we recognize sans-serif, serif, monospace, fantasy, an...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#90428)](https://bugs.freedesktop.org/show_bug.cgi?id=90428)**
## Description
Right now we recognize sans-serif, serif, monospace, fantasy, and cursive but user has to know that. Would be nice to allow defining those formally, and let user define more.
That would be useful for a font-manager kind of scenario, where one can define new virtual families and add multiple fonts as a stack to it.
The latter can be done using existing configuration facilities (mostly), so the part missing is just making it appear in FcFontList() output.
No idea what the config / API for this should look like.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/99RFE: subpixel hinting support2018-08-20T21:52:28ZBugzilla Migration UserRFE: subpixel hinting support## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#51212)](https://bugs.freedesktop.org/show_bug.cgi?id=51212)**
## Description
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/com...## Submitted by Akira TAGOH `@tagoh`
Assigned to **fon..@..op.org**
**[Link to original bug (#51212)](https://bugs.freedesktop.org/show_bug.cgi?id=51212)**
## Description
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=79e36baebba4532dff92ca1ca43c4dc2f779fd32https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/100Add way to FcNameUnparse to specify weak binding?2018-08-20T21:52:32ZBugzilla Migration UserAdd way to FcNameUnparse to specify weak binding?## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#103727)](https://bugs.freedesktop.org/show_bug.cgi?id=103727)**
## Description
Would be nice. Right now there's no way to generate patterns ...## Submitted by Behdad Esfahbod
Assigned to **fon..@..op.org**
**[Link to original bug (#103727)](https://bugs.freedesktop.org/show_bug.cgi?id=103727)**
## Description
Would be nice. Right now there's no way to generate patterns with weak bindings from command-line.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/103Merge some optimisation works by Michal Srb?2019-12-04T05:54:59ZBugzilla Migration UserMerge some optimisation works by Michal Srb?## Submitted by Mingcong Bai
Assigned to **fon..@..op.org**
**[Link to original bug (#105102)](https://bugs.freedesktop.org/show_bug.cgi?id=105102)**
## Description
First described in his paper ¹ to optimise various fontconfig alg...## Submitted by Mingcong Bai
Assigned to **fon..@..op.org**
**[Link to original bug (#105102)](https://bugs.freedesktop.org/show_bug.cgi?id=105102)**
## Description
First described in his paper ¹ to optimise various fontconfig algorithms, his work ² has proven to be beneficial especially with LibreOffice. With current 2.12.6 it is practically impossible to scroll through the font listing when a full set of Noto and Noto CJK fonts are installed, scrolling can cause the UI to lock up for more than a second which practically destroys the user experience.
With patches generated from his work - applied upon 2.12.6, this issue has gone away. I was trying to test https://bugs.freedesktop.org/show_bug.cgi?id=105085 with 2.12.92, however, these patches would no longer apply to the newest code, as extensive API changes were made - it would be a shame to waste all these optimisation works...
--------
¹ https://www.theseus.fi/bitstream/handle/10024/124694/Srb_Michal.pdf?sequence=1
² https://github.com/michalsrb/fontconfig
Version: 2.12https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/104Enhance fontconfig to render Microsoft fonts better2018-08-20T21:55:44ZBugzilla Migration UserEnhance fontconfig to render Microsoft fonts better## Submitted by Charles
Assigned to **fon..@..op.org**
**[Link to original bug (#7662)](https://bugs.freedesktop.org/show_bug.cgi?id=7662)**
## Description
You could incorporate these enhancements into fontconfig:
http://www.ubunt...## Submitted by Charles
Assigned to **fon..@..op.org**
**[Link to original bug (#7662)](https://bugs.freedesktop.org/show_bug.cgi?id=7662)**
## Description
You could incorporate these enhancements into fontconfig:
http://www.ubuntuforums.org/showthread.php?t=208396
Many people have asked for it on the Internet, and these configurations don't
affect regular fonts rendering so that everybody's happy :)
Version: 2_1
### Blocking
* [Bug 8100](https://bugs.freedesktop.org/show_bug.cgi?id=8100)https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/106RFE: allow merging of legacy font family names2019-12-08T10:46:35ZBugzilla Migration UserRFE: allow merging of legacy font family names## Submitted by Nicolas Mailhot
Assigned to **fon..@..op.org**
**[Link to original bug (#18725)](https://bugs.freedesktop.org/show_bug.cgi?id=18725)**
## Description
Historically font formats only allowed four faces regular, bold,...## Submitted by Nicolas Mailhot
Assigned to **fon..@..op.org**
**[Link to original bug (#18725)](https://bugs.freedesktop.org/show_bug.cgi?id=18725)**
## Description
Historically font formats only allowed four faces regular, bold, italic, bold italic. You had to use a separate font family to distribute condensed, heavy etc variants
This has changed (cf http://blogs.msdn.com/text/attachment/2249036.ashx ) and modern fonts such as DejaVu include all faces under a single family name. Applications such as OO.o are being fixed to handle multifaced fonts
Unfortunately there are still many historic fonts in the wild distributed in several sets of four faces (gs fonts, arial narrow, arial bold, etc). Those fonts currently appear under different family names in fontconfig-using apps. This is perturbing to users, since the same faces of historic and modern fonts are not handled the same way. Microsoft did some sort of magic in uniscribe to hide this distinction (irrelevant to users).
Please provide a documented config pattern for font distributors that enables them to declare to fontconfig "font family A and font family B are the same, please expose all the associated faces under A name to users".
(of course an application asking explicitely for B should still get it, but users would only see A in font lists)
Version: 2.6