diff options
author | Werner Lemberg <wl@gnu.org> | 2018-07-17 21:45:24 +0200 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2018-07-17 21:45:24 +0200 |
commit | 8f09eb5ce0260aa17f93b2ccefb4bae347ca79fc (patch) | |
tree | 5704446fffefa47a8a4e9cd05528495485f9083a | |
parent | 9e69987aaada5f2eeccc4fe3a9890a2b10b874ea (diff) | |
download | freetype2-8f09eb5ce0260aa17f93b2ccefb4bae347ca79fc.tar.gz |
Allow FT_ENCODING_NONE for `FT_Select_Charmap'.
This is a valid encoding tag for BDF, PCF, and Windows FNT, and
there is no reason to disallow it for these formats.
* src/base/ftobjs.c (FT_Select_Charmap): Implement it.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | include/freetype/freetype.h | 3 | ||||
-rw-r--r-- | src/base/ftobjs.c | 5 |
3 files changed, 14 insertions, 3 deletions
@@ -1,5 +1,14 @@ 2018-07-17 Werner Lemberg <wl@gnu.org> + Allow FT_ENCODING_NONE for `FT_Select_Charmap'. + + This is a valid encoding tag for BDF, PCF, and Windows FNT, and + there is no reason to disallow it for these formats. + + * src/base/ftobjs.c (FT_Select_Charmap): Implement it. + +2018-07-17 Werner Lemberg <wl@gnu.org> + * src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'. 2018-07-16 Armin Hasitzka <prince.cherusker@gmail.com> diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h index b47b0e4b6..92a4b44f3 100644 --- a/include/freetype/freetype.h +++ b/include/freetype/freetype.h @@ -642,7 +642,8 @@ FT_BEGIN_HEADER * * @values: * FT_ENCODING_NONE :: - * The encoding value~0 is reserved. + * The encoding value~0 is reserved for all formats except BDF, PCF, + * and Windows FNT; see below for more information. * * FT_ENCODING_UNICODE :: * The Unicode character set. This value covers all versions of diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 4f237e23e..dfae22f4b 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -3480,7 +3480,8 @@ if ( !face ) return FT_THROW( Invalid_Face_Handle ); - if ( encoding == FT_ENCODING_NONE ) + /* FT_ENCODING_NONE is a valid encoding for BDF, PCF, and Windows FNT */ + if ( encoding == FT_ENCODING_NONE && !face->num_charmaps ) return FT_THROW( Invalid_Argument ); /* FT_ENCODING_UNICODE is special. We try to find the `best' Unicode */ @@ -3501,7 +3502,7 @@ if ( cur[0]->encoding == encoding ) { face->charmap = cur[0]; - return 0; + return FT_Err_Ok; } } |