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...
This commit is contained in:
Keith Packard 2004-02-07 07:13:48 +00:00
parent f4c52909ab
commit b68b96464f
4 changed files with 85 additions and 12 deletions

View File

@ -1,3 +1,21 @@
2004-02-06 Keith Packard <keithp@keithp.com>
* fc-lang/nds.orth:
Add Low Saxon orthography
(Kenneth Rohde Christiansen <kenneth@gnu.org>)
* src/fccfg.c: (FcConfigNewestFile):
Oops. Left 'newest.set' unset, which would miscompute
the newest file
* src/fcfreetype.c: (FcGetPixelSize), (FcFreeTypeQuery),
(FcFreeTypeCheckGlyph):
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-01 Tor Lillqvist <tml@iki.fi> 2004-02-01 Tor Lillqvist <tml@iki.fi>
* src/fccfg.c (FcConfigCreate): fontconfig, at least as used by * src/fccfg.c (FcConfigCreate): fontconfig, at least as used by

40
fc-lang/nds.orth Normal file
View File

@ -0,0 +1,40 @@
#
# $RCSId: xc/lib/fontconfig/fc-lang/de.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
#
# Copyright © 2004 Keith Packard
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of Keith Packard not be used in
# advertising or publicity pertaining to distribution of the software without
# specific, written prior permission. Keith Packard makes no
# representations about the suitability of this software for any purpose. It
# is provided "as is" without express or implied warranty.
#
# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
# Low Saxon (NDS)
#
# Sources:
# Kenneth Rohde Christiansen <kenneth@gnu.org>
# ANS -
# Algemeyne Neddersassische Schryvwys' (DE)
# Algemeyne Nedersaksische Schryvwyse (NL)
#
0041-005a # LATIN CAPITAL LETTER A through Z
0061-007a # LATIN SMALL LETTER A through Z
00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
00DF # LATIN SMALL LETTER SHARP S (German)
00E4 # LATIN SMALL LETTER A WITH DIAERESIS
00F6 # LATIN SMALL LETTER O WITH DIAERESIS
00FC # LATIN SMALL LETTER U WITH DIAERESIS

View File

@ -145,7 +145,10 @@ FcConfigNewestFile (FcStrSet *files)
while ((file = FcStrListNext (list))) while ((file = FcStrListNext (list)))
if (stat ((char *) file, &statb) == 0) if (stat ((char *) file, &statb) == 0)
if (!newest.set || statb.st_mtime - newest.time > 0) if (!newest.set || statb.st_mtime - newest.time > 0)
{
newest.set = FcTrue;
newest.time = statb.st_mtime; newest.time = statb.st_mtime;
}
FcStrListDone (list); FcStrListDone (list);
} }
return newest; return newest;

View File

@ -344,6 +344,23 @@ static const FcStringConst slantConsts[] = {
#define FcIsSlant(s) FcStringIsConst(s,slantConsts,NUM_SLANT_CONSTS) #define FcIsSlant(s) FcStringIsConst(s,slantConsts,NUM_SLANT_CONSTS)
#define FcContainsSlant(s) FcStringContainsConst (s,slantConsts,NUM_SLANT_CONSTS) #define FcContainsSlant(s) FcStringContainsConst (s,slantConsts,NUM_SLANT_CONSTS)
static double
FcGetPixelSize (FT_Face face, int i)
{
#ifdef HAVE_FT_GET_BDF_PROPERTY
if (face->num_fixed_sizes == 1)
{
BDF_PropertyRec prop;
int rc;
rc = MY_Get_BDF_Property (face, "PIXEL_SIZE", &prop);
if (rc == 0 && prop.type == BDF_PROPERTY_TYPE_INTEGER)
return (double) prop.u.integer;
}
#endif
return (double) face->available_sizes[i].y_ppem / 64.0;
}
FcPattern * FcPattern *
FcFreeTypeQuery (const FcChar8 *file, FcFreeTypeQuery (const FcChar8 *file,
int id, int id,
@ -991,7 +1008,7 @@ FcFreeTypeQuery (const FcChar8 *file,
{ {
for (i = 0; i < face->num_fixed_sizes; i++) for (i = 0; i < face->num_fixed_sizes; i++)
if (!FcPatternAddDouble (pat, FC_PIXEL_SIZE, if (!FcPatternAddDouble (pat, FC_PIXEL_SIZE,
(double) face->available_sizes[i].height)) FcGetPixelSize (face, i)))
goto bail1; goto bail1;
if (!FcPatternAddBool (pat, FC_ANTIALIAS, FcFalse)) if (!FcPatternAddBool (pat, FC_ANTIALIAS, FcFalse))
goto bail1; goto bail1;
@ -1001,17 +1018,6 @@ FcFreeTypeQuery (const FcChar8 *file,
int value; int value;
BDF_PropertyRec prop; BDF_PropertyRec prop;
rc = MY_Get_BDF_Property(face, "PIXEL_SIZE", &prop);
if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_INTEGER)
value = prop.u.integer;
else if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_CARDINAL)
value = prop.u.cardinal;
else
goto nevermind;
if(value != face->available_sizes[0].height)
/* ``impossible'' */
goto nevermind;
rc = MY_Get_BDF_Property(face, "POINT_SIZE", &prop); rc = MY_Get_BDF_Property(face, "POINT_SIZE", &prop);
if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_INTEGER) if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_INTEGER)
value = prop.u.integer; value = prop.u.integer;
@ -1760,6 +1766,12 @@ FcFreeTypeCheckGlyph (FT_Face face, FcChar32 ucs4,
FT_Int load_flags = FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING; FT_Int load_flags = FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
FT_GlyphSlot slot; FT_GlyphSlot slot;
/*
* For bitmap-only fonts, assume that they're OK.
*/
if ((face->face_flags & FT_FACE_FLAG_SCALABLE) == 0)
return FcTrue;
/* /*
* When using scalable fonts, only report those glyphs * When using scalable fonts, only report those glyphs
* which can be scaled; otherwise those fonts will * which can be scaled; otherwise those fonts will