summaryrefslogtreecommitdiff
path: root/core/src/fxge/freetype/fx_freetype.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/fxge/freetype/fx_freetype.c')
-rw-r--r--core/src/fxge/freetype/fx_freetype.c67
1 files changed, 27 insertions, 40 deletions
diff --git a/core/src/fxge/freetype/fx_freetype.c b/core/src/fxge/freetype/fx_freetype.c
index 1ff2cc6d62..a3f092284a 100644
--- a/core/src/fxge/freetype/fx_freetype.c
+++ b/core/src/fxge/freetype/fx_freetype.c
@@ -8,8 +8,10 @@
#include "third_party/freetype/src/psnames/pstables.h"
-static int xyq_search_node(char* glyph_name, int name_offset, int table_offset, wchar_t unicode)
-{
+static int xyq_search_node(char* glyph_name,
+ int name_offset,
+ int table_offset,
+ wchar_t unicode) {
int i, count;
// copy letters
@@ -26,20 +28,21 @@ static int xyq_search_node(char* glyph_name, int name_offset, int table_offset,
// check if we have value for this node
if (ft_adobe_glyph_list[table_offset] & 0x80) {
- unsigned short thiscode = ft_adobe_glyph_list[table_offset + 1] * 256 + ft_adobe_glyph_list[table_offset + 2];
- if (thiscode == (unsigned short)unicode) // found it!
- return 1;
- table_offset += 3;
+ unsigned short thiscode = ft_adobe_glyph_list[table_offset + 1] * 256 +
+ ft_adobe_glyph_list[table_offset + 2];
+ if (thiscode == (unsigned short)unicode)
+ return 1;
+ table_offset += 3;
+ } else {
+ table_offset++;
}
- else
- table_offset++;
// now search in sub-nodes
if (count == 0) return 0;
for (i = 0; i < count; i++) {
- int child_offset = ft_adobe_glyph_list[table_offset + i * 2] * 256 + ft_adobe_glyph_list[table_offset + i * 2 + 1];
+ int child_offset = ft_adobe_glyph_list[table_offset + i * 2] * 256 +
+ ft_adobe_glyph_list[table_offset + i * 2 + 1];
if (xyq_search_node(glyph_name, name_offset, child_offset, unicode))
- // found in child
return 1;
}
return 0;
@@ -47,14 +50,10 @@ static int xyq_search_node(char* glyph_name, int name_offset, int table_offset,
#define VARIANT_BIT 0x80000000UL
-int FXFT_unicode_from_adobe_name(const char* glyph_name)
-{
+int FXFT_unicode_from_adobe_name(const char* glyph_name) {
/* If the name begins with `uni', then the glyph name may be a */
/* hard-coded unicode character code. */
- if (glyph_name[0] == 'u' &&
- glyph_name[1] == 'n' &&
- glyph_name[2] == 'i')
- {
+ if (glyph_name[0] == 'u' && glyph_name[1] == 'n' && glyph_name[2] == 'i') {
/* determine whether the next four characters following are */
/* hexadecimal. */
@@ -65,16 +64,13 @@ int FXFT_unicode_from_adobe_name(const char* glyph_name)
FT_UInt32 value = 0;
const char* p = glyph_name + 3;
-
- for (count = 4; count > 0; count--, p++)
- {
+ for (count = 4; count > 0; count--, p++) {
char c = *p;
unsigned int d;
d = (unsigned char)c - '0';
- if (d >= 10)
- {
+ if (d >= 10) {
d = (unsigned char)c - 'A';
if (d >= 6)
d = 16;
@@ -92,8 +88,7 @@ int FXFT_unicode_from_adobe_name(const char* glyph_name)
}
/* there must be exactly four hex digits */
- if (count == 0)
- {
+ if (count == 0) {
if (*p == '\0')
return value;
if (*p == '.')
@@ -103,22 +98,18 @@ int FXFT_unicode_from_adobe_name(const char* glyph_name)
/* If the name begins with `u', followed by four to six uppercase */
/* hexadecimal digits, it is a hard-coded unicode character code. */
- if (glyph_name[0] == 'u')
- {
+ if (glyph_name[0] == 'u') {
FT_Int count;
FT_UInt32 value = 0;
const char* p = glyph_name + 1;
-
- for (count = 6; count > 0; count--, p++)
- {
+ for (count = 6; count > 0; count--, p++) {
char c = *p;
unsigned int d;
d = (unsigned char)c - '0';
- if (d >= 10)
- {
+ if (d >= 10) {
d = (unsigned char)c - 'A';
if (d >= 6)
d = 16;
@@ -132,8 +123,7 @@ int FXFT_unicode_from_adobe_name(const char* glyph_name)
value = (value << 4) + d;
}
- if (count <= 2)
- {
+ if (count <= 2) {
if (*p == '\0')
return value;
if (*p == '.')
@@ -147,11 +137,8 @@ int FXFT_unicode_from_adobe_name(const char* glyph_name)
const char* p = glyph_name;
const char* dot = NULL;
-
- for (; *p; p++)
- {
- if (*p == '.' && p > glyph_name)
- {
+ for (; *p; p++) {
+ if (*p == '.' && p > glyph_name) {
dot = p;
break;
}
@@ -166,14 +153,14 @@ int FXFT_unicode_from_adobe_name(const char* glyph_name)
}
}
-void FXFT_adobe_name_from_unicode(char* glyph_name, wchar_t unicode)
-{
+void FXFT_adobe_name_from_unicode(char* glyph_name, wchar_t unicode) {
int i, count;
// start from top level node
count = ft_adobe_glyph_list[1];
for (i = 0; i < count; i++) {
- int child_offset = ft_adobe_glyph_list[i * 2 + 2] * 256 + ft_adobe_glyph_list[i * 2 + 3];
+ int child_offset =
+ ft_adobe_glyph_list[i * 2 + 2] * 256 + ft_adobe_glyph_list[i * 2 + 3];
if (xyq_search_node(glyph_name, 0, child_offset, unicode))
return;
}