+ size_t const i = distance(list_.begin(), it);
+
+ // Is position pos a beginning of a font block?
+ bool const begin = pos == 0 || !found
+ || (i > 0 && list_[i - 1].pos() == pos - 1);
+
+ // Is position pos at the end of a font block?
+ bool const end = found && list_[i].pos() == pos;
+
+ if (!begin && !end) {
+ // The general case: The block is split into 3 blocks
+ list_.insert(list_.begin() + i,
+ FontTable(pos - 1, list_[i].font()));
+ list_.insert(list_.begin() + i + 1,
+ FontTable(pos, font));