//------------------------------------------------------------------------------ void term_putc(tTermState * ts, char c) { int pos = ts->term_cur_x + (ts->term_cur_y * ts->term_w); ts->term_vbuff[pos].c = c; ts->term_vbuff[pos].color = ts->term_color; ts->term_cur_x++; if(ts->term_cur_x >= ts->term_w || c == RTN_KEY) { ts->term_cur_x = 0; if(ts->term_cur_y < ts->term_h -1) ts->term_cur_y++; else term_scroll(ts); } }
void scroll_to_result() { if (term.results.length == 0) { return; } // If visible, don't do anything. result * res = term.results.results + term.results.current; int y = res->y - term.sblines; int delta = 0; if (y < term.disptop) { delta = y - term.disptop; } if (y >= term.disptop + term.rows) { delta = y - (term.disptop + term.rows - 1); } // Scroll if we must! if (delta != 0) { term_scroll(0, delta); } }