[HarfBuzz] harfbuzz: Branch 'master' - 2 commits
Behdad Esfahbod
behdad at kemper.freedesktop.org
Mon May 18 18:38:14 PDT 2015
src/hb-ft.cc | 16 ++++++++++------
util/ansi-print.cc | 26 +++++++++++++-------------
2 files changed, 23 insertions(+), 19 deletions(-)
New commits:
commit 9df099b4837df722e738675af318efcc9ac39a78
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Mon May 18 18:37:06 2015 -0700
[ft] Don't set *glyph in get_glyph() if glyph not found
diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 322f93a..3d5cd63 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -75,15 +75,19 @@ hb_ft_get_glyph (hb_font_t *font HB_UNUSED,
void *user_data HB_UNUSED)
{
+ unsigned int g;
FT_Face ft_face = (FT_Face) font_data;
- if (unlikely (variation_selector)) {
- *glyph = FT_Face_GetCharVariantIndex (ft_face, unicode, variation_selector);
- return *glyph != 0;
- }
+ if (likely (!variation_selector))
+ g = FT_Get_Char_Index (ft_face, unicode);
+ else
+ g = FT_Face_GetCharVariantIndex (ft_face, unicode, variation_selector);
- *glyph = FT_Get_Char_Index (ft_face, unicode);
- return *glyph != 0;
+ if (unlikely (!g))
+ return false;
+
+ *glyph = g;
+ return true;
}
static hb_position_t
commit ff0f210519bcb0e44d4b986f7eef2004383cd344
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Mon May 18 14:16:28 2015 -0700
[util] Minor
diff --git a/util/ansi-print.cc b/util/ansi-print.cc
index 0fc3719..e9060af 100644
--- a/util/ansi-print.cc
+++ b/util/ansi-print.cc
@@ -222,11 +222,12 @@ struct biimage_t
};
const char *
-block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
+block_best (const biimage_t &bi, bool *inverse)
{
assert (bi.width <= CELL_W);
assert (bi.height <= CELL_H);
+ unsigned int score = (unsigned int) -1;
unsigned int row_sum[CELL_H] = {0};
unsigned int col_sum[CELL_W] = {0};
unsigned int row_sum_i[CELL_H] = {0};
@@ -262,14 +263,14 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
const char *best_c = " ";
/* Maybe empty is better! */
- if (total < *score) {
- *score = total;
+ if (total < score) {
+ score = total;
*inverse = false;
best_c = " ";
}
/* Maybe full is better! */
- if (total_i < *score) {
- *score = total_i;
+ if (total_i < score) {
+ score = total_i;
*inverse = true;
best_c = " ";
}
@@ -295,11 +296,11 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
best_inv = true;
}
}
- if (best_s < *score) {
+ if (best_s < score) {
static const char *lower[7] = {"▁", "▂", "▃", "▄", "▅", "▆", "▇"};
unsigned int which = lround (((best_i + 1) * 8) / bi.height);
if (1 <= which && which <= 7) {
- *score = best_s;
+ score = best_s;
*inverse = best_inv;
best_c = lower[7 - which];
}
@@ -327,11 +328,11 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
best_inv = false;
}
}
- if (best_s < *score) {
+ if (best_s < score) {
static const char *left [7] = {"▏", "▎", "▍", "▌", "▋", "▊", "▉"};
unsigned int which = lround (((best_i + 1) * 8) / bi.width);
if (1 <= which && which <= 7) {
- *score = best_s;
+ score = best_s;
*inverse = best_inv;
best_c = left[which - 1];
}
@@ -349,7 +350,7 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
qs += quad_i[i][j];
} else
qs += quad[i][j];
- if (qs < *score) {
+ if (qs < score) {
const char *c = NULL;
bool inv = false;
switch (q) {
@@ -365,7 +366,7 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
case 14: c = "▟"; inv = true; break;
}
if (c) {
- *score = qs;
+ score = qs;
*inverse = inv;
best_c = c;
}
@@ -400,9 +401,8 @@ ansi_print_image_rgb24 (const uint32_t *data,
printf (" ");
} else {
/* Figure out the closest character to the biimage */
- unsigned int score = (unsigned int) -1;
bool inverse = false;
- const char *c = block_best (bi, &score, &inverse);
+ const char *c = block_best (bi, &inverse);
if (inverse) {
if (last_bg != bi.fg || last_fg != bi.bg) {
printf ("\e[%d;%dm", 30 + bi.bg, 40 + bi.fg);
More information about the HarfBuzz
mailing list