Add TODO item
This commit is contained in:
parent
5aec2fb8d0
commit
9ac9af725c
|
@ -996,7 +996,29 @@ static inline bool apply_lookup (hb_apply_context_t *c,
|
|||
if (!delta)
|
||||
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;
|
||||
if (end < int (match_positions[idx]))
|
||||
|
|
Loading…
Reference in New Issue