[cid] Improve tracing messages; formatting.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
diff --git a/include/freetype/internal/ftdrv.h b/include/freetype/internal/ftdrv.h
index f78912c..9001c07 100644
--- a/include/freetype/internal/ftdrv.h
+++ b/include/freetype/internal/ftdrv.h
@@ -157,6 +157,7 @@ FT_BEGIN_HEADER
* A handle to a function used to select a new fixed size. It is used
* only if @FT_FACE_FLAG_FIXED_SIZES is set. Can be set to 0 if the
* scaling done in the base layer suffices.
+ *
* @note:
* Most function pointers, with the exception of `load_glyph`, can be set
* to 0 to indicate a default behaviour.
diff --git a/src/cid/cidgload.c b/src/cid/cidgload.c
index babaf95..0e6a7ad 100644
--- a/src/cid/cidgload.c
+++ b/src/cid/cidgload.c
@@ -41,35 +41,36 @@
/*
- * A helper function to compute FD number (fd_select),
- * the offset to the head of the glyph data (off1),
- * and the offset to the and of the glyph data (off2).
+ * A helper function to compute FD number (`fd_select`), the offset to the
+ * head of the glyph data (`off1`), and the offset to the and of the glyph
+ * data (`off2`).
*
- * The number how many times cid_get_offset() is invoked
- * can be controlled by the number how many non-NULL
- * arguments are given. If fd_select is non-NULL but
- * off1 and off2 are NULL, cid_get_offset() is invoked
- * only for fd_select, off1/off2 are not validated.
+ * The number how many times `cid_get_offset` is invoked can be controlled
+ * by the number of non-NULL arguments. If `fd_select` is non-NULL but
+ * `off1` and `off2` are NULL, `cid_get_offset` is invoked only for
+ * `fd_select`; `off1` and `off2` are not validated.
*
*/
FT_LOCAL_DEF( FT_Error )
- cid_compute_fd_and_offsets( CID_Face face,
- FT_UInt glyph_index,
- FT_ULong* fd_select_p,
- FT_ULong* off1_p,
- FT_ULong* off2_p )
+ cid_compute_fd_and_offsets( CID_Face face,
+ FT_UInt glyph_index,
+ FT_ULong* fd_select_p,
+ FT_ULong* off1_p,
+ FT_ULong* off2_p )
{
- FT_Error error = FT_Err_Ok;
- CID_FaceInfo cid = &face->cid;
- FT_Stream stream = face->cid_stream;
+ FT_Error error = FT_Err_Ok;
+
+ CID_FaceInfo cid = &face->cid;
+ FT_Stream stream = face->cid_stream;
FT_UInt entry_len = cid->fd_bytes + cid->gd_bytes;
- FT_Byte* p;
- FT_Bool need_frame_exit = 0;
- FT_ULong fd_select, off1, off2;
+
+ FT_Byte* p;
+ FT_Bool need_frame_exit = 0;
+ FT_ULong fd_select, off1, off2;
- /* For ordinary fonts read the CID font dictionary index */
- /* and charstring offset from the CIDMap. */
+ /* For ordinary fonts, read the CID font dictionary index */
+ /* and charstring offset from the CIDMap. */
if ( FT_STREAM_SEEK( cid->data_offset + cid->cidmap_offset +
glyph_index * entry_len ) ||
@@ -78,20 +79,18 @@
need_frame_exit = 1;
- p = (FT_Byte*)stream->cursor;
+ p = (FT_Byte*)stream->cursor;
fd_select = cid_get_offset( &p, cid->fd_bytes );
off1 = cid_get_offset( &p, cid->gd_bytes );
- p += cid->fd_bytes;
- off2 = cid_get_offset( &p, cid->gd_bytes );
+ p += cid->fd_bytes;
+ off2 = cid_get_offset( &p, cid->gd_bytes );
- if (fd_select_p)
+ if ( fd_select_p )
*fd_select_p = fd_select;
-
- if (off1_p)
+ if ( off1_p )
*off1_p = off1;
-
- if (off2_p)
+ if ( off2_p )
*off2_p = off2;
if ( fd_select >= cid->num_dicts )
@@ -101,36 +100,46 @@
* has no charstring to be rendered, similar to GID = 0xFFFF
* in TrueType fonts.
*/
- if ( (cid->fd_bytes == 1 && fd_select == 0xFFU ) ||
- (cid->fd_bytes == 2 && fd_select == 0xFFFFU ) )
+ if ( ( cid->fd_bytes == 1 && fd_select == 0xFFU ) ||
+ ( cid->fd_bytes == 2 && fd_select == 0xFFFFU ) )
{
- FT_TRACE1(( "cid_load_glyph: fail for glyph_index=%d, "
- "FD number %ld is the max integer fitting into %d byte%s\n",
- glyph_index, fd_select, cid->fd_bytes,
- cid->fd_bytes == 1 ? "" : "s" ));
+ FT_TRACE1(( "cid_load_glyph: fail for glyph index %d:\n",
+ glyph_index ));
+ FT_TRACE1(( " FD number %ld is the maximum\n",
+ fd_select ));
+ FT_TRACE1(( " integer fitting into %d byte%s\n",
+ cid->fd_bytes, cid->fd_bytes == 1 ? "" : "s" ));
}
else
{
- FT_TRACE0(( "cid_load_glyph: fail for glyph_index=%d, "
- "FD number %ld > number of dicts %d\n",
- glyph_index, fd_select, cid->num_dicts ));
+ FT_TRACE0(( "cid_load_glyph: fail for glyph index %d:\n",
+ glyph_index ));
+ FT_TRACE0(( " FD number %ld is larger\n",
+ fd_select ));
+ FT_TRACE0(( " than number of dictionaries (%d)\n",
+ cid->num_dicts ));
}
+
error = FT_THROW( Invalid_Offset );
goto Exit;
}
else if ( off2 > stream->size )
{
- FT_TRACE0(( "cid_load_glyph: fail for glyph_index=%d, "
- "end of the glyph data is beyond the data stream\n",
+ FT_TRACE0(( "cid_load_glyph: fail for glyph index %d:\n",
glyph_index ));
+ FT_TRACE0(( " end of the glyph data\n" ));
+ FT_TRACE0(( " is beyond the data stream\n" ));
+
error = FT_THROW( Invalid_Offset );
goto Exit;
}
else if ( off1 > off2 )
{
- FT_TRACE0(( "cid_load_glyph: fail for glyph_index=%d, "
- "the end position of glyph data is set before the start position\n",
+ FT_TRACE0(( "cid_load_glyph: fail for glyph index %d:\n",
glyph_index ));
+ FT_TRACE0(( " the end position of glyph data\n" ));
+ FT_TRACE0(( " is set before the start position\n" ));
+
error = FT_THROW( Invalid_Offset );
}
diff --git a/src/cid/cidriver.c b/src/cid/cidriver.c
index 10cb8c1..9669eb7 100644
--- a/src/cid/cidriver.c
+++ b/src/cid/cidriver.c
@@ -153,16 +153,13 @@
/*
- * Currently, FreeType does not support an incrementally-
- * defined CID-keyed font that stores the glyph description
- * data in /GlyphDirectory array or dictionary.
- * Thus the font loaded by the incremental loading feature
- * is not handled in here.
+ * Currently, FreeType does not support incrementally-defined, CID-keyed
+ * fonts that store the glyph description data in a `/GlyphDirectory`
+ * array or dictionary. Fonts loaded by the incremental loading feature
+ * are thus not handled here.
*/
error = cid_compute_fd_and_offsets( face, glyph_index,
NULL, NULL, NULL );
-
-
if ( error )
*cid = 0;
else