- mtext__adjust_plist_for_insert
- (mt1, pos, mt2->nchars,
- mtext__copy_plist (mt2->plist, 0, mt2->nchars, mt1, pos));
-
- total_bytes = mt1->nbytes + mt2->nbytes;
- if (total_bytes >= mt1->allocated)
- {
- mt1->allocated = total_bytes + 1;
- MTABLE_REALLOC (mt1->data, mt1->allocated, MERROR_MTEXT);
- }
- byte_pos = POS_CHAR_TO_BYTE (mt1, pos);
- if (mt1->cache_char_pos > pos)
- {
- mt1->cache_char_pos += mt2->nchars;
- mt1->cache_byte_pos += mt2->nbytes;
- }
- memmove (mt1->data + byte_pos + mt2->nbytes, mt1->data + byte_pos,
- mt1->nbytes - byte_pos + 1);
- memcpy (mt1->data + byte_pos, mt2->data, mt2->nbytes);
- mt1->nbytes += mt2->nbytes;
- mt1->nchars += mt2->nchars;