summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2018-07-17 21:45:24 +0200
committerWerner Lemberg <wl@gnu.org>2018-07-17 21:45:24 +0200
commit8f09eb5ce0260aa17f93b2ccefb4bae347ca79fc (patch)
tree5704446fffefa47a8a4e9cd05528495485f9083a
parent9e69987aaada5f2eeccc4fe3a9890a2b10b874ea (diff)
downloadfreetype2-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--ChangeLog9
-rw-r--r--include/freetype/freetype.h3
-rw-r--r--src/base/ftobjs.c5
3 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 2ff61822d..8662cf929 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;
}
}