grub_errno = GRUB_ERR_NONE;
return;
}
- for (cur = grub_unicode_compact; cur->end; cur++)
- for (i = cur->start; i <= cur->end
- && i < GRUB_UNICODE_MAX_CACHED_CHAR; i++)
+ for (cur = grub_unicode_compact; cur->len; cur++)
+ for (i = cur->start; i < cur->start + (unsigned) cur->len
+ && i < GRUB_UNICODE_MAX_CACHED_CHAR; i++)
join_types[i] = cur->join_type;
}
grub_errno = GRUB_ERR_NONE;
return;
}
- for (cur = grub_unicode_compact; cur->end; cur++)
- for (i = cur->start; i <= cur->end
- && i < GRUB_UNICODE_MAX_CACHED_CHAR; i++)
+ for (cur = grub_unicode_compact; cur->len; cur++)
+ for (i = cur->start; i < cur->start + (unsigned) cur->len
+ && i < GRUB_UNICODE_MAX_CACHED_CHAR; i++)
if (cur->bidi_mirror)
bidi_types[i] = cur->bidi_type | 0x80;
else
if (bidi_types && c < GRUB_UNICODE_MAX_CACHED_CHAR)
return bidi_types[c] & 0x7f;
- for (cur = grub_unicode_compact; cur->end; cur++)
- if (cur->start <= c && c <= cur->end)
+ for (cur = grub_unicode_compact; cur->len; cur++)
+ if (cur->start <= c && c < cur->start + (unsigned) cur->len)
return cur->bidi_type;
return GRUB_BIDI_TYPE_L;
if (join_types && c < GRUB_UNICODE_MAX_CACHED_CHAR)
return join_types[c];
- for (cur = grub_unicode_compact; cur->end; cur++)
- if (cur->start <= c && c <= cur->end)
+ for (cur = grub_unicode_compact; cur->len; cur++)
+ if (cur->start <= c && c < cur->start + (unsigned) cur->len)
return cur->join_type;
return GRUB_JOIN_TYPE_NONJOINING;
if (bidi_types && c < GRUB_UNICODE_MAX_CACHED_CHAR)
return !!(bidi_types[c] & 0x80);
- for (cur = grub_unicode_compact; cur->end; cur++)
- if (cur->start <= c && c <= cur->end)
+ for (cur = grub_unicode_compact; cur->len; cur++)
+ if (cur->start <= c && c < cur->start + (unsigned) cur->len)
return cur->bidi_mirror;
return 0;
unsigned i;
comb_types = grub_zalloc (GRUB_UNICODE_MAX_CACHED_CHAR);
if (comb_types)
- for (cur = grub_unicode_compact; cur->end; cur++)
- for (i = cur->start; i <= cur->end
+ for (cur = grub_unicode_compact; cur->len; cur++)
+ for (i = cur->start; i < cur->start + (unsigned) cur->len
&& i < GRUB_UNICODE_MAX_CACHED_CHAR; i++)
comb_types[i] = cur->comb_type;
else
if (comb_types && c < GRUB_UNICODE_MAX_CACHED_CHAR)
return comb_types[c];
- for (cur = grub_unicode_compact; cur->end; cur++)
- if (cur->start <= c && c <= cur->end)
+ for (cur = grub_unicode_compact; cur->len; cur++)
+ if (cur->start <= c && c < cur->start + (unsigned) cur->len)
return cur->comb_type;
return GRUB_UNICODE_COMB_NONE;
if begincode != -2 and (lastbiditype != "L" or lastcombtype != 0 or \
lastmirrortype):
outfile.write (("{0x%x, 0x%x, GRUB_BIDI_TYPE_%s, %d, %d, GRUB_JOIN_TYPE_%s},\n" \
- % (begincode, lastcode, lastbiditype, \
+ % (begincode, lastcode - begincode + 1, \
+ lastbiditype, \
lastcombtype, lastmirrortype, \
lastjoin)))
+ if lastcode - begincode + 1 >= 0x200:
+ print "Too long range"
+ raise
begincode = curcode
lastcode = curcode
lastjoin = curjoin