* util/grub-mkfont.c (process_cursive): Remove nested function.
This commit is contained in:
parent
e6c368d468
commit
6ab537e324
2 changed files with 24 additions and 19 deletions
|
@ -1,3 +1,7 @@
|
|||
2013-11-07 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* util/grub-mkfont.c (process_cursive): Remove nested function.
|
||||
|
||||
2013-11-07 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* include/grub/misc.h (grub_dprintf): Use unnamed vararg.
|
||||
|
|
|
@ -467,6 +467,22 @@ add_subst (grub_uint32_t from, grub_uint32_t to, struct glyph_replace **target)
|
|||
*target = new;
|
||||
}
|
||||
|
||||
static void
|
||||
subst (const struct gsub_substitution *sub, grub_uint32_t glyph,
|
||||
struct glyph_replace **target, int *i)
|
||||
{
|
||||
grub_uint16_t substtype;
|
||||
substtype = grub_be_to_cpu16 (sub->type);
|
||||
|
||||
if (substtype == GSUB_SUBSTITUTION_DELTA)
|
||||
add_subst (glyph, glyph + grub_be_to_cpu16 (sub->delta), target);
|
||||
else if (*i >= grub_be_to_cpu16 (sub->count))
|
||||
printf (_("Out of range substitution (%d, %d)\n"), *i,
|
||||
grub_be_to_cpu16 (sub->count));
|
||||
else
|
||||
add_subst (glyph, grub_be_to_cpu16 (sub->repl[(*i)++]), target);
|
||||
}
|
||||
|
||||
static void
|
||||
process_cursive (struct gsub_feature *feature,
|
||||
struct gsub_lookup_list *lookups,
|
||||
|
@ -474,24 +490,9 @@ process_cursive (struct gsub_feature *feature,
|
|||
{
|
||||
int j, k;
|
||||
int i;
|
||||
struct glyph_replace **target;
|
||||
struct glyph_replace **target = NULL;
|
||||
struct gsub_substitution *sub;
|
||||
|
||||
auto inline void subst (grub_uint32_t glyph);
|
||||
void subst (grub_uint32_t glyph)
|
||||
{
|
||||
grub_uint16_t substtype;
|
||||
substtype = grub_be_to_cpu16 (sub->type);
|
||||
|
||||
if (substtype == GSUB_SUBSTITUTION_DELTA)
|
||||
add_subst (glyph, glyph + grub_be_to_cpu16 (sub->delta), target);
|
||||
else if (i >= grub_be_to_cpu16 (sub->count))
|
||||
printf (_("Out of range substitution (%d, %d)\n"), i,
|
||||
grub_be_to_cpu16 (sub->count));
|
||||
else
|
||||
add_subst (glyph, grub_be_to_cpu16 (sub->repl[i++]), target);
|
||||
}
|
||||
|
||||
for (j = 0; j < grub_be_to_cpu16 (feature->lookupcount); j++)
|
||||
{
|
||||
int lookup_index = grub_be_to_cpu16 (feature->lookupindices[j]);
|
||||
|
@ -552,14 +553,14 @@ process_cursive (struct gsub_feature *feature,
|
|||
void *coverage = (grub_uint8_t *) sub
|
||||
+ grub_be_to_cpu16 (sub->coverage_off);
|
||||
grub_uint32_t covertype;
|
||||
covertype = grub_be_to_cpu16 (*(grub_uint16_t * __attribute__ ((packed))) coverage);
|
||||
covertype = grub_be_to_cpu16 (grub_get_unaligned16 (coverage));
|
||||
i = 0;
|
||||
if (covertype == GSUB_COVERAGE_LIST)
|
||||
{
|
||||
struct gsub_coverage_list *cover = coverage;
|
||||
int l;
|
||||
for (l = 0; l < grub_be_to_cpu16 (cover->count); l++)
|
||||
subst (grub_be_to_cpu16 (cover->glyphs[l]));
|
||||
subst (sub, grub_be_to_cpu16 (cover->glyphs[l]), target, &i);
|
||||
}
|
||||
else if (covertype == GSUB_COVERAGE_RANGE)
|
||||
{
|
||||
|
@ -568,7 +569,7 @@ process_cursive (struct gsub_feature *feature,
|
|||
for (l = 0; l < grub_be_to_cpu16 (cover->count); l++)
|
||||
for (m = grub_be_to_cpu16 (cover->ranges[l].start);
|
||||
m <= grub_be_to_cpu16 (cover->ranges[l].end); m++)
|
||||
subst (m);
|
||||
subst (sub, m, target, &i);
|
||||
}
|
||||
else
|
||||
/* TRANSLATORS: most font transformations apply only to
|
||||
|
|
Loading…
Reference in a new issue