Add TODO item

pull/430/head
Behdad Esfahbod 8 years ago
parent 5aec2fb8d0
commit 9ac9af725c
  1. 24
      src/hb-ot-layout-gsubgpos-private.hh

@ -996,7 +996,29 @@ static inline bool apply_lookup (hb_apply_context_t *c,
if (!delta) if (!delta)
continue; continue;
/* Recursed lookup changed buffer len. Adjust. */ /* Recursed lookup changed buffer len. Adjust.
*
* TODO:
*
* Right now, if buffer length increased by n, we assume n new glyphs
* were added right after the current position, and if buffer length
* was decreased by n, we assume n match positions after the current
* one where removed. The former (buffer length increased) case is
* fine, but the decrease case can be improved in at least two ways,
* both of which are significant:
*
* - If recursed-to lookup is MultipleSubst and buffer length
* decreased, then it's current match position that was deleted,
* NOT the one after it.
*
* - If buffer length was decreased by n, it does not necessarily
* mean that n match positions where removed, as there might
* have been marks and default-ignorables in the sequence. We
* should instead drop match positions between current-position
* and current-position + n instead.
*
* It should be possible to construct tests for both of these cases.
*/
end += delta; end += delta;
if (end < int (match_positions[idx])) if (end < int (match_positions[idx]))

Loading…
Cancel
Save