ldata->chars[term->curs.x + m++] = term->erase_char;
copy_termchar(ldata, term->curs.x + m++, &term->erase_char);
static void insch(Terminal *term, int n){    int dir = (n < 0 ? -1 : +1);    int m;    pos cursplus;    termline *ldata;    n = (n < 0 ? -n : n);    if (n > term->cols - term->curs.x)	n = term->cols - term->curs.x;    m = term->cols - term->curs.x - n;    cursplus.y = term->curs.y;    cursplus.x = term->curs.x + n;    check_selection(term, term->curs, cursplus);    check_boundary(term, term->curs.x, term->curs.y);    if (dir < 0)	check_boundary(term, term->curs.x + n, term->curs.y);    ldata = scrlineptr(term->curs.y);    if (dir < 0) {	memmove(ldata->chars + term->curs.x, ldata->chars + term->curs.x + n,		m * TSIZE);	while (n--)	    ldata->chars[term->curs.x + m++] = term->erase_char;    } else {	memmove(ldata->chars + term->curs.x + n, ldata->chars + term->curs.x,		m * TSIZE);	while (n--)	    ldata->chars[term->curs.x + n] = term->erase_char;    }}