Include space and remove numbers from valid script tags. This ensures that
tags like 'lao ' work while rejecting those which have any digits. Eliminate a spurious debugging variable (len)
This commit is contained in:
parent
219f7818da
commit
76a8dfa337
|
@ -1,3 +1,11 @@
|
||||||
|
2005-03-05 Keith Packard <keithp@keithp.com>
|
||||||
|
|
||||||
|
* src/fcfreetype.c: (addtag), (FcFontCapabilities):
|
||||||
|
Include space and remove numbers from valid script tags.
|
||||||
|
This ensures that tags like 'lao ' work while rejecting
|
||||||
|
those which have any digits.
|
||||||
|
Eliminate a spurious debugging variable (len)
|
||||||
|
|
||||||
2005-03-05 Keith Packard <keithp@keithp.com>
|
2005-03-05 Keith Packard <keithp@keithp.com>
|
||||||
|
|
||||||
* src/fcfreetype.c: (addtag), (GetScriptTags),
|
* src/fcfreetype.c: (addtag), (GetScriptTags),
|
||||||
|
|
|
@ -2649,8 +2649,13 @@ FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks)
|
||||||
/* space + head + id */
|
/* space + head + id */
|
||||||
#define OTLAYOUT_LEN (1 + OTLAYOUT_HEAD_LEN + OTLAYOUT_ID_LEN)
|
#define OTLAYOUT_LEN (1 + OTLAYOUT_HEAD_LEN + OTLAYOUT_ID_LEN)
|
||||||
|
|
||||||
#define FcIsNumber(x) (060 <= (x) && (x) <= 071)
|
/*
|
||||||
#define FcIsAlNum(x) (FcIsLower(x) || FcIsUpper (x) || FcIsNumber (x))
|
* This is a bit generous; the registry has only lower case and space
|
||||||
|
* except for 'DFLT'.
|
||||||
|
*/
|
||||||
|
#define FcIsSpace(x) (040 == (x))
|
||||||
|
#define FcIsValidScript(x) (FcIsLower(x) || FcIsUpper (x) || FcIsSpace(x))
|
||||||
|
|
||||||
static void
|
static void
|
||||||
addtag(FcChar8 *complex, FT_ULong tag)
|
addtag(FcChar8 *complex, FT_ULong tag)
|
||||||
{
|
{
|
||||||
|
@ -2662,13 +2667,13 @@ addtag(FcChar8 *complex, FT_ULong tag)
|
||||||
tagstring[3] = (FcChar8)(tag);
|
tagstring[3] = (FcChar8)(tag);
|
||||||
tagstring[4] = '\0';
|
tagstring[4] = '\0';
|
||||||
|
|
||||||
/* skip tags which aren't alphanumeric, under the assumption that
|
/* skip tags which aren't alphabetic, under the assumption that
|
||||||
* they're probably broken
|
* they're probably broken
|
||||||
*/
|
*/
|
||||||
if (!FcIsAlNum(tagstring[0]) ||
|
if (!FcIsValidScript(tagstring[0]) ||
|
||||||
!FcIsAlNum(tagstring[1]) ||
|
!FcIsValidScript(tagstring[1]) ||
|
||||||
!FcIsAlNum(tagstring[2]) ||
|
!FcIsValidScript(tagstring[2]) ||
|
||||||
!FcIsAlNum(tagstring[3]))
|
!FcIsValidScript(tagstring[3]))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (*complex != '\0')
|
if (*complex != '\0')
|
||||||
|
@ -2806,7 +2811,6 @@ FcFontCapabilities(FT_Face face)
|
||||||
strcpy(complex, "ttable:Silf ");
|
strcpy(complex, "ttable:Silf ");
|
||||||
|
|
||||||
while ((indx1 < gsub_count) || (indx2 < gpos_count)) {
|
while ((indx1 < gsub_count) || (indx2 < gpos_count)) {
|
||||||
int len = strlen (complex);
|
|
||||||
if (indx1 == gsub_count) {
|
if (indx1 == gsub_count) {
|
||||||
addtag(complex, gpostags[indx2]);
|
addtag(complex, gpostags[indx2]);
|
||||||
indx2++;
|
indx2++;
|
||||||
|
|
Loading…
Reference in New Issue