Beispiel #1
0
//------------------------------------------------------------------------------
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);
    }
}
Beispiel #2
0
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);
  }
}