|
|
|
@ -251,18 +251,20 @@ view_curses::mvwattrline(WINDOW* window,
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (const auto& adj : utf_adjustments) {
|
|
|
|
|
// If the UTF adjustment is in the viewport, we need to adjust this
|
|
|
|
|
// attribute.
|
|
|
|
|
if (adj.uda_origin < iter->sa_range.lr_start) {
|
|
|
|
|
attr_range.lr_start += adj.uda_offset;
|
|
|
|
|
if (attr_range.lr_unit == line_range::unit::bytes) {
|
|
|
|
|
for (const auto& adj : utf_adjustments) {
|
|
|
|
|
// If the UTF adjustment is in the viewport, we need to adjust
|
|
|
|
|
// this attribute.
|
|
|
|
|
if (adj.uda_origin < iter->sa_range.lr_start) {
|
|
|
|
|
attr_range.lr_start += adj.uda_offset;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (attr_range.lr_end != -1) {
|
|
|
|
|
for (const auto& adj : utf_adjustments) {
|
|
|
|
|
if (adj.uda_origin < iter->sa_range.lr_end) {
|
|
|
|
|
attr_range.lr_end += adj.uda_offset;
|
|
|
|
|
if (attr_range.lr_end != -1) {
|
|
|
|
|
for (const auto& adj : utf_adjustments) {
|
|
|
|
|
if (adj.uda_origin < iter->sa_range.lr_end) {
|
|
|
|
|
attr_range.lr_end += adj.uda_offset;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|